

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

# 载入
<a name="federated-permissions-onboarding"></a>

## Redshift 集群注册
<a name="federated-permissions-onboarding-cluster-registration"></a>

Redshift 支持创建新集群或者通过 AWS Glue Data Catalog（GDC）注册从快照还原集群。您可以指定此注册的 GDC 目录名称部分。要支持 IdC 身份传播，您可以指定 Lakehouse 类型的 Redshift IdC 应用程序的 ARN，用于启用 IdC 身份传播。

**使用 Glue Data Catalog 注册创建新集群**

------
#### [ CLI ]

要自动将新创建的集群注册到 Data Catalog，请提供将用于创建和注册 Data Catalog 的 catalog-name。`redshift-idc-application-arn` 参数是可选的，如果您想将集群与 Lakehouse 类型的 Redshift IdC 应用程序相关联，请包括此参数。您也可以在以后建立此 IdC 应用程序关联。

```
aws redshift create-cluster \
    --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

------
#### [ Console ]

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

1. 导航到预调配集群的控制面板，然后选择**创建集群**。

1. 配置常规集群设置。

1. 在“注册 AWS Glue Data Catalog”部分，选择**注册 Amazon Redshift 联合身份验证权限**。
   + 输入目录名称标识符。
   + （推荐）使用 AWS IAM Identity Center 选择与 Redshift IdC 应用程序关联的 Amazon Redshift 联合身份验证权限。

1. 完成剩余的集群设置，然后选择**创建集群**。

------

**通过 AWS Glue Data Catalog 注册还原新集群**

------
#### [ CLI ]

要通过 AWS Glue Data Catalog 集成将快照还原到新集群中，请提供将用于创建和注册 AWS Glue 目录的 catalog-name。`redshift-idc-application-arn` 参数是可选的，如果您想将集群与 Lakehouse 类型的 Redshift IdC 应用程序相关联，请包括此参数。您也可以在以后建立此 IdC 应用程序关联。

```
aws redshift restore-from-cluster-snapshot \
   --cluster-identifier 'redshift-cluster' \
   --catalog-name 'glue-data-catalog-name' \
   --snapshot-identifier 'redshift-cluster-snapshot' \
   --redshift-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
   --<other_configurations_as_needed>
```

------
#### [ Console ]

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

1. 导航到预调配快照页面。在快照表中，从**还原快照**下拉菜单中选择**还原到预调配集群**。

1. 配置常规集群设置。

1. 在“注册 AWS Glue Data Catalog”部分，选择**注册 Amazon Redshift 联合身份验证权限**。
   + 输入目录名称标识符。
   + （推荐）使用 AWS IAM Identity Center 选择与 Redshift IdC 应用程序关联的 Amazon Redshift 联合身份验证权限。

1. 完成剩余的集群设置，然后选择**创建集群**。

------

**通过 AWS Glue Data Catalog 注册修改现有集群**

如果您的 Redshift 集群已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联，则在 AWS Glue Data Catalog 注册期间会发生以下情况：
+ 如果未提供 Redshift IdC 应用程序 ARN，则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
+ 指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时，当前 IdC 提供程序将被禁用
+ 提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
  + 您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv\_identity\_providers 进行检查。有关 svv\_identity\_providers 的更多信息，请参阅 [svv\_identity\_providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + 对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户，必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息，请参阅[连接权限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 注册 AWS Glue Data Catalog 后，您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。

------
#### [ CLI ]

您可以使用 `modify-lakehouse-configuration` 命令将集群注册到 AWS Glue Data Catalog，`catalog-name` 用于创建和注册您的 AWS Glue 目录。要支持 IdC 身份传播，请指定 lakehouse 类型的 RedshiftIdcApplication 的 ARN，这需要 Lakehouse 类型的 Redshift IdC 应用程序，请参阅[创建一个 Lakehouse 类型的新 Redshift IdC 应用程序：具有联合身份验证权限的 Redshift 仓库的 Identity Center 应用程序配置](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. 导航到要注册的预调配集群，然后将其选中。

1. 在集群的详细信息页面上，从**操作**下拉菜单中选择**注册 AWS Glue Data Catalog**。

1. 选择**注册 Amazon Redshift 联合身份验证权限**选项，然后
   + 输入目录名称标识符。
   + （推荐）使用 AWS IAM Identity Center 选择与 Redshift IdC 应用程序关联的 Amazon Redshift 联合身份验证权限，然后选择**注册**。

------

## Redshift Serverless 命名空间注册
<a name="federated-permissions-onboarding-namespace-registration"></a>

Redshift Serverless 支持将连接了工作组的 Serverless 命名空间注册到 AWS Glue Data Catalog。请注意，在此更新期间，数据库将重新启动。

如果您的 Redshift Serverless 命名空间已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联，则在 Glue Data Catalog 注册期间会发生以下情况：
+ 如果未提供 Redshift IdC 应用程序 ARN，则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
+ 指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时，当前 IdC 提供程序将被禁用
+ 提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
  + 您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv\_identity\_providers 进行检查。有关 svv\_identity\_providers 的更多信息，请参阅 [svv\_identity\_providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + 对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户，必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息，请参阅[连接权限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 注册 AWS Glue Data Catalog 后，您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。

------
#### [ CLI ]

您可以使用 `update-lakehouse-configuration` 命令将 Redshift Serverless 命名空间注册到 AWS Glue Data Catalog，`catalog-name` 用于创建和注册您的 Glue 目录。要支持 IdC 身份传播，请指定 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。

```
aws redshift-serverless update-lakehouse-configuration \
    --namespace-name 'serverless-namespace-name' \
    --lakehouse-registration Register \
    --catalog-name 'glue-data-catalog-name' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17'
