步骤 5:配置 JDBC 或 ODBC 连接以使用 IAM 凭证
您可以使用 Amazon Redshift JDBC 或 ODBC 驱动程序配置 SQL 客户端。此驱动程序管理创建数据库用户凭证以及在 SQL 客户端和 Amazon Redshift 数据库之间建立连接的过程。
如果您使用身份提供者进行身份验证,请指定凭证提供商插件名称。Amazon Redshift JDBC 和 ODBC 驱动程序包括以下基于 SAML 的身份提供者的插件:
-
Active Directory 联合身份验证服务 (AD FS)
-
PingOne
-
Okta
-
Microsoft Azure AD
有关将 Microsoft Azure AD 设置为身份提供者的步骤,请参阅在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证。
配置 JDBC 连接以使用 IAM 凭证
-
从 为 Amazon Redshift 配置 JDBC 驱动程序版本 2.1 连接 页面下载最新的 Amazon Redshift JDBC 驱动程序。
-
使用下列格式之一创建包含 IAM 凭证选项的 JDBC URL。要使用 IAM 身份验证,请将
iam:
添加到 Amazon Redshift JDBC URL 中的jdbc:redshift:
后面,如以下示例中所示。jdbc:redshift:iam://
添加
cluster-name
、region
和account-id
。JDBC 驱动程序使用您的 IAM 账户信息和集群名称来检索集群 ID和 Amazon 区域。为此,您的用户或角色必须有权针对指定的集群调用redshift:DescribeClusters
操作。如果您的用户或角色无权调用redshift:DescribeClusters
操作,请包含集群 ID、Amazon 区域和端口,如以下示例中所示。端口号是可选的。jdbc:redshift:iam://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev
-
添加 JDBC 选项可提供 IAM 凭证。使用不同的 JDBC 选项组合可提供 IAM 凭证。有关详细信息,请参阅用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
以下 URL 为用户指定 AccessKeyID 和 SecretAccessKey。
jdbc:redshift:iam://examplecluster:us-west-2/dev?AccessKeyID=AKIAIOSFODNN7EXAMPLE&SecretAccessKey=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
以下示例指定包含 IAM 凭证的命名配置文件。
jdbc:redshift:iam://examplecluster:us-west-2/dev?Profile=user2
-
添加 JDBC 驱动程序用来调用
GetClusterCredentials
API 操作的 JDBC 选项。如果您以编程方式调用GetClusterCredentials
API 操作,请不要包括这些选项。以下示例包括 JDBC
GetClusterCredentials
选项。jdbc:redshift:iam://examplecluster:us-west-2/dev?plugin_name=com.amazon.redshift.plugin.AzureCredentialsProvider&UID=user&PWD=password&idp_tenant=my_tenant&client_secret=my_secret&client_id=my_id
配置 ODBC 连接以使用 IAM 凭证
在以下过程中,您只能找到用于配置 IAM 身份验证的步骤。有关使用标准身份验证 (采用数据库用户名和密码) 的步骤,请参阅配置 ODBC 连接。
-
为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序。有关更多信息,请参阅配置 ODBC 连接页面。
重要
Amazon Redshift ODBC 驱动程序必须为版本 1.3.6.1000 或更高版本。
-
根据您的操作系统选择配置连接设置需要遵循的步骤。
有关更多信息,请参阅以下章节之一:
-
在 Microsoft Windows 操作系统上,访问“Amazon Redshift ODBC 驱动程序 DSN 设置”窗口。
-
在连接设置下,输入以下信息:
-
数据源名称
-
服务器(可选)
-
端口(可选)
-
数据库。
如果您的用户或角色有权调用
redshift:DescribeClusters
操作,仅需要数据源名称和数据库。Amazon Redshift 通过调用DescribeCluster
操作使用 ClusterId 和区域来获取服务器和端口。如果您的用户或角色无权调用
redshift:DescribeClusters
操作,请指定服务器和端口。 -
-
在身份验证下,为身份验证类型选择一个值。
对于每种身份验证类型,请输入如下列出的值:
- Amazon 配置文件
-
输入以下信息:
-
ClusterID
-
区域
-
配置文件名称
输入 Amazon config 文件中包含 ODBC 连接选项值的配置文件的名称。有关更多信息,请参阅 使用配置文件。
(可选)提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser
-
User AutoCreate
-
DbGroups
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
- IAM 凭证
-
输入以下信息:
-
ClusterID
-
区域
-
AccessKeyID 和 SecretAccessKey
为 IAM 数据库身份验证配置的 IAM 角色或用户的访问密钥 ID 和秘密访问密钥。
-
SessionToken
对于具有临时凭证的 IAM 角色,SessionToken 是必填的。有关更多信息,请参阅临时安全凭证。
提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser(必填)
-
User AutoCreate(可选)
-
DbGroups(可选)
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
- Identity Provider: AD FS
-
对于使用 AD FS 的 Windows 集成身份验证,请将 User 和 Password 保留为空。
提供 IdP 详细信息:
-
IdP Host
企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。
-
IdP Port(可选)
身份提供者使用的端口。默认值为 443。
-
Preferred Role
SAML 断言中的
AttributeValue
属性的多值Role
元素中的 IAM 角色 Amazon 资源名称(ARN)。请与 IdP 管理员一起查找适合首选角色的值。有关更多信息,请参阅 为 IdP 配置 SAML 断言。
(可选)提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser
-
User AutoCreate
-
DbGroups
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
- Identity Provider: PingFederate
-
对于用户和密码,键入您的 IdP 用户名和密码。
提供 IdP 详细信息:
-
IdP Host
企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。
-
IdP Port(可选)
身份提供者使用的端口。默认值为 443。
-
Preferred Role
SAML 断言中的
AttributeValue
属性的多值Role
元素中的 IAM 角色 Amazon 资源名称(ARN)。请与 IdP 管理员一起查找适合首选角色的值。有关更多信息,请参阅 为 IdP 配置 SAML 断言。
(可选)提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser
-
User AutoCreate
-
DbGroups
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
- Identity Provider: Okta
-
对于用户和密码,键入您的 IdP 用户名和密码。
提供 IdP 详细信息:
-
IdP Host
企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。
-
IdP Port
Okta 不使用此值。
-
Preferred Role
SAML 断言中的
AttributeValue
属性的Role
元素中的 IAM 角色 Amazon 资源名称(ARN)。请与 IdP 管理员一起查找适合首选角色的值。有关更多信息,请参阅 为 IdP 配置 SAML 断言。 -
Okta App ID
Okta 应用程序的 ID。应用程序 ID 的值位于 Okta 应用程序嵌入链接中的“amazon_aws”之后。与您的 IdP 管理员一起获取此值。
(可选)提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser
-
User AutoCreate
-
DbGroups
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
- 身份提供者:Azure AD
-
对于用户和密码,键入您的 IdP 用户名和密码。
对于集群 ID 和区域,输入 Amazon Redshift 集群的集群 ID 和 Amazon 区域。
对于数据库,输入您为 Amazon Redshift 集群创建的数据库。
提供 IdP 详细信息:
-
IdP 租户
用于 Azure AD 的租户。
-
Azure 客户端密钥
Azure 中的 Amazon Redshift 企业应用程序的客户端密钥。
-
Azure 客户端 ID
Azure 中的 Amazon Redshift 企业应用程序的客户端 ID(应用程序 ID)。
(可选)提供 ODBC 驱动程序用于调用
GetClusterCredentials
API 操作的选项的详细信息:-
DbUser
-
User AutoCreate
-
DbGroups
有关更多信息,请参阅 用于创建数据库用户凭证的 JDBC 和 ODBC 选项。
-
-