第 3 步:创建有权调用 GetClusterCredentials re的 IAM 角色或用户 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 3 步:创建有权调用 GetClusterCredentials re的 IAM 角色或用户

您的 SQL 客户端需要授权才能代表您调用 GetClusterCredentials 操作。要提供授权,可创建 IAM 用户或角色并附加授予必要权限的策略。

创建有权调用 GetClusterCredentials 的 IAM 角色

  1. 利用 IAM 服务,可创建 IAM 用户或角色。您也可以使用现有用户或角色。例如,如果您创建了一个用于身份提供商访问的 IAM 角色,则可向该角色附加必要的 IAM 策略。

  2. 附加有权调用 redshift:GetClusterCredentials 操作的权限策略。根据指定的可选参数,您还可在策略中允许或限制其他操作和资源:

    • 要允许 SQL 客户端检索集群 ID,请Amazon区域和端口,包括调用redshift:DescribeClusters操作与 Redshift 群集资源一起使用。

    • 如果您使用 AutoCreate 选项,请包含对 dbuser 资源调用 redshift:CreateClusterUser 的权限。以下 Amazon 资源名称 (ARN) 指定 Amazon Redshiftdbuser。Replaceregionaccount-id, 和cluster-name的值Amazon区域、帐户和群集。对于 dbuser-name,指定用于登录到集群数据库的用户名。

      arn:aws:redshift:region:account-id:dbuser:cluster-name/dbuser-name
    • (可选)添加一个 ARN,以指定 Amazon Redshiftdbname资源,采用以下格式。Replaceregionaccount-id, 和cluster-name的值Amazon区域、帐户和群集。对于 database-name,指定用户将登录到的数据库的名称。

      arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
    • 如果您使用DbGroups选项,包含调用redshift:JoinGroup使用 Amazon Redshift 操作dbgroup资源,采用以下格式。Replaceregionaccount-id, 和cluster-name的值Amazon区域、帐户和群集。对于 dbgroup-name,请指定用户在登录时加入的用户组的名称。

      arn:aws:redshift:region:account-id:dbgroup:cluster-name/dbgroup-name

有关更多信息以及示例,请参阅 GetClusterCredentials 的资源策略

以下示例显示允许 IAM 角色调用 GetClusterCredentials 操作的策略。指定 Amazon Redshiftdbuser资源授予对数据库用户名的角色访问权限temp_creds_user在名为examplecluster

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user" } }

您可使用通配符 (*) 替换完整或部分集群名称、用户名和数据库组名称。以下示例允许指定账户中的任何集群上所有以 temp_ 开头的用户名调用。

重要

以下示例中的语句指定通配符 (*) 作为资源的值,以便策略允许以指定字符开头的任何资源。在 IAM 策略使用通配符可能过于宽松。作为最佳实践,我们建议对您的业务应用程序使用最严格的可行策略。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*" } }

以下示例显示一个允许 IAM 角色调用 GetClusterCredentials 操作的策略,并提供了自动创建新用户和指定用户在登录时加入的组的选项。"Resource": "*" 子句向角色授予对任何资源 (包括集群、数据库用户或用户组) 的访问权限。

"Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": "*" } }

有关更多信息,请参阅 Amazon Redshift ARN 语法