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