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

凭证和访问权限

要使用其他 Amazon 资源(如 Amazon S3、Amazon DynamoDB、Amazon EMR 或 Amazon EC2)加载或卸载数据,您的集群必须有权访问这些资源和执行访问数据所需的操作。例如,要从 Amazon S3 加载数据,COPY 必须具有对桶的 LIST 访问权限以及对桶对象的 GET 访问权限。

要获取访问资源的授权,您的集群必须经过身份验证。您可以选择基于角色的访问控制或基于密钥的访问控制。本节概述了这两种方法。有关完整的详细信息和示例,请参阅访问其他 Amazon 资源的权限

基于角色的访问控制

利用基于角色的访问控制,您的集群将代表您临时代入 Amazon Identity and Access Management (IAM) 角色。然后,基于对角色的授权,您的集群可访问所需的 Amazon 资源。

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

要使用基于角色的访问控制,您必须先使用 Amazon Redshift 服务角色类型创建 IAM 角色,然后将此角色附加到您的集群。此角色至少必须具有 COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 权限中列出的权限。有关创建 IAM 角色并将其附加到集群的步骤,请参阅《Amazon Redshift 管理指南》中的创建 IAM 角色以允许您的 Amazon Redshift 集群访问 Amazon 服务

通过使用 Amazon Redshift 管理控制台、CLI 或 API,您可将角色添加到集群或查看与集群关联的角色。有关更多信息,请参阅《Amazon Redshift 管理指南》中的使用 IAM 角色授权 COPY 和 UNLOAD 操作

当您创建 IAM 角色时,IAM 将返回该角色的 Amazon 资源名称 (ARN)。要使用 IAM 角色运行 COPY 命令,请使用 IAM_ROLE 参数或 CREDENTIALS 参数提供角色 ARN。

以下 COPY 命令示例使用角色 MyRedshiftRole 的 IAM_ROLE 参数进行身份验证。

copy customer from 's3://mybucket/mydata' iam_role 'arn:aws:iam::12345678901:role/MyRedshiftRole';

Amazon 用户必须至少具有COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 权限中列出的权限。

基于密钥的访问控制

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

注意

我们强烈建议使用 IAM 角色进行身份验证而不是提供纯文本访问密钥 ID 和秘密访问密钥。如果您选择基于密钥的访问控制,则不要使用 Amazon 账户(根)凭证。应始终创建 IAM 用户并提供该用户的访问密钥 ID 和秘密访问密钥。有关创建 IAM 用户的步骤,请参阅在您的 Amazon 账户中创建 IAM 用户