amazon-web-services - AWS SAM : How to create an S3 bucket with an already existing encryption key using SAM

标签 amazon-web-services amazon-s3 aws-cloudformation aws-sam amazon-kms


我是 SAM(和 CloudFormation)的新手,今天我了解到,您可以通过向 SAM yaml 模板添加类似内容来创建一个新存储桶:

Resources:
    my-great-new-bucket:
       Type:AWS::S3::Bucket

SAM 是否提供了一种将现有 KMS 加密 key 添加到新创建的存储桶(并启用存储桶 key )的方法?

使用 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 更改为您的 key 的 key ID 来实现此目的。

Resources:
  EncryptedS3Bucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - BucketKeyEnabled: true
            ServerSideEncryptionByDefault:
              SSEAlgorithm: 'aws:kms'
              KMSMasterKeyID: KMS-KEY-ARN

关于amazon-web-services - AWS SAM : How to create an S3 bucket with an already existing encryption key using SAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69551377/

相关文章:

java - 具有 Java 资源的 AWS Lambda 应用程序

ios - 快速上传到s3存储桶没有结束

javascript - 我可以在 AWS Lambda 上使用 Google Analytics吗?

objective-c - 检索 lastModified 时的日期格式

hadoop - 如何调整从(非EMR)Hive到S3的数据上传?

amazon-web-services - 使用 CloudFormation 有条件地定义 Elastic Beanstalk 环境变量

amazon-web-services - 如何导出 AWS AppSync 解析器?

wordpress - 如何使用 AWS Lightsail 设置电子邮件

node.js - 为 AWS 上的 Skipper 上传创建公共(public) URL

aws-cloudformation - 仅使用托管 cloudformation 策略创建 IAM 角色