AWS SAM如何为新建S3桶配置已有KMS密钥并开启Bucket Key
解答
完全支持,SAM是CloudFormation的扩展框架,兼容所有CloudFormation原生资源的配置规则,你需要的KMS加密和Bucket Key开启配置可以直接在AWS::S3::Bucket资源的Properties字段中添加即可,和你用boto调用的参数逻辑完全对应。
完整的模板配置示例如下:
Resources: my-great-new-bucket: Type: AWS::S3::Bucket Properties: # 可在此处添加桶的其他配置,比如自定义桶名、访问策略关联等 BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: aws:kms # 替换为你已有的KMS密钥的ARN,也可填写密钥别名,更推荐用ARN避免歧义 KMSMasterKeyID: "arn:aws:kms:区域:账号ID:key/密钥ID" BucketKeyEnabled: true
部署前需要注意以下事项:
- 执行SAM部署的IAM身份需要对目标KMS密钥拥有
kms:CreateGrant、kms:DescribeKey权限,否则会出现加密配置创建失败的报错 - 如果后续有其他AWS服务需要访问该加密桶,对应服务的执行角色也需要配置该KMS密钥的相关操作权限(比如
kms:GenerateDataKey、kms:Decrypt)
内容的提问来源于stack exchange,提问作者and0r
相关产品推荐
相关产品推荐

