1

我有一个具有此配置的 S3 存储桶:

S3 存储桶默认加密设置

我正在尝试通过 CDK 创建具有相同配置的存储桶:

Bucket.Builder.create(this, "test1")
  .bucketName("com.myorg.test1")
  .encryption(BucketEncryption.KMS_MANAGED)
  .bucketKeyEnabled(true)
  .build()

但我收到了这个错误:

错误:指定了bucketKeyEnabled,因此必须将“加密”设置为KMS(值:MANAGED)

这对我来说似乎是一个错误,但我对 CDK 比较陌生,所以我不确定。我做错了什么,还是这确实是一个错误?

4

1 回答 1

0

bucketKeyEnabled 标志,直接来自文档:

指定 Amazon S3 是否应将 S3 存储桶密钥与使用 KMS (SSE-KMS) 的服务器端加密一起使用

BucketEncryption 有 4 个选项。

NONE - 不加密

MANAGED - 由 AWS 管理的 Kms 密钥

S3MANAGED - 由 S3 管理的密钥

KMS - 由用户管理的密钥,将创建一个新的 KMS 密钥。

对于任何场景,我们都不需要设置 bucketKeyEnabled。在这种情况下,我们只需要 aws/s3 ,所以,

bucketKeyEnabled:不需要设置。(因为这仅适用于 SSE-KMS)

加密:应该设置为 BucketEncryption.S3_MANAGED

例子:

const buck = new s3.Bucket(this, "my-bucket", {
  bucketName: "my-test-bucket-1234",
  encryption: s3.BucketEncryption.KMS_MANAGED,
});

在此处输入图像描述

于 2021-03-06T02:55:36.033 回答