如何为 Amazon S3 中的 AWS KMS 加密数据启用跨账户 Amazon Redshift COPY 和 Redshift Spectrum 查询(二)

2019 年 12 月 27 日

如何为 Amazon S3 中的 AWS KMS 加密数据启用跨账户 Amazon Redshift COPY 和 Redshift Spectrum 查询(二)

关于使用案例


出于各种原因,多账户 AWS 环境是客户共用的模式。对于 AWS 中的数据湖客户,其中一个常见原因是,要将数据资产的所有权从公司的不同业务单位中分离出来。同时,业务单位可能需要相互授予对其部分数据资产的访问权,以获得新的业务见解。


如下面的图所示,在我们的示例中,账户 A 拥有包含 SSE-KMS 加密数据的 S3 存储桶,账户 B 拥有启用了 Redshift Spectrum 的 Amazon Redshift 集群。账户 B 需要使用 COPY 命令访问要加载到 Amazon Redshift 集群的相同数据,并且还需要使用 Redshift Spectrum 进行查询。



解决方案演练


接下来,我们详细介绍支持此使用案例的几个不同选项。


先决条件


此解决方案假设您已拥有以下设置:


  1. 对同一个 AWS 区域中_两个_ AWS 账户(我们称之为账户 A 和 B)的访问权。*

  2. 向 AWS 账户授予

  3. AdministratorAccess策略(在生产中,应对其进行进一步限制)。

  4. 账户 A 是 AWS KMS 中的客户托管 CMK,具有以下属性:

  5. 别名为

  6. kms_key_account_a

  7. 描述为 Cross Account KMS Key in Account A

  8. 管理员为当前 IAM 用户,您使用该用户登录 AWS 控制台并创建 KMS 密钥

  9. 账户 B 被添加为外部账户

  10. 复制并保存 CMK Amazon 资源名称 (ARN) 以便稍后使用

  11. 账户 A 使用 AWS 中的以下示例数据集:


       Customer - s3://awssampledbuswest2/ssbgz/customer0002_part_00.gz
复制代码


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,有两个解决方案选项可供选择:


  1. 账户 B 中的 AWS Glue 数据目录

  2. 账户 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/


2019 年 12 月 27 日 11:3191

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

Visio服务

JackWangGeek

SharePoint

Spring配置类深度剖析-总结篇(手绘流程图,可白嫖)

YourBatman

spring springboot @Configuration 白嫖

一致性协议算法

张瑞浩

静态代码检查完成代码分析和SonarQuber的初探

陈磊@Criss

SaaS是「包治百病」的良药吗?

ToB行业头条

为什么我们应该使用 Flutter?

环信

flutter

从一盏路灯,看亿万级联接的智能之路

华为云开发者社区

人工智能 物联网 智能设备 华为云

海南七星彩网站源码结算功能开发

网站,小程序,APP开发定制

MySQL性能优化(六):常见优化SQL的技巧

xcbeyond

MySQL MySQL性能优化 SQL优化 优化技巧

再强调一遍, 我为什么不建议大家接外包干私活?

非著名程序员

程序员 外包 提升认知 程序员成长 接私活

MySQL性能优化(一):MySQL架构与核心问题

xcbeyond

MySQL MySQL性能优化

Excel服务

JackWangGeek

SharePoint

PerformancePoint 组件概述

JackWangGeek

SharePoint Online

计算机网络基础(二)---网络层-IP协议详解

书旅

php laravel 计算机网络 网络协议

腾讯的区块链为何败给了老干妈的“萝卜章”?

ToB行业头条

MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧

xcbeyond

MySQL MySQL性能优化 执行计划

面试官:如何决定使用 HashMap 还是 TreeMap?

爱嘤嘤嘤斯坦

Java 算法 hashmap

MySQL性能优化(二):选择优化的数据类型

xcbeyond

MySQL性能优化

震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?

why技术

Java 源码 jdk 后端 bug

啃碎并发(11):内存模型之重排序

猿灯塔

PerformancePoint服务

JackWangGeek

SharePoint

API接口设计最佳实践

Man

Java 安全开发 设计实践 APi设计 接口管理

从需求到交付——论敏捷过程中的需求管理

华为云开发者社区

敏捷开发 团队协作 需求管理 故事 持续交付

MySQL性能优化(四):如何高效正确的使用索引

xcbeyond

MySQL 索引 MySQL性能优化

MySQL性能优化(三):深入理解索引的这点事

xcbeyond

MySQL 索引 MySQL性能优化

doris临时故障恢复过程时序图

刘志刚

MySQL性能优化(五):为什么查询速度这么慢

xcbeyond

MySQL 查询优化 MySQL性能优化

PowerPivot服务

JackWangGeek

SharePoint

未来的智慧城市:未来的城市生活愿景

网站,小程序,APP开发定制

MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

海星

Java MySQL 面试

案例解析丨金蝶K/3 Wise接入华为云RDS数据库SQL Server

华为云开发者社区

MySQL 数据库 Serverless 数据 华为云

如何为 Amazon S3 中的 AWS KMS 加密数据启用跨账户 Amazon Redshift COPY 和 Redshift Spectrum 查询(二)-InfoQ