# 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``` 6. 选择```next``` 7. 在 Define key usage permissions (定义密钥使用权限) 页面上,选择您登录 Console 时使用的用户或角色。这与您在上一步中选择的用户相同 Key Users (密钥用户) 是使用密钥加密和解密数据的用户或角色 你也可以输入```AWSLabsUser```-在搜索字段中查找并选择用户 8. 选择next 9. 在 Define key usage permissions (定义密钥使用权限) 页面上,选择您登录 Console 时使用的用户或角色。这与您在上一步中选择的用户相同。 Key Users (密钥用户) 是使用密钥加密和解密数据的用户或角色。 10. 选择```next``` 11. 选择完成. 12. 在 Customer managed keys (客户托管式密钥) 页面中,将列出新密钥 myFirstKey。将 Key ID 值复制到文本编辑器。该值位于 Key ID 列下。 稍后在实验室中,您在查看此 KMS 密钥的活动日志时使用 Key ID 值。 ### 任务 2:配置 CloudTrail 以将日志存储在新的 S3 存储桶中 13. 在页面顶部的统一搜索栏中,搜索并选择CloudTrail 云服务. - 注意:如果出现以下任何消息,您可以放心地忽略它们: 用于创建组织跟踪的选项不适用于此 AWS 账户 AccessDeniedExceptions 您没有执行此操作的权限 14. 在左侧导航窗格中,选择 Trails (跟踪) 15. 选择```创建跟踪``` 16. 在 Choose trail attributes (选择跟踪属性) 页面中,配置: - 跟踪名称: ```myTrail```. 跟踪日志存储桶和文件夹: ```mycloudtrailbucket编号```. 将 NUMBER 替换为随机数。 为日志文件 SSE-KMS 加密取消选择 Enabled。 17. 选择下一个. 18. 在 Choose log events (选择日志事件) 页面上,配置: - 选择 管理事件 选择 Data events(数据事件) 选择 Insights events 19. 在 Data events (数据事件) 部分中,选择切换到基本事件选择器 - 然后选择继续. 20. 在 Insights events (见解事件) 部分中,选择 - 选择 API 调用速率 选择 API 错误率 21. 选择```下一个``` 22. 选择```创建跟踪```. ### 任务 3:将图像上传到 S3 存储桶并对其进行加密 23. 在页面顶部的统一搜索栏中,搜索并选择```s3``` 24. 选择 mycloudtrailbucket*。 25. 从 Objects (对象) 选项卡中,选择```上传```. 26. 选择添加文件. 27. 浏览并选择计算机上的图像文件。 28. 在屏幕底部,展开 Properties (属性)。 29. 在 Server-side encryption settings (服务器端加密设置) 部分中,选择 ```Specify an encryption key (指定加密密钥)```。 30. 对于 Encryption settings (加密设置),选择``` Override bucket settings for default encryption(覆盖默认加密的存储桶设置)```。 31. 对于 Encryption type (加密类型),选择 Server-side encryption with AWS Key Management Service keys ```(SSE-KMS)``` (使用 AWS Key Management Service 密钥 (SSE-KMS) 进行服务器端加密)。 32. 对于 AWS KMS key (AWS KMS 密钥),选择 ```Choose from your AWS KMS keys``` (从您的 AWS KMS 密钥中选择)。 33. 从 Available AWS KMS keys (可用 AWS KMS 密钥) 下拉菜单中,选择 ```myFirstKey```。 34. 滚动到屏幕底部,然后选择```上传```. 35. 在 Upload: 状态页面中,会显示一条消息,显示图像已成功上传。 - 选择```关闭```. 36. 在 mycloudtrailbucket* 页面中,选择 Objects (对象) 选项卡。 37. 在列出您上传的图像的行中,将 Last modified 时间戳记录到文本编辑器。稍后在实验中,您将使用 Last modified (上次修改时间) 时间戳查看 CloudTrail 日志。 ### 任务 4:访问加密的映像 38. 在 Objects (对象) 选项卡中,选择```映像名称```,然后选择```打开```. 图像将在新选项卡/窗口中打开。 当您请求解密数据时,Amazon S3 和 AWS KMS 将执行以下操作。 - Amazon S3 将加密的数据密钥发送到 AWS KMS AWS KMS 使用适当的主密钥解密密钥,并将明文密钥发送回 Amazon S3 Amazon S3 解密密文并尽快从内存中删除纯文本数据密钥 39. 关闭显示图像的窗口/选项卡。 40. 选择图像后,选择复制 URL,然后将 URL 粘贴到文本编辑器。 URL 应类似于 https://mycloudtrailbucket10619.s3-us-west-2.amazonaws.com/Eiffel.jpg 41. 将您复制的 S3 对象 URL 粘贴到新的浏览器/窗口中。 按 ```Enter``` 键。 42. 页面显示 Access Denied。这是因为,默认情况下不允许公共访问。 43. 返回 AWS 管理控制台。 44. 在 mycloudtrailbucket* 页面中,选择 Permissions (权限) 选项卡。 45. 在 Block public access (bucket settings) (阻止公有访问 (存储桶设置) ) 部分中,选择编辑. 46. 取消选择 Block all public access(阻止所有公有访问)。 47. 选择```保存更改```然后: - 进入```确认``` 选择```确认```. 48. 滚动到 Object Ownership (对象所有权) 部分,选择```编辑```. 49. 选择 ACLs enabled(已启用的 ACL)。 50. 对于 Enabling ACLs opens off the bucket owner enforced setting for Object Ownership(对象所有权的存储桶拥有者强制执行设置),选择 - ```I acknowledge that ACLs will be restored```(我确认 ACL 将被还原)。 51. 选择```保存更改```. 52. 在 Object (对象) 选项卡中,选择您的图像。 53. 选择```行动``` - 从下拉菜单中,选择 Make public using ACL。 54. 选择```Make pubic``` 55. 在 Make public: status 页面中,会显示一条消息,显示访问权限更改成功。 - 选择```关闭``` 56. 导航到包含 S3 对象 URL 的浏览器选项卡/窗口。 57. 刷新选项卡/窗口。 58. 由于图像已加密,因此您无法使用公共链接查看它。您应该会看到一条消息,指出使用 AWS KMS 托管密钥指定服务器端加密的请求需要 AWS 签名版本 4。 59. 关闭 S3 Object URL 选项卡/窗口 ### 任务 5:使用 CloudTrail 日志监控 KMS 活动 60. 在 mycloudtrailbucket* 页面中,选择 ```Objects (对象)``` 选项卡 61. 向下钻取 AWSLogs/ 文件夹,直到找到包含日志文件的文件夹 如果您没有看到任何日志文件,请每隔几秒钟选择一次刷新按钮,直到您看到日志文件。 日志文件具有 .json.gz 扩展名 62. 您是否看到日志文件的 Last modified 时间戳晚于您下载的图像文件的时间戳?(在前面的步骤中,您将图像上传时间戳复制到文本编辑器,在确定要查看的日志文件时使用该时间戳)。 - 如果是,请继续执行下一步。 如果没有,请继续每隔几秒钟选择一次刷新按钮,直到有刷新按钮 63. 选择在您上传的图像的 Last modified (上次修改时间) 之后具有最接近时间的日志文件。 64. 选择```打开```. 65. 如果您看到弹出的安全警告,请确认您要打开该文件。如果没有,请继续执行下一步。 66. 在日志文件中搜索以下内容 - 您复制到文本编辑器的加密密钥 ID 您上传的文件的名称。(您应该会在包含加密密钥 ID 的同一日志文件中看到该文件的名称) ### 任务 6:管理加密密钥 67. 导航到浏览器选项卡/窗口 S3 服务。 68. 在页面顶部的统一搜索栏中,搜索并选择```密钥管理服务```. 69. 选择 ```myFirstKey``` 这将打开一个页面,您可以在其中更改 KMS 设置。其中一个可配置设置是 Add 或 Remove - key administrators 和 key users。 70. 在 Key users (关键用户) 部分中,选择您登录时使用的用户或角色。 71. 选择```删除``` 72. 在 Key users (关键用户) 部分中,选择```add```然后: - 搜索并选择您登录时使用的用户或角色,用户以字符 AWSLabsUser- 开头 选择```add``` 用户使用此密钥的权限将立即恢复