AWS CloudFormation
사용 설명서 (API 버전 2010-05-15)

AWS::S3::Bucket

AWS::S3::Bucket 리소스는 AWS CloudFormation 스택을 생성한 동일한 AWS 리전에서 Amazon S3 버킷을 생성합니다.

스택을 삭제할 때 AWS CloudFormation에서 버킷을 처리하는 방법을 제어하려면 버킷에 대한 삭제 정책을 설정할 수 있습니다. 버킷을 보관하거나 삭제하도록 선택할 수 있습니다. 자세한 내용은 DeletionPolicy 속성을 참조하십시오.

중요

빈 버킷만 삭제할 수 있습니다. 버킷에 콘텐츠가 있는 경우 삭제가 실패합니다.

구문

AWS CloudFormation 템플릿에서 이 개체를 선언하려면 다음 구문을 사용합니다.

Properties

AccelerateConfiguration

Amazon S3 버킷의 전송 가속 상태를 구성합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서Amazon S3 Transfer Acceleration을 참조하십시오.

Required: 아니요

Type: AccelerateConfiguration

Update requires: No interruption

AccessControl

버킷에 미리 정의된 권한을 부여하는 미리 준비된 ACL(액세스 제어 목록)입니다. 미리 제공된 ACL에 대한 자세한 내용은 Amazon Simple Storage Service 개발자 안내서미리 제공된 ACL을 참조하십시오.

Required: 아니요

Type: 문자열

Update requires: No interruption

AnalyticsConfigurations

Amazon S3 버킷의 분석 필터에 대한 구성 및 분석을 지정합니다.

자세한 내용은 Amazon Simple Storage Service API 참조GET Bucket 분석을 참조하십시오.

Required: 아니요

Type: AnalyticsConfiguration 목록

Update requires: No interruption

BucketEncryption

속성은 Amazon S3 관리형 키 SSE-S3 또는 AWS KMS 관리형 키(SSE-KMS) 버킷에서 서버 측 암호화를 사용하여 버킷에 대한 기본 암호화를 지정합니다. Amazon S3 기본 암호화 기능에 대한 자세한 내용은 Amazon Simple Storage Service 개발자 안내서S3 버킷에 대한 Amazon S3 기본 암호화를 참조하십시오.

Required: 아니요

Type: BucketEncryption

Update requires: No interruption

BucketName

버킷의 이름입니다. 이름을 지정하지 않으면 AWS CloudFormation이 고유한 ID를 생성하고 버킷 이름에 해당 ID를 사용합니다. 자세한 내용은 이름 유형을 참조하십시오. 버킷 이름에는 소문자, 숫자, 마침표(.), 대시(-)만 포함되어야 합니다.

중요

이름을 지정하는 경우, 이 리소스를 대체해야 하는 업데이트는 수행할 수 없습니다. 그러나 거의 또는 전혀 중단하지 않아도 되는 업데이트는 가능합니다. 리소스를 교체해야 하는 경우, 새 이름을 지정합니다.

Required: 아니요

Type: 문자열

Update requires: Replacement

CorsConfiguration

Amazon S3 버킷의 객체에 대한 cross-origin 액세스 구성을 설명합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서Cross-Origin 리소스 공유 활성화를 참조하십시오.

Required: 아니요

Type: CorsConfiguration

Update requires: No interruption

InventoryConfigurations

Amazon S3 버킷의 인벤토리 구성을 지정합니다. 자세한 내용은 Amazon Simple Storage Service API 참조GET Bucket 인벤토리를 참조하십시오.

Required: 아니요

Type: InventoryConfiguration 목록

Update requires: No interruption

LifecycleConfiguration

Amazon S3 버킷의 객체에 대한 수명 주기 구성을 지정합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서객체 수명 주기 관리를 참조하십시오.

Required: 아니요

Type: LifecycleConfiguration

Update requires: No interruption

LoggingConfiguration

로그를 저장할 위치를 정의하는 설정입니다.

Required: 아니요

Type: LoggingConfiguration

Update requires: No interruption

MetricsConfigurations

