

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

# 向 Amazon Redshift Serverless 授予权限
<a name="serverless-security-other-services"></a>

要访问其它 Amazon 服务，Amazon Redshift Serverless 需要权限。某些 Amazon Redshift 功能要求 Amazon Redshift 代表您访问其他 Amazon 服务。为了让您的 Amazon Redshift Serverless 实例为您执行操作，请向它提供安全凭证。提供安全凭证的首选方法是指定一个 Amazon Identity and Access Management (IAM) 角色。您还可通过 Amazon Redshift 控制台创建 IAM 角色，并将其设置为默认角色。有关更多信息，请参阅 [创建一个 IAM 角色作为 Amazon Redshift 的默认角色](#serverless-default-iam-role)。

要访问其它 Amazon 服务，请创建具有适当权限的 IAM 角色。您还需要将角色与您的 Amazon Redshift Serverless 关联。此外，您可在运行 Amazon Redshift 命令时指定角色的 Amazon 资源名称（ARN），或者指定 `default` 关键字。

在 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 中更改 IAM 角色的信任关系时，请确保将 `redshift-serverless.amazonaws.com` 和 `redshift.amazonaws.com` 作为主体服务名称。有关如何管理 IAM 角色以代表您访问其他 Amazon 服务的信息，请参阅[授权 Amazon Redshift 代表您访问 Amazon 服务](authorizing-redshift-service.md)。

## 创建一个 IAM 角色作为 Amazon Redshift 的默认角色
<a name="serverless-default-iam-role"></a>

当您通过 Amazon Redshift 控制台创建 IAM 角色时，Amazon Redshift 以编程方式在您的 Amazon Web Services 账户 中创建角色。Amazon Redshift 还会自动为其附加现有 Amazon 托管式策略。这种方法表示您可以停留在 Amazon Redshift 控制台中，无需切换到 IAM 控制台进行角色创建。

您通过控制台为集群创建的 IAM 角色具有自动附加的 `AmazonRedshiftAllCommandsFullAccess` 托管式策略。此 IAM 角色允许 Amazon Redshift 为 Amazon IAM 账户中的资源复制、卸载、查询和分析数据。相关命令包括 UNLOAD、CREATE EXTERNAL FUNCTION、CREATE EXTERNAL TABLE、CREATE EXTERNAL SCHEMA、CREATE MODEL 和 CREATE LIBRARY。有关如何创建 IAM 角色作为 Amazon Redshift 的默认角色的更多信息，请参阅[创建一个 IAM 角色作为 Amazon Redshift 的默认角色](#serverless-default-iam-role)。

要开始创建 IAM 角色作为 Amazon Redshift 的默认角色，请打开 Amazon Web Services 管理控制台，选择 Amazon Redshift 控制台，然后在菜单中选择 **Redshift Serverless**。在无服务器控制面板中，您可以创建新的工作组。创建步骤将引导您选择 IAM 角色或配置新的 IAM 角色。

当您已经拥有 Amazon Redshift Serverless 工作组并希望为它配置 IAM 角色时，请打开 Amazon Web Services 管理控制台。选择 Amazon Redshift 控制台，然后选择 **Redshift Serverless**。在 Amazon Redshift Serverless 控制台上，为现有工作组选择**命名空间配置**。在**安全和加密**下，您可以编辑权限。

### 向命名空间分配 IAM 角色
<a name="serverless-endpoint-iam-role-namespace"></a>

每个 IAM 角色都是一个 Amazon 身份，此身份的权限策略可确定每个角色可以在 Amazon 中执行哪些操作。该角色旨在让任何需要它的用户代入。此外，每个命名空间都是对象（如表和架构）和用户的集合。当您使用 Amazon Redshift Serverless 时，您可以将多个 IAM 角色与命名空间关联。这样可以更轻松地为数据库对象集合适当地构建权限，以便角色可以对内部和外部数据执行操作。例如，您可以在 Amazon Redshift 数据库中运行 `COPY` 命令，以检索 Amazon S3 中的数据并填充 Redshift 表。

您可以使用控制台将多个角色与命名空间关联，如本节前面所述。您还可以使用 `CreateNamespace` API 命令或 CLI 命令 `create-namespace`。使用 API 或 CLI 命令，您可以通过用一个或多个角色填充 `IAMRoles`，以将 IAM 角色分配给命名空间。具体来说，您可以将特定角色的 ARN 添加到集合中。

#### 管理命名空间相关 IAM 角色
<a name="serverless-endpoint-iam-role-namespace-console"></a>

在 Amazon Web Services 管理控制台上，可以管理 Amazon Identity and Access Management 中角色的权限策略。您可以使用**命名空间配置**下提供的设置管理命名空间的 IAM 角色。有关命名空间及其在 Amazon Redshift Serverless 中的使用情况的更多信息，请参阅[工作组和命名空间](serverless-workgroup-namespace.md)。