```

------
#### [ Console ]

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

1. 导航到要注册的预调配集群，然后将其选中。

1. 在集群的详细信息页面上，从**操作**下拉菜单中选择**注册 AWS Glue Data Catalog**。

1. 选择**注册 Amazon Redshift 联合身份验证权限**选项，然后
   + 输入目录名称标识符。
   + （推荐）使用 AWS IAM Identity Center 选择与 Redshift IdC 应用程序关联的 Amazon Redshift 联合身份验证权限，然后选择**注册**。

------

## 启用 AWS IAM Identity Center 身份传播
<a name="federated-permissions-onboarding-propagation"></a>

Amazon Redshift 支持 Identity Center（IdC）身份传播，以便在 Redshift 实例与 AWS Lake Formation/AWS Glue 服务之间无缝传递 IdC 用户身份。

**先决条件**
+ 您已经创建了 Lakehouse 类型的 Amazon Redshift IdC 应用程序，请参阅[具有联合身份验证权限的 Redshift 仓库的 AWS IAM Identity Center 应用程序配置](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。
+ 您有一个已经注册到 AWS Glue Data Catalog 的 Amazon Redshift 集群或 Amazon Redshift Serverless 命名空间。
  + Redshift Serverless 命名空间需要连接工作组才能执行相关操作。

如果您的 Redshift 集群或 Redshift Serverless 命名空间已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联，则在 AWS Glue Data Catalog 注册期间会发生以下情况：
+ 如果未提供 Redshift IdC 应用程序 ARN，则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
+ 指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时，当前 IdC 提供程序将被禁用
+ 提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
  + 您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv\_identity\_providers 进行检查。有关 svv\_identity\_providers 的更多信息，请参阅 [svv\_identity\_providers](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_IDENTITY_PROVIDERS.html)。
  + 对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户，必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息，请参阅[连接权限](federated-permissions-prereqs.md#federated-permissions-prereqs-connect)。
  + 注册 AWS Glue Data Catalog 后，您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。

### 为 Amazon Redshift 预调配集群启用 AWS IAM Identity Center 身份传播
<a name="federated-permissions-onboarding-propagation-cluster"></a>

对于将其命名空间注册到了 AWS Glue Data Catalog 的 Amazon Redshift 预调配集群，该集群需要的 Lakehouse 类型的 Amazon Redshift IdC 应用程序并不要求向该应用程序进行明确的用户 AWS IAM Identity Center 身份分配，IdC 用户的登录权限由 Redshift 仓库上的 CONNECT 权限管理。

------
#### [ CLI ]

您可以使用 `modify-lakehouse-configuration` 命令为具有 Redshift 联合身份验证权限的集群启用 IdC 身份传播，方法是指定 lakehouse 类型的 RedshiftIdcApplication 的 ARN，这需要 Lakehouse 类型的 Redshift IdC 应用程序，请参阅[创建一个 Lakehouse 类型的新 Redshift IdC 应用程序：具有联合身份验证权限的 Redshift 仓库的 Identity Center 应用程序配置](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. 导航到要注册的预调配集群，然后将其选中。

1. 在集群的详细信息页面上，从**操作**下拉菜单中选择**注册 AWS Glue Data Catalog**。

1. 使用 AWS IAM Identity Center 下拉菜单，对 Amazon Redshift 联合身份验证权限选择**启用**来关联 IdC 应用程序，然后选择**保存更改**。

------

### 为 Amazon Redshift Serverless 命名空间启用 AWS IAM Identity Center 身份传播
<a name="federated-permissions-onboarding-propagation-namespace"></a>

------
#### [ CLI ]

您可以使用 `modify-lakehouse-configuration` 命令为具有 Redshift 联合身份验证权限的命名空间启用 IdC 身份传播，方法是指定 lakehouse 类型的 RedshiftIdcApplication 的 ARN，这需要 Lakehouse 类型的 Redshift IdC 应用程序，请参阅[创建一个 Lakehouse 类型的新 Redshift IdC 应用程序：具有联合身份验证权限的 Redshift 仓库的 Identity Center 应用程序配置](https://docs.aws.amazon.com/redshift/latest/dg/federated-permissions-prereqs.html#federated-permissions-prereqs-configuration)。

```
aws redshift modify-lakehouse-configuration \
    --cluster-identifier 'redshift-cluster' \
    --lakehouse-idc-registration Associate \
    --lakehouse-idc-application-arn 'arn:aws:redshift:us-east-1:012345678912:redshiftidcapplication:3f966e50-f1b7-495c-8ace-bd0d6c3c3b17' \