Amazon S3 버킷의 CloudWatch 요청 측정치(측정치 구성 ID로 지정)에 대한 측정치 구성을 지정합니다. 기존 측정치 구성을 업데이트하는 경우 기존 측정치 구성이 완전히 대체됩니다. 유지할 요소를 포함하지 않으면 해당 요소가 지워집니다. 자세한 내용은 Amazon Simple Storage Service API 참조PUT Bucket 지표를 참조하십시오.

Required: 아니요

Type: MetricsConfiguration 목록

Update requires: No interruption

NotificationConfiguration

Amazon S3에서 버킷 알림을 처리하는 방법을 정의하는 구성입니다.

Required: 아니요

Type: NotificationConfiguration

Update requires: No interruption

ObjectLockConfiguration

지정된 버킷에 객체 잠금 구성을 배치합니다. 객체 잠금 구성에 지정된 규칙은 기본적으로 지정된 버킷에 배치된 모든 새 객체에 적용됩니다.

Required: 아니요

Type: ObjectLockConfiguration

Update requires: No interruption

ObjectLockEnabled

이 버킷에 객체 잠금 구성이 활성화되어 있는지 여부를 지정합니다.

Required: 아니요

Type: 부울

허용된 값: Enabled

Update requires: Replacement

PublicAccessBlockConfiguration

Amazon S3에서 퍼블릭 액세스를 처리하는 방법을 정의하는 구성입니다.

Required: 아니요

Type: PublicAccessBlockConfiguration

Update requires: No interruption

ReplicationConfiguration

S3 버킷에서 객체 복제를 위한 구성입니다. 복제를 활성화하려면 VersioningConfiguration 속성을 사용하여 버전 관리도 활성화해야 합니다.

Amazon S3에서는 하나의 대상 버킷에만 복제된 객체를 저장할 수 있습니다. 대상 버킷은 이미 존재하고 원본 버킷과 다른 AWS 리전에 위치해야 합니다.

Required: 아니요

Type: ReplicationConfiguration

Update requires: No interruption

Tags

이 S3 버킷의 자의적인 태그 세트(키-값 페어)입니다.

중요

태그 수를 7개로 제한하는 것이 좋습니다. 7개를 초과하는 태그를 적용하면 AWS CLI와 AWS CloudFormation 콘솔 및 API 작업에서 버킷에 대한 태그를 나열하지 않습니다.

Required: 아니요

Type: Tag 목록

Update requires: No interruption

VersioningConfiguration

이 버킷의 모든 객체에 대해 여러 버전을 활성화합니다. 객체를 실수로 삭제하거나 덮어쓰지 않도록 보호하거나 이전 버전을 검색할 수 있도록 객체를 보관하기 위해 버전 관리를 활성화할 수 있습니다.

Required: 아니요

Type: VersioningConfiguration

Update requires: No interruption

WebsiteConfiguration

버킷을 정적 웹 사이트로 구성하는 데 사용되는 정보입니다. 자세한 내용은 Amazon S3에서 웹 사이트 호스팅을 참조하십시오.

Required: 아니요

Type: WebsiteConfiguration

Update requires: No interruption

반환 값

Ref

이 리소스의 논리적 ID를 내장 Ref 함수에 전달하면 Ref가 반환됩니다. - 리소스 이름.

예: mystack-mybucket-kdwwxmddtr2g

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 내장 함수는 이 유형의 지정된 속성에 대한 값을 반환합니다. 다음은 사용 가능한 속성과 반환되는 샘플 값입니다.

Fn::GetAtt 내장 함수를 사용하는 방법에 대한 자세한 내용은 Fn::GetAtt를 참조하십시오.

Arn

지정된 버킷의 Amazon 리소스 이름(ARN)을 반환합니다.

예: arn:aws:s3:::mybucket

DomainName

지정된 버킷의 IPv4 DNS 이름을 반환합니다.

예: mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com

DualStackDomainName

지정된 버킷의 IPv6 DNS 이름을 반환합니다.

예: mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com

듀얼 스택 엔드포인트에 대한 자세한 내용은 Amazon S3 듀얼 스택 엔드포인트 사용을 참조하십시오.

RegionalDomainName

