introduction to AWS Key Management Service

  • 任务需求:演示开始使用 AWS KMS 所需的基本步骤:创建密钥、为密钥分配管理和使用权限、加密数据以及监控密钥的访问和使用情况。

目标:

  • 创建加密密钥 使用 AWS CloudTrail 日志记录函数创建 Amazon Simple Storage Service (Amazon S3) 存储桶 使用加密密钥加密存储在 Amazon S3 存储桶中的数据 使用 CloudTrail 监控加密密钥使用情况 管理用户和角色的加密密钥

技术知识先决条件

  • 对访问控制管理有一定的了解。 强烈建议使用 Google Chrome Web 浏览器完成本实验。如果您无法使用 Google Chrome,请在您的计算机上使用可以打开 gzip 压缩文件 (*.gz) 的实用程序。

实验手册

任务 1:创建 KMS 主密钥

  1. 在页面顶部的统一搜索栏中,搜索并选择密钥管理服务.

  2. 在 Key Management Service 页面中,选择创建密钥.

  3. 在 Configure key (配置密钥) 页面上,选择 Symmetric (对称)

  4. 选择next

  5. 在 Add labels (添加标签) 页面上,配置

  • 别名: myFirstKey 描述: KMS Key for S3 data

  1. 选择next

  2. 在 Define key usage permissions (定义密钥使用权限) 页面上,选择您登录 Console 时使用的用户或角色。这与您在上一步中选择的用户相同 Key Users (密钥用户) 是使用密钥加密和解密数据的用户或角色 你也可以输入AWSLabsUser-在搜索字段中查找并选择用户

  3. 选择next

  4. 在 Define key usage permissions (定义密钥使用权限) 页面上,选择您登录 Console 时使用的用户或角色。这与您在上一步中选择的用户相同。

Key Users (密钥用户) 是使用密钥加密和解密数据的用户或角色。

  1. 选择next

  2. 选择完成.

  3. 在 Customer managed keys (客户托管式密钥) 页面中,将列出新密钥 myFirstKey。将 Key ID 值复制到文本编辑器。该值位于 Key ID 列下。

稍后在实验室中,您在查看此 KMS 密钥的活动日志时使用 Key ID 值。

任务 2:配置 CloudTrail 以将日志存储在新的 S3 存储桶中

  1. 在页面顶部的统一搜索栏中,搜索并选择CloudTrail 云服务.

  • 注意:如果出现以下任何消息,您可以放心地忽略它们: 用于创建组织跟踪的选项不适用于此 AWS 账户 AccessDeniedExceptions 您没有执行此操作的权限

  1. 在左侧导航窗格中,选择 Trails (跟踪)

  2. 选择创建跟踪

  3. 在 Choose trail attributes (选择跟踪属性) 页面中,配置:

  • 跟踪名称: myTrail. 跟踪日志存储桶和文件夹: mycloudtrailbucket编号. 将 NUMBER 替换为随机数。 为日志文件 SSE-KMS 加密取消选择 Enabled。

  1. 选择下一个.

  2. 在 Choose log events (选择日志事件) 页面上,配置:

  • 选择 管理事件 选择 Data events(数据事件) 选择 Insights events

  1. 在 Data events (数据事件) 部分中,选择切换到基本事件选择器

  • 然后选择继续.

  1. 在 Insights events (见解事件) 部分中,选择

  • 选择 API 调用速率 选择 API 错误率

  1. 选择下一个

  2. 选择创建跟踪.

任务 3:将图像上传到 S3 存储桶并对其进行加密

  1. 在页面顶部的统一搜索栏中,搜索并选择s3

  2. 选择 mycloudtrailbucket*。

  3. 从 Objects (对象) 选项卡中,选择上传.

  4. 选择添加文件.

  5. 浏览并选择计算机上的图像文件。

  6. 在屏幕底部,展开 Properties (属性)。

  7. 在 Server-side encryption settings (服务器端加密设置) 部分中,选择 Specify an encryption key (指定加密密钥)

  8. 对于 Encryption settings (加密设置),选择 Override bucket settings for default encryption(覆盖默认加密的存储桶设置)

  9. 对于 Encryption type (加密类型),选择 Server-side encryption with AWS Key Management Service keys (SSE-KMS) (使用 AWS Key Management Service 密钥 (SSE-KMS) 进行服务器端加密)。

  10. 对于 AWS KMS key (AWS KMS 密钥),选择 Choose from your AWS KMS keys (从您的 AWS KMS 密钥中选择)。

  11. 从 Available AWS KMS keys (可用 AWS KMS 密钥) 下拉菜单中,选择 myFirstKey

  12. 滚动到屏幕底部,然后选择上传.

  13. 在 Upload: 状态页面中,会显示一条消息,显示图像已成功上传。

  • 选择关闭.

  1. 在 mycloudtrailbucket* 页面中,选择 Objects (对象) 选项卡。

  2. 在列出您上传的图像的行中,将 Last modified 时间戳记录到文本编辑器。稍后在实验中,您将使用 Last modified (上次修改时间) 时间戳查看 CloudTrail 日志。

