Amazon Redshift
群集管理指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

用于提供 IAM 凭证的选项

要为 JDBC 或 ODBC 连接提供 IAM 凭证,请选择下列身份验证类型之一。

  • AWS Profile

    作为以 JDBC 或 ODBC 设置形式提供凭证值的替代方案,您可在命名配置文件中放置这些值。

  • AWS IAM Credentials

    以 JDBC 或 ODBC 设置形式提供 AccessKeyID、SecretAccessKey 和 (可选) SessionToken 的值。SessionToken 仅对于具有临时凭证的 IAM 角色是必填的。有关更多信息,请参阅“临时安全凭证”。

  • 身份提供商

    如果您使用身份提供商进行身份验证,请指定身份提供商插件的名称。Amazon Redshift JDBC 和 ODBC 驱动程序包括以下基于 SAML 的凭证提供程序的插件:

    • AD FS

    • PingFederate

    • Okta

    您可以 JDBC 或 ODBC 设置格式提供或使用配置文件提供插件名称和相关值。

有关更多信息,请参阅 配置 JDBC 或 ODBC 连接以使用 IAM 凭证

用于提供 IAM 凭证的 JDBC 和 ODBC 选项

下表列出了用于提供 IAM 凭证的 JDBC 和 ODBC 选项。

选项

描述

Iam

仅用于 ODBC 连接字符串。设置为 1 可使用 IAM 身份验证。

AccessKeyID

SecretAccessKey

SessionToken

为 IAM 数据库身份验证配置的 IAM 角色或 IAM 用户的访问密钥 ID 和秘密访问密钥。SessionToken 仅对于具有临时凭证的 IAM 角色是必填的。SessionToken 不用于 IAM 用户。有关更多信息,请参阅临时安全凭证
Plugin_Name 实施凭证提供程序的完全限定类名称。Amazon Redshift JDBC 驱动程序包括基于 SAML 的凭证提供程序插件。如果提供了 plugin_name,则其他相关参数可用。有关更多信息,请参阅 使用凭证提供程序插件

个人资料

AWS 凭证中配置文件的名称或包含 JDBC 连接选项值的 config 文件的名称。有关更多信息,请参阅 使用配置文件

使用凭证提供程序插件

Amazon Redshift JDBC 驱动程序包含以下凭证提供程序插件。

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

  • Ping Federate (Ping)

    只有使用 Forms 身份验证预先确定的 PingFederate IdP 适配器支持 Ping。

  • Okta

    仅 Okta 提供的 AWS 控制台默认应用程序支持 Okta。

要使用基于 SAML 的凭证提供程序插件,请使用 JBDC 或 ODBC 选项或在命名配置文件中指定下列选项:

选项

描述
plugin_name

对于 JDBC,为实施凭证提供程序的类名称。指定下列项之一:

  • 对于 ADFS

    com.amazon.redshift.plugin.AdfsCredentialsProvider
  • 对于 Okta

    com.amazon.redshift.plugin.OktaCredentialsProvider
  • 对于 PingFederate

    com.amazon.redshift.plugin.PingCredentialsProvider

对于 ODBC,指定下列项之一:

  • 对于 AD FS:adfs

  • 对于 Okta:okta

  • 对于 PingFederate:ping

idp_host 企业身份提供商主机的名称。此名称不应包含任何斜线 (“/”)。对于 Okta 身份提供商,idp_host 的值应以 .okta.com 结束。

idp_port

身份提供商使用的端口。默认值为 443。Okta 将忽略端口。

preferred_role

SAML 断言中 Role 属性的 AttributeValue 元素中,角色的 Amazon 资源名称 (ARN)。与您的 IdP 管理员一起找到适合首选角色的值。有关更多信息,请参阅为您的 IdP 配置 SAML 断言为您的 IdP 配置 SAML 断言。

用户

企业用户名,包括域 (如果适用)。例如,对于 Active Directory,域名的格式需为 domain\username
密码 企业用户的密码。我们建议不使用此选项,而是使用您的 SQL 客户端提供密码。
ssl_insecure 设置为 true (JDBC) 或 1 (ODBC) 可将不安全的 SSL 与 IdP 结合使用 (不建议)。

app_id

Okta 应用程序的 ID。仅用于 Okta。app_id 的值在 Okta 应用程序嵌入链接中位于 amazon_aws 之后。与您的 IdP 管理员一起获取此值。以下是应用程序嵌入链接的示例:https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272

以下示例显示了命名配置文件中的凭证提供程序插件参数。

[plug-in-creds] plugin_name=com.amazon.redshift.plugin.AdfsCredentialsProvider idp_host=demo.example.com idp_port=443 preferred_role=arn:aws:iam::123456789012:role/ADFS-Dev user=example\user password=Password1234

使用配置文件

您可提供 IAM 凭证选项和 GetClusterCredentials 选项作为 AWS 配置文件中的命名配置文件的设置。使用“Profile JDBC”选项提供配置文件名称。

此配置存储在名为 config 的文件中 (位于主目录中的名为 .aws 的文件夹中)。主目录位置并不相同,但可以使用环境变量 %UserProfile% (Windows) 以及 $HOME~ (tilde)(类 Unix 系统)引用。

在将 Amazon Redshift JDBC 驱动程序或 ODBC 驱动程序与基于 SAML 的捆绑凭证提供程序插件结合使用时,支持下列设置。如果未使用 plugin_name,则将忽略列出的选项。

  • plugin_name

  • idp_host

  • idp_port

  • preferred_role

  • 用户

  • 密码

  • ssl_insecure

  • app_id (仅适用于 Okta)

以下示例显示了具有三个配置文件的用于配置的文件。plug-in-creds 示例包含可选的 DbUser、AutoCreate 和 DbGroups 选项。

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user2] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY session_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== [plug-in-creds] plugin_name=com.amazon.redshift.plugin.AdfsCredentialsProvider idp_host=demo.example.com idp_port=443 preferred_role=arn:aws:iam::1234567:role/ADFS-Dev user=example\user password=Password1234

要使用 user2 示例的凭证,请在 JDBC URL 中指定 Profile=user2。要使用 plug-in creds 示例的凭证,请在 JDBC URL 中指定 Profile=plug-in-creds

有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的命名配置文件