授权 Amazon Redshift 代表您访问 Amazon 服务 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

授权 Amazon Redshift 代表您访问 Amazon 服务

某些 Amazon Redshift 功能要求 Amazon Redshift 代表您访问其他 Amazon 服务。例如,COPYUNLOAD 命令可使用 Simple Storage Service(Amazon S3)存储桶将数据加载或卸载到您的 Amazon Redshift 集群中。CREATE EXTERNAL FUNCTION 命令可以使用标量 Lambda 用户定义的函数 (UDF) 调用 Amazon Lambda 函数。Amazon Redshift Spectrum 可以在 Amazon Athena 或 Amazon Glue 中使用数据目录。要让您的 Amazon Redshift 集群代表您执行操作,请为这些集群提供安全凭证。提供安全凭证的首选方法是指定一个 Amazon Identity and Access Management (IAM) 角色。对于 COPY 和 UNLOAD,您可以提供临时凭证。

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

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

哪个用户需要编程式访问权限? 目的 方式
IAM 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 按照《IAM 用户指南》将临时凭证用于 Amazon 资源中的说明进行操作。
IAM

(不推荐使用)

使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。
按照《IAM 用户指南》管理 IAM 用户的访问密钥中的说明进行操作。

接下来,了解如何创建具有访问其他 Amazon 服务的适当权限的 IAM 角色。当您执行 Amazon Redshift 命令时,还需要将该角色与您的集群关联并指定角色的 Amazon Resource Name (ARN)。有关更多信息,请参阅 使用 IAM 角色授权 COPY、UNLOAD、CREATE EXTERNAL FUNCTION 和 CREATE EXTERNAL SCHEMA 操作

此外,超级用户还可以向特定用户和组授予 ASSUMEROLE 权限,以便为 COPY 和 UNLOAD 操作提供对角色的访问权限。有关更多信息,请参阅 Amazon Redshift 数据库开发人员指南中的 GRANT

创建 IAM 角色以允许 Amazon Redshift 集群访问 Amazon 服务

创建具有权限的 IAM 角色

要创建 IAM 角色以允许您的 Amazon Redshift 集群代表您与其他 Amazon 服务通信,请执行以下步骤。本节中使用的值是示例,您可以根据需要选择值。

要创建 IAM 角色以允许 Amazon Redshift 访问 Amazon 服务
  1. 打开 IAM 控制台

  2. 在导航窗格中,选择角色

  3. 选择 Create role(创建角色)。

  4. 选择 Amazon 服务,然后选择 Redshift

  5. Select your use case 下,选择 Redshift - Customizable,然后选择 Next: Permissions。此时显示 Attach permissions policy 页面。

  6. 对于使用 COPY 访问 Simple Storage Service(Amazon S3),作为示例,您可以使用 AmazonS3ReadOnlyAccess 并附加。要使用 COPY 或 UNLOAD 访问 Simple Storage Service(Amazon S3),我们建议您创建托管式策略,以相应地限制对所需存储桶和前缀的访问。对于读取和写入操作,我们建议强制执行最低权限,并仅限于 Amazon Redshift 要求的 Simple Storage Service(Amazon S3)存储桶和键前缀。

    要想为 CREATE EXTERNAL FUNCTION 命令调用 Lambda 函数,请添加 AWSLambdaRole

    对于 Redshift Spectrum,除 Simple Storage Service(Amazon S3)访问以外,添加 AWSGlueConsoleFullAccessAmazonAthenaFullAccess

    选择 下一步:标签

  7. 此时将显示添加标签页面。您可以选择性地添加标签。选择下一步:审核

  8. 对于角色名称,键入一个角色名称,例如 RedshiftCopyUnload。选择创建角色

  9. 使用新角色的集群中的所有用户都可使用该角色。如需限制访问,只允许特定集群中的特定用户、或特定区域中的集群访问,请编辑该角色的信任关系。有关更多信息,请参阅 限制对 IAM 角色的访问

  10. 将角色与您的集群关联。您可以在创建集群时关联 IAM 角色,或将角色添加到现有集群中。有关更多信息,请参阅 将 IAM 角色与集群相关联

    注意

    要限制对特定数据的访问,请使用授予所需最少权限的 IAM 角色。