AWS SAM:如何使用 SAM 创建具有现有加密密钥的 S3 存储桶
AWS SAM: How to create an S3 bucket with an already existing encryption key using SAM
我是 SAM(和 CloudFormation)的新手,我今天了解到您可以通过向 SAM yaml 模板添加类似这样的内容来创建一个新存储桶:
Resources:
my-great-new-bucket:
Type:AWS::S3::Bucket
SAM 是否提供一种方法来将 已经存在的 KMS 加密密钥添加到新创建的存储桶(并启用存储桶密钥)?
对于 boto,我将执行以下操作来实现此目的:
response = client.put_bucket_encryption(Bucket= bucketName, ServerSideEncryptionConfiguration={
"Rules": [
{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": myKeyArn
},
"BucketKeyEnabled": True
}
]
})
如何将此操作转换为 SAM 模板?
所以S3::Bucket不是SAM资源而是普通的CloudFormation资源。
您可以通过将 KMS-KEY-ARN
更改为您的密钥的密钥 ID 来实现此目的。
Resources:
EncryptedS3Bucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketEncryption:
ServerSideEncryptionConfiguration:
- BucketKeyEnabled: true
ServerSideEncryptionByDefault:
SSEAlgorithm: 'aws:kms'
KMSMasterKeyID: KMS-KEY-ARN
我是 SAM(和 CloudFormation)的新手,我今天了解到您可以通过向 SAM yaml 模板添加类似这样的内容来创建一个新存储桶:
Resources:
my-great-new-bucket:
Type:AWS::S3::Bucket
SAM 是否提供一种方法来将 已经存在的 KMS 加密密钥添加到新创建的存储桶(并启用存储桶密钥)?
对于 boto,我将执行以下操作来实现此目的:
response = client.put_bucket_encryption(Bucket= bucketName, ServerSideEncryptionConfiguration={
"Rules": [
{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": myKeyArn
},
"BucketKeyEnabled": True
}
]
})
如何将此操作转换为 SAM 模板?
所以S3::Bucket不是SAM资源而是普通的CloudFormation资源。
您可以通过将 KMS-KEY-ARN
更改为您的密钥的密钥 ID 来实现此目的。
Resources:
EncryptedS3Bucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketEncryption:
ServerSideEncryptionConfiguration:
- BucketKeyEnabled: true
ServerSideEncryptionByDefault:
SSEAlgorithm: 'aws:kms'
KMSMasterKeyID: KMS-KEY-ARN