Skip to content
Go back

AWS 实操 - 云安全 (Cloud Security)

| 0 Views Edit page

AWS 云安全相关实际操作。


AWS Key Management Service

一、创建一个客户管理的密钥

  1. 进入 AWS KMS 控制台
  2. 选择客户管理的密钥并点击创建密钥
  3. 填写密钥信息
    1. 选择密钥类型(对称、非对称)
    2. 选择密钥来源(KMS、外部、自定义密钥库)
    3. 填写别名
    4. 填写描述
    5. 设置标签
    6. 配置密钥管理员(选择 IAM 用户或角色)
    7. 定义密钥使用权限

      可以指定其他 AWS 账户使用此密钥。

    8. 审核和编辑密钥策略
    9. 点击完成
  4. 等待密钥创建完成查看详情
  5. 为密钥添加 IAM 用户
  6. 之后这个 IAM 用户就可以使用这个密钥来加密或解密自己的数据

创建客户管理的密钥
等待密钥创建完成查看详情
密钥用户
为密钥添加 IAM 用户


AWS Key Management Service 加密和解密

一、通过 AWS CLI 使用创建的客户管理密钥进行加密和解密

  1. 在 AWS CLI 中登录拥有该密钥的用户:
    aws configure
    登录
  2. 尝试列出所有 KMS 中的所有密钥:
    aws kms list-keys
    由于没有相关 IAM 权限因此失败:
    列出 KMS 密钥失败
  3. 在 IAM 控制台为用户添加 KMS 的列出命令 ListKeys 权限: 赋予 ListKeys 权限
  4. 再次列出密钥:
    aws kms list-keys
    再次列出密钥成功
  5. KMS CLI 命令列表页找到 encryptdecrypt 命令
  6. 加密:
    aws kms encrypt \
      --key-id xxxxxxxxxxxxxxxxxxx \
      --plaintext "Hello World" \
      # 只要加密后的内容,不要 KeyId 和加密方式
      --query CiphertextBlob \
      # 返回结果不被引号包围
      --output text \
      # Base64 解码后输出到 encrypttest文件
      | base64 --decode > encrypttest
    原始的加密返回信息
    • CiphertextBlob:加密后的信息,经过 Base64 编码后的内容
  7. 解密:
    aws kms decrypt \
      # 刚刚生成的 encrypttest 文件,需要加上前缀 fileb://
      --ciphertext-blob fileb://encrypttest
      --query Plaintext \
      --output text \
      | base64 --decode

Edit page