

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 创建密钥和 IAM 角色以使用联合查询
<a name="federated-create-secret-iam-role"></a>

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

## 先决条件
<a name="federated-create-secret-prerequisites"></a>

请确保您具有以下先决条件来创建密钥和 IAM 角色，以便与联合查询一起使用：
+ 具有用户名和密码身份验证的 RDS PostgreSQL、Aurora PostgreSQL 数据库实例、RDS MySQL 或 Aurora MySQL 数据库实例。
+ 具有支持联合查询的集群维护版本的 Amazon Redshift 集群。

**使用 Amazon Secrets Manager 创建密钥（用户名和密码）**

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

1. 选择**存储新密钥**。

1. 选择**RDS 数据库凭证**磁贴。对于**用户名**和**密码**，请输入实例的值。确认或选择**加密密钥**的值。然后，选择您的密钥将访问的 RDS 数据库。
**注意**  
我们建议使用默认加密密钥 (`DefaultEncryptionKey`)。如果您使用自定义加密密钥，则必须将用于访问密钥的 IAM 角色添加为密钥用户。

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

1. 查看您的密钥，并记下您为标识密钥而创建的**密钥 ARN** 值。

**使用密钥创建安全策略**

1. 登录Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

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

------
#### [ 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 控制台上的可视化编辑器指定权限和资源。

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

1. 导航到**IAM 角色**。

1. 为 **Redshift - 可自定义**创建 IAM 角色。

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

1. 在 IAM 角色的**信任关系**选项卡上，确认该角色包含信任实体 `redshift.amazonaws.com`。

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

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

1. 登录到 Amazon Web Services 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.amazonaws.cn/redshiftv2/)。

1. 在导航菜单上，选择**集群**。这将列出您的账户在当前 Amazon 区域中的集群。

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

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

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