创建密钥和 IAM 角色以使用联合查询 - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建密钥和 IAM 角色以使用联合查询

以下步骤演示如何创建密钥和 IAM 角色以便与联合查询一起使用。

先决条件

请确保您具有以下先决条件来创建密钥和 IAM 角色,以便与联合查询一起使用。

  • 具有用户名和密码身份验证的 RDS PostgreSQL 或 Aurora PostgreSQL 数据库实例。

  • 具有支持联合查询的集群维护版本的 Amazon Redshift 集群。

使用 AWS Secrets Manager 创建密钥(用户名和密码)

  1. 使用拥有您的 RDS PostgreSQL 或 Aurora PostgreSQL 实例的账户登录 Secrets Manager 控制台。

  2. 选择存储新密钥

  3. 选择 Credentials for RDS database (RDS 数据库凭证) 磁贴。对于 User name (用户名)Password (密码),请输入实例的值。确认或选择 Encryption key (加密密钥) 的值。然后,选择您的密钥将访问的 RDS 数据库。

    注意

    我们建议使用默认加密密钥 (DefaultEncryptionKey)。如果您使用自定义加密密钥,则必须将用于访问密钥的 IAM 角色添加为密钥用户。

  4. 输入密钥的名称,使用默认选项继续执行创建步骤,然后选择 Store (存储)

  5. 查看您的密钥,并记下您为标识密钥而创建的 Secret ARN (密钥 ARN) 值。

使用密钥创建安全策略

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 使用类似于以下内容的 JSON 创建策略。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AccessSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-rds-secret-VNenFy" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*" } ] }

    要检索密钥,您需要列出和读取操作。我们建议您将资源限制为您创建的特定密钥。为此,请使用密钥的 Amazon 资源名称 (ARN) 来限制资源。您还可以使用 IAM 控制台上的可视化编辑器指定权限和资源。

  3. 为策略指定一个名称并完成创建。

  4. 导航到 IAM roles (IAM 角色)

  5. Redshift - Customizable (Redshift - 可自定义) 创建 IAM 角色。

  6. 将您刚创建的 IAM 策略附加到现有 IAM 角色,或者创建新的 IAM 角色并附加策略。

  7. 在 IAM 角色的 Trust relationships (信任关系) 选项卡上,确认该角色包含信任实体 redshift.amazonaws.com

  8. 记下您创建的 Role ARN (角色 ARN)。此 ARN 有权访问密钥。

将 IAM 角色附加到您的 Amazon Redshift 集群

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Redshift 控制台:https://console.amazonaws.cn/redshift/

  2. 在导航菜单上,选择 CLUSTERS (集群)。这将列出您的账户在当前 AWS 区域中的集群。

  3. 在列表中选择集群名称可查看有关集群的更多详细信息。

  4. 对于 Actions (操作),请选择 Manage IAM roles (管理 IAM 角色)。这将显示 Manage IAM roles (管理 IAM 角色) 页面。

  5. 将您的 IAM 角色添加到集群。