지정된 버킷의 리전별 도메인 이름을 반환합니다.

예: mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com

WebsiteURL

지정된 버킷에 대한 Amazon S3 웹 사이트 엔드포인트를 반환합니다.

예(IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/

예(IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/

예제

S3 버킷에 복제 구성 IAM 역할 연결

다음 예에서는 AWS Identity and Access Management(IAM) 역할을 사용하여 S3 버킷을 생성하고 복제 버킷에 대한 쓰기 권한을 부여합니다. 순환 종속성을 방지하기 위해 역할 정책이 별도의 리소스로 선언되고, 이 버킷은 WorkItemBucketBackupRole 역할에 종속됩니다. 정책이 역할에 포함되어 있는 경우 역할도 버킷에 종속됩니다.

JSON

"RecordServiceS3Bucket": { "Type": "AWS::S3::Bucket", "DeletionPolicy": "Retain", "Properties": { "ReplicationConfiguration": { "Role": { "Fn::GetAtt": [ "WorkItemBucketBackupRole", "Arn" ] }, "Rules": [{ "Destination": { "Bucket": { "Fn::Join": [ "", [ "arn:aws:s3:::", { "Fn::Join": [ "-", [ { "Ref": "AWS::Region" }, { "Ref": "AWS::StackName" }, "replicationbucket" ]] } ]] }, "StorageClass": "STANDARD" }, "Id": "Backup", "Prefix": "", "Status": "Enabled" }] }, "VersioningConfiguration": { "Status": "Enabled" } } }, "WorkItemBucketBackupRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [{ "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "s3.amazonaws.com" ] } }] } } }, "BucketBackupPolicy": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyDocument": { "Statement": [{ "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Effect": "Allow", "Resource": [{ "Fn::Join": [ "", [ "arn:aws:s3:::", { "Ref": "RecordServiceS3Bucket" } ] ] }] },{ "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl" ], "Effect": "Allow", "Resource": [{ "Fn::Join": [ "", [ "arn:aws:s3:::", { "Ref": "RecordServiceS3Bucket" }, "/*" ] ] }] }, { "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Effect": "Allow", "Resource": [{ "Fn::Join": [ "", [ "arn:aws:s3:::", { "Fn::Join": [ "-", [ { "Ref": "AWS::Region" }, { "Ref": "AWS::StackName" }, "replicationbucket" ]] }, "/*" ]] }] }] }, "PolicyName": "BucketBackupPolicy", "Roles": [{ "Ref": "WorkItemBucketBackupRole" }] } }

YAML

RecordServiceS3Bucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: ReplicationConfiguration: Role: !GetAtt [WorkItemBucketBackupRole, Arn] Rules: - Destination: Bucket: !Join ['', ['arn:aws:s3:::', !Join ['-', [!Ref 'AWS::Region', !Ref 'AWS::StackName', replicationbucket]]]] StorageClass: STANDARD Id: Backup Prefix: '' Status: Enabled VersioningConfiguration: Status: Enabled WorkItemBucketBackupRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: ['sts:AssumeRole'] Effect: Allow Principal: Service: [s3.amazonaws.com] BucketBackupPolicy: Type: AWS::IAM::Policy Properties: PolicyDocument: Statement: - Action: ['s3:GetReplicationConfiguration', 's3:ListBucket'] Effect: Allow Resource: - !Join ['', ['arn:aws:s3:::', !Ref 'RecordServiceS3Bucket']] - Action: ['s3:GetObjectVersion', 's3:GetObjectVersionAcl'] Effect: Allow Resource: - !Join ['', ['arn:aws:s3:::', !Ref 'RecordServiceS3Bucket', /*]] - Action: ['s3:ReplicateObject', 's3:ReplicateDelete'] Effect: Allow Resource: - !Join ['', ['arn:aws:s3:::', !Join ['-', [!Ref 'AWS::Region', !Ref 'AWS::StackName', replicationbucket]], /*]] PolicyName: BucketBackupPolicy Roles: [!Ref 'WorkItemBucketBackupRole']

라우팅 규칙을 사용하여 정적 웹 사이트 구성

이 예에서 AWS::S3::Bucket's Fn::GetAtt 값은 출력을 제공하는 데 사용됩니다. HTTP 404 오류가 발생할 경우 라우팅 규칙은 요청을 EC2 인스턴스로 리디렉션하고 객체 키 구문 report-404/를 리디렉션에 삽입합니다. 예를 들어, ExamplePage.html 페이지를 요청할 때 HTTP 404 오류가 반환되는 경우 해당 요청은 지정된 인스턴스의 report-404/ExamplePage.html 페이지로 라우팅됩니다. 나머지 모든 HTTP 오류 코드의 경우 error.html이 반환됩니다.

이 예제에서는 또한 버킷 수준에서 CloudWatch 요청 지표를 활성화하는 EntireBucket 지표 구성을 지정합니다.

JSON

"Resources" : { "S3Bucket" : { "Type" : "AWS::S3::Bucket", "Properties" : { "AccessControl" : "PublicRead", "BucketName" : "public-bucket", "MetricsConfigurations": [ { "Id": "EntireBucket" } ], "WebsiteConfiguration" : { "IndexDocument" : "index.html", "ErrorDocument" : "error.html", "RoutingRules": [ { "RoutingRuleCondition": { "HttpErrorCodeReturnedEquals": "404", "KeyPrefixEquals": "out1/" }, "RedirectRule": { "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com", "ReplaceKeyPrefixWith": "report-404/" } } ] } }, "DeletionPolicy" : "Retain" } }, "Outputs" : { "WebsiteURL" : { "Value" : { "Fn::GetAtt" : [ "S3Bucket", "WebsiteURL" ] }, "Description" : "URL for website hosted on S3" }, "S3BucketSecureURL" : { "Value" : { "Fn::Join" : [ "", [ "https://", { "Fn::GetAtt" : [ "S3Bucket", "DomainName" ] } ] ] }, "Description" : "Name of S3 bucket to hold website content" } }

YAML

Resources: S3Bucket: Type: AWS::S3::Bucket Properties: AccessControl: PublicRead BucketName: public-bucket MetricsConfigurations: - Id: EntireBucket WebsiteConfiguration: IndexDocument: index.html ErrorDocument: error.html RoutingRules: - RoutingRuleCondition: HttpErrorCodeReturnedEquals: '404' KeyPrefixEquals: out1/ RedirectRule: HostName: ec2-11-22-333-44.compute-1.amazonaws.com ReplaceKeyPrefixWith: report-404/ DeletionPolicy: Retain Outputs: WebsiteURL: Value: !GetAtt [S3Bucket, WebsiteURL] Description: URL for website hosted on S3 S3BucketSecureURL: Value: !Join ['', ['https://', !GetAtt [S3Bucket, DomainName]]] Description: Name of S3 bucket to hold website content

Cross-Origin 리소스 공유 활성화

다음 예제 템플릿에서는 두 cross-origin 리소스 공유 규칙을 포함하는 S3 버킷을 보여줍니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicReadWrite", "CorsConfiguration": { "CorsRules": [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposedHeaders": [ "Date" ], "Id": "myCORSRuleId1", "MaxAge": "3600" }, { "AllowedHeaders": [ "x-amz-*" ], "AllowedMethods": [ "DELETE" ], "AllowedOrigins": [ "http://www.example1.com", "http://www.example2.com" ], "ExposedHeaders": [ "Connection", "Server", "Date" ], "Id": "myCORSRuleId2", "MaxAge": "1800" } ] } } } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of the sample Amazon S3 bucket with CORS enabled." } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: S3Bucket: Type: AWS::S3::Bucket Properties: AccessControl: PublicReadWrite CorsConfiguration: CorsRules: - AllowedHeaders: ['*'] AllowedMethods: [GET] AllowedOrigins: ['*'] ExposedHeaders: [Date] Id: myCORSRuleId1 MaxAge: '3600' - AllowedHeaders: [x-amz-*] AllowedMethods: [DELETE] AllowedOrigins: ['http://www.example1.com', 'http://www.example2.com'] ExposedHeaders: [Connection, Server, Date] Id: myCORSRuleId2 MaxAge: '1800' Outputs: BucketName: Value: !Ref 'S3Bucket' Description: Name of the sample Amazon S3 bucket with CORS enabled.

Amazon S3 객체에 대한 수명 주기 관리

다음 예제 템플릿에서는 수명 주기 구성 규칙을 포함하는 S3 버킷을 보여줍니다. 이 규칙은 glacier 키 접두사를 포함하는 모든 객체에 적용됩니다. 객체는 1일 후에 Glacier로 이전되고 1년 후에 삭제됩니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicReadWrite", "LifecycleConfiguration": { "Rules": [ { "Id": "GlacierRule", "Prefix": "glacier", "Status": "Enabled", "ExpirationInDays": "365", "Transitions": [ { "TransitionInDays": "1", "StorageClass": "Glacier" } ] } ] } } } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of the sample Amazon S3 bucket with a lifecycle configuration." } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: S3Bucket: Type: AWS::S3::Bucket Properties: AccessControl: PublicReadWrite LifecycleConfiguration: Rules: - Id: GlacierRule Prefix: glacier Status: Enabled ExpirationInDays: '365' Transitions: - TransitionInDays: '1' StorageClass: Glacier Outputs: BucketName: Value: !Ref 'S3Bucket' Description: Name of the sample Amazon S3 bucket with a lifecycle configuration.

특정 S3 버킷에 대한 액세스 요청 기록

다음 예제 템플릿에서는 두 S3 버킷을 생성합니다. LoggingBucket 버킷은 S3Bucket 버킷의 로그를 저장합니다. S3Bucket 버킷에서 로그를 수신하려면 로깅 버킷에 로그 전달 쓰기 권한이 있어야 합니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead", "LoggingConfiguration": { "DestinationBucketName": {"Ref" : "LoggingBucket"}, "LogFilePrefix": "testing-logs" } } }, "LoggingBucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "LogDeliveryWrite" } } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of the sample Amazon S3 bucket with a logging configuration." } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: S3Bucket: Type: AWS::S3::Bucket Properties: AccessControl: PublicRead LoggingConfiguration: DestinationBucketName: !Ref 'LoggingBucket' LogFilePrefix: testing-logs LoggingBucket: Type: AWS::S3::Bucket Properties: AccessControl: LogDeliveryWrite Outputs: BucketName: Value: !Ref 'S3Bucket' Description: Name of the sample Amazon S3 bucket with a logging configuration.

SNS 주제에 대한 S3 버킷 알림 수신

다음 예제 템플릿에서는 Amazon S3에서 객체의 모든 복제본이 손실될 경우 지정된 SNS 주제에 대한 이벤트를 전송하는 알림 구성을 사용하는 S3 버킷을 보여줍니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicReadWrite", "NotificationConfiguration": { "TopicConfigurations": [ { "Topic": "arn:aws:sns:us-east-1:123456789012:TestTopic", "Event": "s3:ReducedRedundancyLostObject" } ] } } } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of the sample Amazon S3 bucket with a notification configuration." } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: S3Bucket: Type: AWS::S3::Bucket Properties: AccessControl: PublicReadWrite NotificationConfiguration: TopicConfigurations: - Topic: arn:aws:sns:us-east-1:123456789012:TestTopic Event: s3:ReducedRedundancyLostObject Outputs: BucketName: Value: !Ref 'S3Bucket' Description: Name of the sample Amazon S3 bucket with a notification configuration.

객체를 복제하여 다른 S3 버킷에 저장

다음 예에는 두 가지 복제 규칙이 포함되어 있습니다. Amazon S3에서는 MyPrefix 또는 MyOtherPrefix 접두사를 포함하는 객체를 복제하여 my-replication-bucket 버킷에 저장합니다. 이 버킷은 S3Bucket 버킷과 다른 AWS 리전에 위치해야 합니다.

JSON

"S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "VersioningConfiguration":{ "Status":"Enabled" }, "ReplicationConfiguration": { "Role": "arn:aws:iam::123456789012:role/replication_role", "Rules": [ { "Id": "MyRule1", "Status": "Enabled", "Prefix": "MyPrefix", "Destination": { "Bucket": "arn:aws:s3:::my-replication-bucket", "StorageClass": "STANDARD" } }, { "Status": "Enabled", "Prefix": "MyOtherPrefix", "Destination": { "Bucket": "arn:aws:s3:::my-replication-bucket" } } ] } } }

YAML

S3Bucket: Type: AWS::S3::Bucket Properties: VersioningConfiguration: Status: Enabled ReplicationConfiguration: Role: arn:aws:iam::123456789012:role/replication_role Rules: - Id: MyRule1 Status: Enabled Prefix: MyPrefix Destination: Bucket: arn:aws:s3:::my-replication-bucket StorageClass: STANDARD - Status: Enabled Prefix: MyOtherPrefix Destination: Bucket: arn:aws:s3:::my-replication-bucket

Amazon S3 버킷에 대한 분석 및 인벤토리 구성 지정

다음 예제는 결과의 형식 및 결과를 게시할 버킷을 포함하여 S3 버킷에 대해 생성되는 분석 및 인벤토리 결과를 지정합니다. 인벤토리 목록은 매주 생성될 수 있으며 각 객체의 현재 버전만 포함됩니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "S3 Bucket with Inventory and Analytics Configurations", "Resources": { "Helper": { "Type": "AWS::S3::Bucket" }, "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AnalyticsConfigurations": [ { "Id": "AnalyticsConfigurationId", "StorageClassAnalysis": { "DataExport": { "Destination": { "BucketArn": { "Fn::GetAtt": [ "Helper", "Arn" ] }, "Format": "CSV", "Prefix": "AnalyticsDestinationPrefix" }, "OutputSchemaVersion": "V_1" } }, "Prefix": "AnalyticsConfigurationPrefix", "TagFilters": [ { "Key": "AnalyticsTagKey", "Value": "AnalyticsTagValue" } ] } ], "InventoryConfigurations": [ { "Id": "InventoryConfigurationId", "Destination": { "BucketArn": { "Fn::GetAtt": [ "Helper", "Arn" ] }, "Format": "CSV", "Prefix": "InventoryDestinationPrefix" }, "Enabled": "true", "IncludedObjectVersions": "Current", "Prefix": "InventoryConfigurationPrefix", "ScheduleFrequency": "Weekly" } ] } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: S3 Bucket with Inventory and Analytics Configurations Resources: Helper: Type: AWS::S3::Bucket S3Bucket: Type: AWS::S3::Bucket Properties: AnalyticsConfigurations: - Id: AnalyticsConfigurationId StorageClassAnalysis: DataExport: Destination: BucketArn: !GetAtt - Helper - Arn Format: CSV Prefix: AnalyticsDestinationPrefix OutputSchemaVersion: V_1 Prefix: AnalyticsConfigurationPrefix TagFilters: - Key: AnalyticsTagKey Value: AnalyticsTagValue InventoryConfigurations: - Id: InventoryConfigurationId Destination: BucketArn: !GetAtt - Helper - Arn Format: CSV Prefix: InventoryDestinationPrefix Enabled: 'true' IncludedObjectVersions: Current Prefix: InventoryConfigurationPrefix ScheduleFrequency: Weekly

기본 암호화가 활성화된 버킷 생성

다음 예제에서는 서버 측 버킷 암호화가 구성된 버킷을 생성합니다. 이 예제에서는 S3 관리형 키를 사용합니다. Amazon S3 Bucket ServerSideEncryptionByDefault 속성을 수정하여 KMS 관리형 키를 대신 사용할 수 있습니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "S3 bucket with default encryption", "Resources": { "EncryptedS3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "BucketName": { "Fn::Sub": "encryptedbucket-${AWS::Region}-${AWS::AccountId}" }, "BucketEncryption": { "ServerSideEncryptionConfiguration": [{ "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } }] } }, "DeletionPolicy": "Delete" } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: S3 bucket with default encryption Resources: EncryptedS3Bucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub 'encryptedbucket-${AWS::Region}-${AWS::AccountId}' BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: AES256 DeletionPolicy: Delete

참고 항목