关于使用案例
出于各种原因,多账户 AWS 环境是客户共用的模式。对于 AWS 中的数据湖客户,其中一个常见原因是,要将数据资产的所有权从公司的不同业务单位中分离出来。同时,业务单位可能需要相互授予对其部分数据资产的访问权,以获得新的业务见解。
如下面的图所示,在我们的示例中,账户 A 拥有包含 SSE-KMS 加密数据的 S3 存储桶,账户 B 拥有启用了 Redshift Spectrum 的 Amazon Redshift 集群。账户 B 需要使用 COPY 命令访问要加载到 Amazon Redshift 集群的相同数据,并且还需要使用 Redshift Spectrum 进行查询。
解决方案演练
接下来,我们详细介绍支持此使用案例的几个不同选项。
先决条件
此解决方案假设您已拥有以下设置:
对同一个 AWS 区域中_两个_ AWS 账户(我们称之为账户 A 和 B)的访问权。*
向 AWS 账户授予
AdministratorAccess策略(在生产中,应对其进行进一步限制)。
账户 A 是 AWS KMS 中的客户托管 CMK,具有以下属性:
别名为
kms_key_account_a
描述为 Cross Account KMS Key in Account A
管理员为当前 IAM 用户,您使用该用户登录 AWS 控制台并创建 KMS 密钥
账户 B 被添加为外部账户
复制并保存 CMK Amazon 资源名称 (ARN) 以便稍后使用
账户 A 使用 AWS 中的以下示例数据集:
5. **账户 A** 拥有称为
<tt>rs-xacct-kms-bucket</tt> 的 S3 存储桶,其存储桶加密选项通过早前创建的 KMS 密钥
<tt>kms_key_account_a</tt> 被设置为 AWS KMS。
![](https://d2908q01vomqb2.awsstatic-china.com/b6692ea5df920cad691c20319a6fffd7a4a766b8/2019/03/01/RedshiftKMSS32_2.png)
6. 使用下面的 AWS CLI 命令复制 Amazon Redshift 文档中的 AWS 示例数据集 [](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-tuning-tables-create-test-data.html)中的**客户**表数据。**注意:**由于存储桶名称在所有 AWS 客户中是全局统一的,您需要为测试运行指定一个唯一的存储桶名称。务必在以下命令中将 <tt>rs-xacct-kms-bucket</tt> 替换为您自己的存储桶名称:
复制代码
aws s3 cp s3://awssampledbuswest2/ssbgz/ s3://rs-xacct-kms-bucket/customer/ --recursive --exclude '*' --include 'customer*'
复制代码
7. 复制完成后,从 S3 控制台中检查文件的 **KMS 密钥 ID**,如下所示。![](https://d2908q01vomqb2.awsstatic-china.com/b6692ea5df920cad691c20319a6fffd7a4a766b8/2019/03/01/RedshiftKMSS33.png)
8. **账户 B** 拥有一个 Amazon Redshift 集群:
* 集群名称为
<tt>rstest</tt>
* 它可被公开访问
* 它附加了一个称为 <tt>redshift_role_account_b</tt> 的 IAM 角色,具有下面两个托管的 IAM 策略:
* <tt>AmazonS3ReadOnlyAccess</tt>
* <tt>AWSGlueConsoleFullAccess</tt>
******注意:**务必将 <tt>redshift_role_account_b</tt> 更新为您自己的 IAM 角色。
****您可以从客户端工具中成功设置数据库会话,例如笔记本电脑中设置 SQL Workbench。
复制代码
* 本次演练使用 US-West-2(俄勒冈)区域中可公开访问的 AWS 示例数据集。因此,我们建议您使用 US-West-2(俄勒冈)区域进行测试运行,以降低因数据移动而造成的跨区域网络延迟和费用。
逐步演练
根据您希望将哪个账户的 AWS Glue 数据目录用于 Redshift Spectrum,有两个解决方案选项可供选择:
账户 B 中的 AWS Glue 数据目录
账户 A 中的 AWS Glue 数据目录
选项 1:账户 B 中的 AWS Glue 数据目录
本文转载自 AWS 技术博客。
原文链接:https://amazonaws-china.com/cn/blogs/china/how-to-enable-cross-account-amazon-redshift-copy-and-redshift-spectrum-query-for-aws-kms-encrypted-data-in-amazon-s3/
评论