配置身份验证和 SSL - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置身份验证和 SSL

为了防止数据遭到未经授权的访问,Amazon Redshift 数据存储要求所有连接都使用用户凭据进行身份验证。某些数据存储还要求通过安全套接字层 (SSL) 协议建立连接,无论是否使用单向身份验证。

Amazon Redshift JDBC 驱动程序 2.1 版提供了对这些身份验证协议的完全支持。

驱动程序支持的 SSL 版本取决于您使用的 JVM 版本。有关每个 Java 版本支持的 SSL 版本的信息,请参阅 Java 平台组产品管理博客上的诊断 TLS、SSL 和 HTTPS

用于连接的 SSL 版本是驱动程序和服务器都支持的最高版本,该版本在连接时确定。

配置 Amazon Redshift JDBC 驱动程序版本 2.1,以根据要连接到的 Redshift 服务器的安全要求对连接进行身份验证。

要对连接进行身份验证,您必须始终提供您的 Redshift 用户名和密码。根据服务器上是否启用或需要 SSL,您可能还需要将驱动程序配置为通过 SSL 进行连接。或者,您可能要使用单向 SSL 身份验证,以便客户端(驱动程序本身)验证服务器的身份。

在连接 URL 中将配置信息提供给驱动程序。有关连接 URL 的语法的更多信息,请参阅 构建连接 URL

SSL 表示 TLS/SSL,包括传输层安全性和安全套接字层。驱动程序支持 TLS/SSL 的行业标准版本。

配置 IAM 身份验证

如果您使用 IAM 身份验证连接到 Amazon Redshift 服务器,请将以下属性设置为数据来源连接字符串的一部分。

有关 IAM 身份验证的更多信息,请参阅 Amazon Redshift 中的 Identity and Access Management

要使用 IAM 身份验证,请使用以下连接字符串格式之一:

连接字符串 描述

jdbc:redshift:iam:// [host]:[port]/[db]

常规连接字符串。驱动程序从主机推断 ClusterID 和区域。

jdbc:redshift:iam:// [cluster-id]: [region]/[db]

在已知 ClusterID 和区域的情况下,驱动程序将检索主机信息。

jdbc:redshift:iam:// [host]/[db]

驱动程序默认为端口 5439,并从主机推断 ClusterID 和区域。根据您在创建、修改或迁移集群时选择的端口,允许访问所选端口。

指定配置文件

如果您使用 IAM 身份验证,则可以在配置文件名称下指定任何其他必需或可选的连接属性。通过这样做,您可以避免将某些信息直接放入连接字符串中。您可以使用 Profile 属性在连接字符串中指定配置文件名称。

配置文件可以添加到 Amazon 凭证文件。此文件的默认位置为:~/.aws/credentials

您可以通过在以下环境变量中设置路径更改默认值:AWS_CREDENTIAL_PROFILES_FILE

有关配置文件的更多信息,请参阅 Amazon SDK for Java 中的使用 Amazon 凭证

使用实例配置文件凭证

如果您在与 IAM 角色关联的 Amazon EC2 实例上运行应用程序,则可以使用实例配置文件凭证进行连接。

为此,请使用上表中的 IAM 连接字符串格式之一,并将 dbuser 连接属性设置为您正要以其身份连接的 Amazon Redshift 用户名。

有关实例配置文件的更多信息,请参阅《IAM 用户指南》中的访问控制

使用凭证提供程序

驱动程序还支持来自以下服务的凭证提供程序插件:

  • Amazon IAM Identity Center

  • Active Directory 联合身份验证服务 (ADFS)

  • JSON Web Token (JWT) 服务

  • Microsoft Azure Active Directory (AD) 服务和浏览器 Microsoft Azure Active Directory (AD) 服务

  • Okta 服务

  • PingFederate 服务

  • 适用于 SAML 服务(如 Okta、Ping 或 ADFS)的浏览器 SAML

如果您使用上述服务之一,则连接 URL 需要指定以下属性:

  • Plugin_Name – 凭证提供程序插件类的完全限定类路径。

  • IdP_Host:– 您用于对 Amazon Redshift 进行身份验证的服务的主机。

  • IdP_Port – 身份验证服务的主机侦听的端口。Okta 不需要。

  • User – idp_host 服务器的用户名。

  • Password – 与 idp_host 用户名关联的密码。

  • DbUser – 您连接时使用的 Amazon Redshift 用户名。

  • SSL_Insecure – 指示是否应验证 IDP 服务器证书。

  • Client_ID – 与 Azure AD 门户中的用户名关联的客户端 ID。仅用于 Azure AD。

  • Client_Secret – 与 Azure AD 门户中的客户端 ID 关联的客户端密钥。仅用于 Azure AD。

  • IdP_Tenant – 适用于您的 Amazon Redshift 应用程序的 Azure AD 租户 ID。仅用于 Azure AD。

  • App_ID – 您的 Amazon Redshift 应用程序的 Okta 应用程序 ID。仅适用于 Okta。

  • 应用程序名称 – 您的 Amazon Redshift 应用程序的可选 Okta 应用程序名称。仅适用于 Okta。

  • Partner_SPID – 可选的合作伙伴 SPID(服务提供商 ID)值。仅用于 PingFederate。

  • Idc_Region – Amazon IAM Identity Center 实例所在的 Amazon Web Services 区域。仅用于 Amazon IAM Identity Center。

  • Issuer_Url – Amazon IAM Identity Center 服务器的实例端点。仅用于 Amazon IAM Identity Center。

如果您将浏览器插件用于这些服务之一,则连接 URL 还可以包括:

  • Login_URL – 通过浏览器插件使用安全断言标记语言 (SAML) 或 Azure AD 服务时,身份提供者网站上的资源的 URL。如果使用浏览器插件,则此参数是必需的。

  • Listen_Port – 通过浏览器插件使用 SAML、Azure AD 或 Amazon IAM Identity Center 服务时,驱动程序用于从身份提供者获取 SAML 响应的端口。

  • IdP_Response_Timeout – 通过浏览器插件使用 SAML、Azure AD 或 Amazon IAM Identity Center 服务时,驱动程序等待身份提供者的 SAML 响应的时间(以秒为单位)。

有关其他连接字符串属性的信息,请参阅JDBC 驱动程序版本 2.1 配置的选项