配置身份验证和 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 身份验证,请使用以下连接字符串格式之一:
连接字符串 | 描述 |
---|---|
|
常规连接字符串。驱动程序从主机推断 ClusterID 和区域。 |
|
在已知 ClusterID 和区域的情况下,驱动程序将检索主机信息。 |
|
驱动程序默认为端口 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 配置的选项。