创建密钥和 IAM 角色以使用联合查询
以下步骤演示如何创建密钥和 IAM 角色以便与联合查询一起使用。
先决条件
请确保您具有以下先决条件来创建密钥和 IAM 角色,以便与联合查询一起使用:
具有用户名和密码身份验证的 RDS PostgreSQL、Aurora PostgreSQL 数据库实例、RDS MySQL 或 Aurora MySQL 数据库实例。
具有支持联合查询的集群维护版本的 Amazon Redshift 集群。
使用 AWS Secrets Manager 创建密钥(用户名和密码)
使用拥有您的 RDS 或 Aurora DB 集群实例的账户登录 Secrets Manager 控制台。
选择存储新密钥。
选择RDS 数据库凭证磁贴。对于用户名和密码,请输入实例的值。确认或选择加密密钥的值。然后,选择您的密钥将访问的 RDS 数据库。
注意
我们建议使用默认加密密钥 (
DefaultEncryptionKey
)。如果您使用自定义加密密钥,则必须将用于访问密钥的 IAM 角色添加为密钥用户。输入密钥的名称,使用默认选项继续执行创建步骤,然后选择存储。
查看您的密钥,并记下您为标识密钥而创建的密钥 ARN 值。
使用密钥创建安全策略
登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 使用 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 控制台上的可视化编辑器指定权限和资源。
为策略指定一个名称并完成创建。
-
导航到IAM 角色。
为 Redshift - 可自定义创建 IAM 角色。
将您刚创建的 IAM 策略附加到现有 IAM 角色,或者创建新的 IAM 角色并附加策略。
在 IAM 角色的信任关系选项卡上,确认该角色包含信任实体
redshift.amazonaws.com
。记下您创建的角色 ARN。此 ARN 有权访问密钥。
要将 IAM 角色附加到您的 Amazon Redshift 集群
登录 AWS Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/
。 在导航菜单上,选择集群。这将列出您的账户在当前 AWS 区域中的集群。
在列表中选择集群名称可查看有关集群的更多详细信息。
-
对于操作,请选择管理 IAM 角色。这将显示管理 IAM 角色页面。
将您的 IAM 角色添加到集群。