加密数据湖

概述

您是 MuMuMango 的安全工程师,负责创建数据湖来存储公司销售的所有水果。您的公司政策规定,数据湖中的敏感数据必须使用组织控制的加密密钥进行静态加密。您刚刚发现数百个对象已使用默认 S3 加密密钥上传到 S3。您的任务是快速纠正此政策违规行为,以防止对 MuMuMango 品牌造成损害,并确保将来的上传符合政策。

您的 AWS 账户具有以下资源:

要求

您的工作是通过以下方式使您的数据湖符合政策:

  1. 使用可扩展的方法,通过客户管理的 KMS 密钥加密数据湖中的现有对象。
  2. 配置数据湖 S3 存储桶,以便新对象默认使用客户管理的 KMS 密钥加密。

建议

有用的链接

以下几个链接可以帮助您应对挑战:

解答:

线索 1:使用 S3 批量操作修复未加密的对象

对于此挑战,您需要使用 S3 批量操作来加密不合规的对象。使用 FixEncryptionRole、KMS 密钥和 S3 中提供的清单文件来创建批量操作作业。有关更多详细信息,请参阅此博客文章:

线索 2:创建 S3 批处理作业

以下是创建 S3 批处理作业的步骤:

  1. 转到 S3 控制台中的“批量操作”选项卡并创建一个作业。
  2. 确保所选区域与存储桶所在的位置相同。(您可以通过单击 S3 中的存储桶并查看屏幕右侧来确认这一点)。
  3. 清单文件为 CSV 格式,位于encrypt-data-lake-{accountid} 存储桶的报告文件夹中。
  4. 这是一个复制操作。选择encrypt-data-lake-{accountid}/data 作为目标。无需向目标添加前缀,因为我们想要覆盖每个对象的清单文件中的路径。确认对象将被覆盖。
  5. 仍然在操作步骤中,在服务器端加密部分中选择指定加密密钥,然后选择覆盖目标存储桶设置进行默认加密,然后选择AWS Key Management Service 密钥(SSE-KMS),然后选择从您的 AWS KMS 密钥中选择,然后从下拉菜单中选择与输出属性部分中的****KMSKeyId匹配的 KMS 密钥 ID 。其余选项保留为默认设置。
  6. 如果需要,将完成报告发送到报告文件夹进行调试。添加FixEncryptionRole作为 IAM 角色。
  7. 确认输入并创建作业。
  8. 准备好后,选择它并单击运行作业。这将带您到另一个页面,向下滚动并单击运行作业。它应该运行得非常快。

线索3:防止未加密的对象

我们要做的最后一件事是强制加密我们的 S3 存储桶。这是为了确保任何未加密的对象都无法上传。

  1. 单击encrypt-data-lake-{accountid} S3 Bucket 并转到属性选项卡
  2. 单击默认加密部分中的编辑,然后选择****AWS 密钥管理服务密钥 (SSE-KMS),然后选择从您的 AWS KMS 密钥中选择,然后从下拉菜单中选择与输出属性部分中的****KMSKeyId匹配的 KMS 密钥 ID 。
  3. 单击**“保存更改”**。

完成此操作后,我们可以确保上传到 S3 存储桶的对象是合规的。

image-20241104095514208