

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自動建立 的 Amazon Redshift 角色 AWS IAM Identity Center
<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` 模式，篩選哪些 IdP 群組要對應至 Redshift 角色。當模式發生衝突時，`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 角色階層來簡化許可管理。