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

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

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

先决条件

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

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

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

使用 AWS Secrets Manager 创建密钥(用户名和密码)
  1. 使用拥有您的 RDS 或 Aurora DB 集群实例的账户登录 Secrets Manager 控制台。

  2. 选择存储新密钥

  3. 选择RDS 数据库凭证磁贴。对于用户名密码,请输入实例的值。确认或选择加密密钥的值。然后,选择您的密钥将访问的 RDS 数据库。

    注意

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

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

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

使用密钥创建安全策略
  1. 登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/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 角色

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

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

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

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

要将 IAM 角色附加到您的 Amazon Redshift 集群
  1. 登录 AWS Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/

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

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

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

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