

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

# 限制对 IAM 角色的访问
<a name="authorizing-redshift-service-database-users"></a>

预设情况下，对 Amazon Redshift 集群可用的 IAM 角色对集群上的所有用户都可用。您可选择将 IAM 角色限制为特定集群上的特定 Amazon Redshift 数据库用户，或限制为特定区域。

要仅允许特定数据库用户使用 IAM 角色，请执行以下步骤。<a name="identify-db-users-for-iam-role"></a>

**标识对 IAM 角色具有访问权限的特定数据库用户**

1. 标识您的 Amazon Redshift 集群中的数据库用户的 Amazon Resource Name (ARN)。数据库用户的 ARN 采用以下格式：`arn:aws:redshift:{{region}}:{{account-id}}:dbuser:{{cluster-name}}/{{user-name}}`。

   对于 Amazon Redshift Serverless，请使用以下 ARN 格式：`arn:aws:redshift:{{region}}:{{account-id}}:dbuser:serverless-{{account-id}}-{{workgroup-id}}/{{user-name}}`。

1. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/home?#home)。

1. 在导航窗格中，选择**角色**。

1. 选择要限制到特定 Amazon Redshift 数据库用户的 IAM 角色。

1. 选择 **Trust Relationships** 选项卡，然后选择 **Edit Trust Relationship**。允许 Amazon Redshift 代表您访问其他 AWS 服务的新 IAM 角色具有以下信任关系：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 向信任关系的 `sts:AssumeRole` 操作部分添加一个条件以将 `sts:ExternalId` 字段限制为您指定的值。为您要授予对 IAM 角色的访问权限的每个数据库用户包含一个 ARN。外部 ID 可以是任何唯一的字符串。

   例如，以下信任关系指定只有区域 `user1` 中的集群 `user2` 上的数据库用户 `my-cluster` 和 `us-west-2` 有权使用此 IAM 角色。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
     {
       "Effect": "Allow",
       "Principal": { 
         "Service": "redshift.amazonaws.com" 
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "StringEquals": {
           "sts:ExternalId": [
             "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user1",
             "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user2"
           ]
         }
       }
     }]
   }
   ```

------

1. 选择 **Update Trust Policy**。