无法通过 CDK 创建带有 KMS_MANAGED 密钥和 bucketKeyEnabled 的 S3 存储桶

问题描述

我有一个采用这种配置的 S3 存储桶:

S3 Bucket default encryption settings

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

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

但我收到此错误:

错误:指定了bucketKeyEnabled,因此'encryption'必须设置为KMS(值:MANAGED)

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

解决方法

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,});

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...