

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

# 凭证和访问权限
<a name="loading-data-access-permissions"></a>

 要使用另一 Amazon 资源（如 Amazon S3、Amazon DynamoDB、Amazon EMR 或 Amazon EC2）加载或卸载数据，Amazon Redshift 必须有权访问该资源和有权执行访问数据所需的操作。例如，要从 Amazon S3 加载数据，COPY 必须具有对桶的 LIST 访问权限以及对桶对象的 GET 访问权限。

要获取访问资源的授权，Amazon Redshift 必须经过身份验证。您可以选择基于角色的访问控制或基于密钥的访问控制。本节概述了这两种方法。有关完整的详细信息和示例，请参阅[访问其他 Amazon 资源的权限](copy-usage_notes-access-permissions.md)。

## 基于角色的访问控制
<a name="loading-data-access-role-based"></a>

利用基于角色的访问控制，Amazon Redshift 将代表您临时代入 Amazon Identity and Access Management（IAM）角色。然后，基于对角色的授权，Amazon Redshift 可以访问所需的 Amazon 资源。

我们建议使用基于角色的访问控制，因为除了保护您的 Amazon 凭证之外，它还将提供对 Amazon 资源和敏感用户数据的更安全、精细的访问控制。

要使用基于角色的访问控制，您必须先使用 Amazon Redshift 服务角色类型创建 IAM 角色，然后将此角色附加到您的数据仓库。此角色至少必须具有 [COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 权限](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)中列出的权限。有关创建 IAM 角色并将其附加到集群的步骤，请参阅《Amazon Redshift 管理指南》**中的[创建 IAM 角色以允许 Amazon Redshift 集群访问 Amazon 服务](https://docs.amazonaws.cn/redshift/latest/mgmt/authorizing-redshift-service.html#authorizing-redshift-service-creating-an-iam-role)。

通过使用 Amazon Redshift 管理控制台、CLI 或 API，您可将角色添加到集群或查看与集群关联的角色。有关更多信息，请参阅《Amazon Redshift 管理指南》**中的[使用 IAM 角色授权 COPY 和 UNLOAD 操作](https://docs.amazonaws.cn/redshift/latest/mgmt/copy-unload-iam-role.html)。

当您创建 IAM 角色时，IAM 将返回该角色的 Amazon 资源名称（ARN）。要使用 IAM 角色运行 COPY 命令，请使用 IAM\$1ROLE 参数或 CREDENTIALS 参数提供角色 ARN。

以下 COPY 命令示例使用角色 `MyRedshiftRole` 的 IAM\$1ROLE 参数进行身份验证。

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
IAM_ROLE 'arn:aws:iam::12345678901:role/MyRedshiftRole';
```

Amazon 用户必须至少具有[COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 权限](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)中列出的权限。

## 基于密钥的访问控制
<a name="loading-data-access-key-based"></a>

利用基于密钥的访问控制，您可以为获得授权可访问包含数据的 Amazon 资源的用户提供访问密钥 ID 和秘密访问密钥。 

**注意**  
我们强烈建议使用 IAM 角色进行身份验证而不是提供纯文本访问密钥 ID 和秘密访问密钥。如果您选择基于密钥的访问控制，则不要使用 Amazon 账户（根）凭证。应始终创建 IAM 用户并提供该用户的访问密钥 ID 和秘密访问密钥。有关创建 IAM 用户的步骤，请参阅[在您的 Amazon 账户中创建 IAM 用户](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_users_create.html)。