```

------
#### [ Console ]

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

1. 导航到要编辑注册信息的 Serverless 命名空间，然后将其选中。

1. 在集群的详细信息页面上，从**操作**下拉菜单中选择**编辑 AWS Glue Data Catalog 注册**。

1. 使用 AWS IAM Identity Center 下拉菜单，对 Amazon Redshift 联合身份验证权限选择**启用**来关联 IdC 应用程序，然后选择**保存更改**。

------

## ALTER USER SET GLOBAL IDENTITY
<a name="federated-permissions-onboarding-alter-set-global-identity"></a>

除了 IAM 和 AWS IAM Identity Center 凭证以外，对具有联合身份验证权限的 Redshift 仓库运行查询的用户，还可以使用 IAM 角色进行身份验证。超级用户可以为其他非联合用户设置一个 IAM 角色，使其在建立会话时自动关联，在对具有联合身份验证权限的 Redshift 仓库进行查询时，将代入此 IAM 角色。提供此功能是为了让 AWS IdC 用户可以通过非交互式方式进行身份验证。

此功能在以下使用案例中非常有用：
+ 拥有庞大且复杂设置的客户，此类客户除具备全局身份的用户外，还存在现有的本地仓库用户。
+ 使用 IdC 的客户，此类客户希望无需通过交互式浏览器操作即可实现自动登录。

要求和限制：
+ 只有超级用户才能通过 `ALTER USER` 设置 IAM 角色。
+ IAM 角色必须附加到集群。
+ IAM 角色必须拥有访问相关资源的权限，以便在具有联合身份验证权限的 Redshift 仓库上运行查询。建议使用 `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS 托管式策略。
+  通过 GLOBAL IDENTITY IAM 角色进行身份验证的用户，可以查询具有联合身份验证权限的 Redshift 仓库中的视图，但不能对视图执行 CREATE、ALTER、REFRESH 或 DROP 操作。

### 语法
<a name="federated-permissions-onboarding-alter-set-global-identity-syntax"></a>

以下语法描述了 `ALTER USER SET GLOBAL IDENTITY` 命令，该命令用于为非联合数据库用户设置 IAM 角色，使用户能够对具有联合身份验证权限的 Redshift 仓库运行查询。

```
ALTER USER {{username}} SET
GLOBAL IDENTITY IAM_ROLE 'arn:aws:iam::<AWS-account-id>:role/<role-name>'
```

现在，当以目标用户的身份（通过直接以 {{username}} 身份进行连接，或者使用 [SET SESSION AUTHORIZATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION.html)）进行身份验证时，您可以使用以下命令检查全局身份角色

```
SHOW GLOBAL IDENTITY
```

请注意，全局身份角色在建立会话时会与用户关联。如果您为当前已登录用户设置了全局身份，则该用户需要重新连接才能使全局身份生效。

以下命令可用于移除关联的 IAM 角色。

```
ALTER USER {{username}} RESET GLOBAL IDENTITY
```

### 参数
<a name="federated-permissions-onboarding-alter-set-global-identity-parameters"></a>

username  
用户的名称。不能是联合用户，例如 IAM 用户或 AWS IdC 用户。

IAM\_ROLE 'arn:aws:iam::<account-id>:role/<role-name>'  
当用户 {{username}} 对具有联合身份验证权限的 Redshift 仓库运行查询时，使用您的集群用于身份验证和授权的 IAM 角色的 Amazon 资源名称（ARN）。此角色必须具有运行查询所需的权限。建议使用 `[AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html)` AWS 托管式策略。