任务 4:访问加密的映像

  1. 在 Objects (对象) 选项卡中,选择映像名称,然后选择打开. 图像将在新选项卡/窗口中打开。 当您请求解密数据时,Amazon S3 和 AWS KMS 将执行以下操作。

  • Amazon S3 将加密的数据密钥发送到 AWS KMS AWS KMS 使用适当的主密钥解密密钥,并将明文密钥发送回 Amazon S3 Amazon S3 解密密文并尽快从内存中删除纯文本数据密钥

  1. 关闭显示图像的窗口/选项卡。

  2. 选择图像后,选择复制 URL,然后将 URL 粘贴到文本编辑器。 URL 应类似于 https://mycloudtrailbucket10619.s3-us-west-2.amazonaws.com/Eiffel.jpg

  3. 将您复制的 S3 对象 URL 粘贴到新的浏览器/窗口中。

Enter 键。

  1. 页面显示 Access Denied。这是因为,默认情况下不允许公共访问。

  2. 返回 AWS 管理控制台。

  3. 在 mycloudtrailbucket* 页面中,选择 Permissions (权限) 选项卡。

  4. 在 Block public access (bucket settings) (阻止公有访问 (存储桶设置) ) 部分中,选择编辑.

  5. 取消选择 Block all public access(阻止所有公有访问)。

  6. 选择保存更改然后:

  • 进入确认 选择确认.

  1. 滚动到 Object Ownership (对象所有权) 部分,选择编辑.

  2. 选择 ACLs enabled(已启用的 ACL)。

  3. 对于 Enabling ACLs opens off the bucket owner enforced setting for Object Ownership(对象所有权的存储桶拥有者强制执行设置),选择 - I acknowledge that ACLs will be restored(我确认 ACL 将被还原)。

  4. 选择保存更改.

  5. 在 Object (对象) 选项卡中,选择您的图像。

  6. 选择行动

  • 从下拉菜单中,选择 Make public using ACL。

  1. 选择Make pubic

  2. 在 Make public: status 页面中,会显示一条消息,显示访问权限更改成功。

    • 选择关闭

  3. 导航到包含 S3 对象 URL 的浏览器选项卡/窗口。

  4. 刷新选项卡/窗口。

  5. 由于图像已加密,因此您无法使用公共链接查看它。您应该会看到一条消息,指出使用 AWS KMS 托管密钥指定服务器端加密的请求需要 AWS 签名版本 4。

  6. 关闭 S3 Object URL 选项卡/窗口

任务 5:使用 CloudTrail 日志监控 KMS 活动

  1. 在 mycloudtrailbucket* 页面中,选择 Objects (对象) 选项卡

  2. 向下钻取 AWSLogs/ 文件夹,直到找到包含日志文件的文件夹 如果您没有看到任何日志文件,请每隔几秒钟选择一次刷新按钮,直到您看到日志文件。 日志文件具有 .json.gz 扩展名

  3. 您是否看到日志文件的 Last modified 时间戳晚于您下载的图像文件的时间戳?(在前面的步骤中,您将图像上传时间戳复制到文本编辑器,在确定要查看的日志文件时使用该时间戳)。

  • 如果是,请继续执行下一步。 如果没有,请继续每隔几秒钟选择一次刷新按钮,直到有刷新按钮

  1. 选择在您上传的图像的 Last modified (上次修改时间) 之后具有最接近时间的日志文件。

  2. 选择打开.

  3. 如果您看到弹出的安全警告,请确认您要打开该文件。如果没有,请继续执行下一步。

  4. 在日志文件中搜索以下内容

  • 您复制到文本编辑器的加密密钥 ID 您上传的文件的名称。(您应该会在包含加密密钥 ID 的同一日志文件中看到该文件的名称)

任务 6:管理加密密钥

  1. 导航到浏览器选项卡/窗口 S3 服务。

  2. 在页面顶部的统一搜索栏中,搜索并选择密钥管理服务.

  3. 选择 myFirstKey 这将打开一个页面,您可以在其中更改 KMS 设置。其中一个可配置设置是 Add 或 Remove - key administrators 和 key users。

  4. 在 Key users (关键用户) 部分中,选择您登录时使用的用户或角色。

  5. 选择删除

  6. 在 Key users (关键用户) 部分中,选择add然后:

  • 搜索并选择您登录时使用的用户或角色,用户以字符 AWSLabsUser- 开头 选择add 用户使用此密钥的权限将立即恢复