Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

凭证和访问权限

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

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

基于角色的访问控制

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

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

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

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

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

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

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

基于密钥的访问控制

利用基于密钥的访问控制,您将为获权访问包含数据的 AWS 资源的 IAM 用户提供访问密钥 ID 和秘密访问密钥。 

注意

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

要使用 IAM 用户凭证进行身份验证,请用授权用户的访问密钥 ID 和完整的秘密访问密钥替换 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 参数的 <access-key-id><secret-access-key,如下所示。

Copy
ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>';

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