web-dev-qa-db-ja.com

クラウド形成テンプレートを使用して、S3バケットにSSE-S3またはSSE-KMS暗号化を設定するにはどうすればよいですか?

CloudFormationテンプレートを使用して、AWSでS3バケットを起動しようとしています。このプロジェクトの要件の1つは、バケットを適切に暗号化することです。 CloudFormationテンプレートを使用して設定する方法を見つけようとしています(SSE-S3、KMS、CFT、S3sについて手に入れることができるすべてのドキュメントを読みました...)。しかし、すべての兆候は、コンソールを介してのみ利用可能であることを示しているようです。

私は明らかな何かを見逃しているだけで、CloudFormation Template(または少なくとも自動化されたもの)を使用してS3バケットのデフォルト暗号化をSSE-S3またはSSE-KMSに設定する方法を誰かが知っているのではないかと心配していますか?

20
Jay Carr

AWSはこの機能を追加しました 2018年1月24日

BucketEncryptionプロパティを使用して、Amazon S3管理キーSSE-S3またはAWS KMS管理キー(SSE-KMS)バケットでサーバー側暗号化を使用するバケットのデフォルト暗号化を指定します。

JSON

{
  "Resources": {
    "MyBucket": {
      "Type" : "AWS::S3::Bucket",
      "Properties" : {
        "BucketEncryption": {
          "ServerSideEncryptionConfiguration": [
            {
              "ServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
              }
            }
          ]
        }
      }
    }
  }
}

YAML

Resources:
  MyBucket:
    Type: "AWS::S3::Bucket"
    Properties: 
      BucketEncryption: 
        ServerSideEncryptionConfiguration: 
        - ServerSideEncryptionByDefault:
            SSEAlgorithm: AES256

https://docs.aws.Amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.htmlhttps://docs.aws.Amazon.com/ AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html

27
kichik

ForceEncryptionオプションも使用できます。

AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon S3 Bucket with 

Resources:
  CodeFlexS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      AccessControl: Private
      BucketName: !Join ["-", ["codeflex-example", Ref: "AWS::Region"]]

  ForceEncryption:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref CodeFlexS3Bucket
      PolicyDocument:
        Version: "2008-10-17"
        Statement:
          - Sid: DenyUnEncryptedObjectUploads
            Effect: Deny
            Principal: "*"
            Action:
              - s3:PutObject
            Resource:
              - !Join ["", ["arn:aws:s3:::", !Ref CodeFlexS3Bucket, "/*"]]
            Condition:
              StringNotEquals:
                "s3:x-amz-server-side-encryption":
                  - "aws:kms"
    DependsOn: CodeFlexS3Bucket

ここから: CloudFormationを介したKMS暗号化を使用したS3バケットの作成

2
Yuri

特定のKMSキーがある場合は、次を使用します

  ConfigBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: "mytestbucketwithkmsencryptionkey"
      AccessControl: PublicRead
      BucketEncryption: 
        ServerSideEncryptionConfiguration: 
        - ServerSideEncryptionByDefault:
            SSEAlgorithm: aws:kms
            KMSMasterKeyID: "YOUR KMS KEY ARN"     
1
Upul Doluweera