

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

# 使用 IAM 角色授权 COPY、UNLOAD、CREATE EXTERNAL FUNCTION 和 CREATE EXTERNAL SCHEMA 操作
<a name="copy-unload-iam-role"></a>

您可使用 [COPY](https://docs.amazonaws.cn/redshift/latest/dg/r_COPY.html) 命令将数据加载（或导入）到 Amazon Redshift，使用 [UNLOAD](https://docs.amazonaws.cn/redshift/latest/dg/r_UNLOAD.html) 命令从 Amazon Redshift 卸载（或导出）数据。您可以使用 CREATE EXTERNAL FUNCTION 命令创建用户定义的函数，这些函数从 Amazon Lambda 调用函数。

在使用 Amazon Redshift Spectrum 时，您要使用 [CREATE EXTERNAL SCHEMA](https://docs.amazonaws.cn/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) 命令来指定包含您的数据的 Simple Storage Service（Amazon S3）存储桶的位置。当您运行 COPY、UNLOAD 或 CREATE EXTERNAL SCHEMA 命令时，会提供安全凭证。这些凭证授权您的 Amazon Redshift 集群在目标目的地 [如 Simple Storage Service（Amazon S3）存储桶] 中读取或写入数据。

运行 CREATE EXTERNAL FUNCTION 时，您可以使用 IAM 角色参数提供安全凭证。这些凭证授权您的 Amazon Redshift 集群从 Amazon Lambda 调用 Lambda 函数。提供安全凭证的首选方法是指定一个 Amazon Identity and Access Management (IAM) 角色。对于 COPY 和 UNLOAD，您可以提供临时凭证。有关创建 IAM 角色的信息，请参阅[授权 Amazon Redshift 代表您访问 Amazon 服务](authorizing-redshift-service.md)。

如果用户需要在 Amazon Web Services 管理控制台之外与 Amazon 交互，则需要编程式访问权限。Amazon API 和 Amazon Command Line Interface 需要访问密钥。可能的话，创建临时凭证，该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求（直接或使用 Amazon SDK）。 | 按照《IAM 用户指南》中[将临时凭证用于 Amazon 资源](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求（直接或使用 Amazon SDK）。 | 按照《IAM 用户指南》中[管理 IAM 用户的访问密钥](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_credentials_access-keys.html)中的说明进行操作。 | 

使用 IAM 角色的步骤如下所示：
+ 创建要与您的 Amazon Redshift 集群结合使用的 IAM 角色。
+ 将 IAM 角色与集群关联。
+ 在调用 COPY、UNLOAD、CREATE EXTERNAL SCHEMA 或 CREATE EXTERNAL FUNCTION 命令时包含 IAM 角色的 ARN。