步骤 5:配置 JDBC 或 ODBC 连接以使用 IAM 凭证 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

步骤 5:配置 JDBC 或 ODBC 连接以使用 IAM 凭证

您可以使用 Amazon Redshift JDBC 或 ODBC 驱动程序配置 SQL 客户端。此驱动程序管理创建数据库用户凭证以及在 SQL 客户端和 Amazon Redshift 数据库之间建立连接的过程。

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

配置 JDBC 连接以使用 IAM 凭证
  1. 为 Amazon Redshift 配置 JDBC 驱动程序版本 2.1 连接 页面下载最新的 Amazon Redshift JDBC 驱动程序。

  2. 使用下列格式之一创建包含 IAM 凭证选项的 JDBC URL。要使用 IAM 身份验证,请将 iam: 添加到 Amazon Redshift JDBC URL 中的 jdbc:redshift: 后面,如以下示例中所示。

    jdbc:redshift:iam://

    添加 cluster-nameregionaccount-id。JDBC 驱动程序使用您的 IAM 账户信息和集群名称来检索集群 ID和 Amazon 区域。为此,您的用户或角色必须有权针对指定的集群调用 redshift:DescribeClusters 操作。如果您的用户或角色无权调用 redshift:DescribeClusters 操作,请包含集群 ID、Amazon 区域和端口,如以下示例中所示。端口号是可选的。

    jdbc:redshift:iam://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev
  3. 添加 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
  4. 添加 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 连接

  1. 为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序。有关更多信息,请参阅配置 ODBC 连接页面。

    重要

    Amazon Redshift ODBC 驱动程序必须为版本 1.3.6.1000 或更高版本。

  2. 根据您的操作系统选择配置连接设置需要遵循的步骤。

    有关更多信息,请参阅以下章节之一:

  3. 在 Microsoft Windows 操作系统上,访问 Amazon Redshift ODBC Driver DSN Setup(Amazon Redshift ODBC 驱动程序 DSN 设置)窗口。

    1. Connection Settings 下,输入以下信息:

      • Data Source Name

      • Server (可选)

      • Port (可选)

      • 数据库

      如果您的用户或角色有权调用 redshift:DescribeClusters 操作,仅需要数据来源名称数据库。Amazon Redshift 通过调用 DescribeCluster 操作使用 ClusterIdRegion(区域)来获取服务器和端口。

      如果您的用户或角色无权调用 redshift:DescribeClusters 操作,请指定服务器端口

    2. Authentication (身份验证) 下,为 Auth Type (身份验证类型) 选择一个值。

      对于每种身份验证类型,请输入如下列出的值:

      Amazon 配置文件

      输入以下信息:

      • ClusterID

      • 区域

      • 配置文件名称

        输入 Amazon config 文件中包含 ODBC 连接选项值的配置文件的名称。有关更多信息,请参阅使用配置文件

      (可选)提供 ODBC 驱动程序用于调用 GetClusterCredentials API 操作的选项的详细信息:

      IAM 凭证

      输入以下信息:

      • ClusterID

      • 区域

      • AccessKeyIDSecretAccessKey

        为 IAM 数据库身份验证配置的 IAM 角色或用户的访问密钥 ID 和秘密访问密钥。

      • SessionToken

        对于具有临时凭证的 IAM 角色,SessionToken 是必填的。有关更多信息,请参阅临时安全凭证

      提供 ODBC 驱动程序用于调用 GetClusterCredentials API 操作的选项的详细信息:

      Identity Provider: AD FS

      对于使用 AD FS 的 Windows 集成身份验证,请将 UserPassword 保留为空。

      提供 IdP 详细信息:

      • IdP Host

        企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。

      • IdP Port (可选)

        身份提供者使用的端口。默认值为 443。

      • Preferred Role

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

      (可选)提供 ODBC 驱动程序用于调用 GetClusterCredentials API 操作的选项的详细信息:

      • DbUser

      • User AutoCreate

      • DbGroups

      有关更多信息,请参阅用于创建数据库用户凭证的 JDBC 和 ODBC 选项

      Identity Provider: PingFederate

      对于 User (用户)Password (密码),键入您的 IdP 用户名和密码。

      提供 IdP 详细信息:

      • IdP Host

        企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。

      • IdP Port (可选)

        身份提供者使用的端口。默认值为 443。

      • Preferred Role

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

      (可选)提供 ODBC 驱动程序用于调用 GetClusterCredentials API 操作的选项的详细信息:

      • DbUser

      • User AutoCreate

      • DbGroups

      有关更多信息,请参阅用于创建数据库用户凭证的 JDBC 和 ODBC 选项

      Identity Provider: Okta

      对于 User (用户)Password (密码),键入您的 IdP 用户名和密码。

      提供 IdP 详细信息:

      • IdP Host

        企业身份提供者主机的名称。此名称不应包含任何斜线 (/)。

      • IdP Port

        Okta 不使用此值。

      • Preferred Role

        SAML 断言中的 AttributeValue 属性的 Role 元素中的 IAM 角色 Amazon Resource Name (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

      对于 User (用户)Password (密码),键入您的 IdP 用户名和密码。

      对于 Cluster ID(集群 ID)和 Region(区域),输入 Amazon Redshift 集群的集群 ID 和 Amazon 区域。

      对于 Database(数据库),输入您为 Amazon Redshift 集群创建的数据库。

      提供 IdP 详细信息:

      • IdP Tenant (IdP 租户

        用于 Azure AD 的租户。

      • Azure Client Secret (Azure 客户端密钥

        Azure 中的 Amazon Redshift 企业应用程序的客户端密钥。

      • Azure Client ID (Azure 客户端 ID

        Azure 中的 Amazon Redshift 企业应用程序的客户端 ID(应用程序 ID)。

      (可选)提供 ODBC 驱动程序用于调用 GetClusterCredentials API 操作的选项的详细信息:

      • DbUser

      • User AutoCreate

      • DbGroups

      有关更多信息,请参阅用于创建数据库用户凭证的 JDBC 和 ODBC 选项