如何使用 AWS KMS 加密 Amazon S3 桶中的特定文件夹?

1 分钟阅读
0

我想使用 AWS Key Management Service (AWS KMS)密钥加密 Amazon Simple Storage Service (Amazon S3)桶中的特定文件夹。

解决方法

使用 Amazon S3 控制台

  1. 打开 Amazon S3 控制台
  2. 导航到要加密的文件夹。
    **警告:**如果您的文件夹包含大量对象,则可能会遇到限制错误。为避免出现限制错误,请提高您对 Amazon S3 桶的 Amazon S3 请求限制。有关限制错误的更多疑难解答提示,请参阅为什么我在向 AWS KMS 发出请求时收到 ThrottlingExceptions 错误?
  3. 选择文件夹,然后选择操作
  4. 选择编辑服务器端加密
  5. 启用服务器端加密,请选择启用
  6. 对于您的 AWS Key Management Service(SSE-KMS),请选择加密密钥类型
  7. 选择要用于文件夹加密的 AWS KMS 密钥。
    **注意:**名为 aws/s3 的密钥是 AWS KMS 管理的默认密钥。您可以使用默认密钥或自定义密钥加密文件夹。
  8. 选择保存更改

使用 AWS CLI

您无法通过 AWS 命令行界面(AWS CLI)命令更改现有文件夹的加密。而是在开启 AWS KMS 加密的情况下,运行命令将文件夹覆盖自身。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

要使用默认 AWS KMS 密钥(aws/s3)加密文件,请运行以下命令:

aws s3 cp s3://awsexamplebucket/abc s3://awsexamplebucket/abc --recursive --sse aws:kms

此命令语法使用 AWS KMS 加密将文件夹复制到原处。

要使用自定义 AWS KMS 密钥加密文件,请运行以下命令:

aws s3 cp s3://awsexamplebucket/abc s3://awsexamplebucket/abc --recursive --sse aws:kms --sse-kms-key-id a1b2c3d4-e5f6-7890-g1h2-123456789abc

**注意:**将 --sse-kms-key-id 替换为你自己的密钥 ID。

要求将来的上传使用 AWS KMS 加密对象

更改加密设置后,只会加密文件夹中已有的对象。更改后,您可以上传对象,无需加密。要要求将来的上传使用 AWS KMS 加密对象,请使用如下示例所示的桶策略

{
  "Version": "2012-10-17",
  "Id": "PutObjPolicy",
  "Statement": [
    {
      "Sid": "DenyIncorrectEncryptionHeader",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/awsexamplefolder/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "aws:kms"
        }
      }
    },
    {
      "Sid": "DenyUnEncryptedObjectUploads",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/awsexamplefolder/*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption": true
        }
      }
    }
  ]
}

除非请求包含使用 AWS KMS 进行服务器端加密,否则此桶策略拒绝访问 docexamplebucket/docexamplefolder/* 上的 s3:PutObject

相关信息

指定具有 AWS KMS 密钥的服务器端加密(SSE-KMS)

AWS 官方
AWS 官方已更新 8 个月前