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

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

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

先决条件

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

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

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

使用 AWS Secrets Manager 创建密钥(用户名和密码)
  1. 使用拥有您的 RDS 或 Aurora 实例的账户登录 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 角色添加到集群。