

 从补丁 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/)。

# 自动为 AWS IAM Identity Center 创建 Amazon Redshift 角色
<a name="redshift-iam-access-control-sso-autocreate"></a>

此特征与 AWS IAM Identity Center 集成，让您可以根据组成员资格在 Redshift 中自动创建角色。

自动创建角色有几个好处。自动创建角色时，Redshift 会在您的 IdP 中创建具有组成员资格的角色，因此您可以避免繁琐的手动角色创建和维护。您还可以选择使用包括和排除模式来筛选映射到 Redshift 角色的组。

## 工作原理
<a name="autocreate-overview"></a>

当您以 IdP 用户身份登录 Redshift 时，会发生以下一系列事件：

1. Redshift 从 IdP 那里检索您的组成员资格。

1. Redshift 使用角色格式 `idp_namespace:rolename` 自动创建映射到这些组的角色。

1. Redshift 授予您使用映射角色的权限。

每次用户登录时，都会自动创建目录中不存在但该用户所属的每个组。您可以选择设置包括和排除筛选条件，从而控制哪些 IdP 组已创建 Redshift 角色。

## 配置自动创建角色
<a name="autocreate-configuring"></a>

使用 `CREATE IDENTITY PROVIDER` 和 `ALTER IDENTITY PROVIDER` 命令启用和配置自动角色创建。

```
-- Create a new IdP with auto role creation enabled
CREATE IDENTITY PROVIDER <idp_name> TYPE AWSIDC
  NAMESPACE '<namespace>' 
  APPLICATION_ARN 'app_arn'
  IAM_ROLE 'role_arn'
  AUTO_CREATE_ROLES TRUE; 

-- Enable on existing IdP 
ALTER IDENTITY PROVIDER <idp_name>
  AUTO_CREATE_ROLES TRUE;

-- Disable  
ALTER IDENTITY PROVIDER <idp_name>
  AUTO_CREATE_ROLES FALSE;
```

## 筛选组
<a name="autocreate-filtering"></a>

您可以选择使用 `INCLUDE` 和 `EXCLUDE` 模式筛选映射到 Redshift 角色的 IdP 组。当模式冲突时，`EXCLUDE` 优先于 `INCLUDE`。

```
-- Only create roles for groups with 'dev' 
CREATE IDENTITY PROVIDER <idp_name> TYPE AWSIDC
  ...
  AUTO_CREATE_ROLES TRUE
  INCLUDE GROUPS LIKE '%dev%';
    
-- Exclude 'test' groups
ALTER IDENTITY PROVIDER <idp_name>  
  AUTO_CREATE_ROLES TRUE
  EXCLUDE GROUPS LIKE '%test%';
```

## 示例
<a name="autocreate-filtering"></a>

以下示例说明了如何启用自动创建角色而不进行筛选。

```
CREATE IDENTITY PROVIDER prod_idc TYPE AWSIDC  ...
  AUTO_CREATE_ROLES TRUE;
```

以下示例包括开发组，不包括测试组。

```
ALTER IDENTITY PROVIDER prod_idc
  AUTO_CREATE_ROLES TRUE
  INCLUDE GROUPS LIKE '%dev%'
  EXCLUDE GROUPS LIKE '%test%';
```

## 最佳实践
<a name="autocreate-bp"></a>

为角色启用自动创建功能时，请考虑遵循以下最佳实践：
+ 使用 `INCLUDE` 和 `EXCLUDE` 筛选条件来控制哪些组获得角色。
+ 定期审核角色并清理未使用的角色。
+ 利用 Redshift 角色层次结构来简化权限管理。