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

AWS::S3::Bucket

AWS::S3::Bucket 리소스는 AWS CloudFormation 스택을 생성한 곳과 동일한 AWS 리전에서 Amazon Simple Storage Service(Amazon S3) 버킷을 생성합니다.

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

중요

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

구문

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

JSON

{ "Type" : "AWS::S3::Bucket", "Properties" : { "AccessControl" : String, "AccelerateConfiguration" : AccelerateConfiguration, "AnalyticsConfigurations" : [ AnalyticsConfiguration, ... ], "BucketEncryption" : BucketEncryption, "BucketName" : String, "CorsConfiguration" : CorsConfiguration, "InventoryConfigurations" : [ InventoryConfiguration, ... ], "LifecycleConfiguration" : LifecycleConfiguration, "LoggingConfiguration" : LoggingConfiguration, "MetricsConfigurations" : [ MetricsConfiguration, ... ] "NotificationConfiguration" : NotificationConfiguration, "PublicAccessBlockConfiguration" : PublicAccessBlockConfiguration, "ReplicationConfiguration" : ReplicationConfiguration, "Tags" : [ Resource Tag, ... ], "VersioningConfiguration" : VersioningConfiguration, "WebsiteConfiguration" : WebsiteConfiguration } }

Properties

AccessControl

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

Required: No

Type: String

Valid values: AuthenticatedRead | AwsExecRead | BucketOwnerRead | BucketOwnerFullControl | LogDeliveryWrite | Private | PublicRead | PublicReadWrite

업데이트 필요 조건: 무중단

AccelerateConfiguration

Transfer Acceleration 상태를 위한 구성. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드Amazon S3 Transfer Acceleration을 참조하십시오.

Required: No

유형: AccelerateConfiguration

업데이트 필요 조건: 무중단

AnalyticsConfigurations

Amazon S3 버킷의 분석 필터에 대한 구성 및 분석을 지정합니다. 중복은 허용되지 않습니다.

필수 항목 여부: 아니요

유형: AnalyticsConfiguration의 목록

업데이트 필요 조건: 무중단

BucketEncryption

Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS 관리형 키(SSE-KMS)로 서버 측 암호화를 사용하여 버킷에 대한 기본 암호화를 지정합니다.

Required: No

유형: Amazon S3 버킷 BucketEncryption

업데이트 필요 조건: 무중단

BucketName

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

중요

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

Required: No

Type: String

업데이트 필요 조건: 대체

CorsConfiguration

이 버킷에서 객체의 cross-origin 리소스 공유를 정의하는 규칙입니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드Cross-Origin 리소스 공유 활성화를 참조하십시오.

Required: No

유형: Amazon S3 버킷 CorsConfiguration

업데이트 필요 조건: 무중단

InventoryConfigurations

Amazon S3 버킷에 대한 인벤토리 구성입니다. 중복은 허용되지 않습니다.

필수 항목 여부: 아니요

유형: InventoryConfiguration의 목록

업데이트 필요 조건: 무중단

LifecycleConfiguration

객체의 수명 주기 동안 Amazon S3에서 해당 객체를 관리하는 방법을 정의하는 규칙입니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드에서 객체 수명 주기 관리를 참조하십시오.

Required: No

유형: Amazon S3 버킷 LifecycleConfiguration

업데이트 필요 조건: 무중단

LoggingConfiguration

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

Required: No

유형: Amazon S3 버킷 LoggingConfiguration

업데이트 필요 조건: 무중단

MetricsConfigurations

버킷에서 CloudWatch 요청 지표에 대한 지표 구성을 정의하는 설정입니다. 요청 지표 목록은 Amazon Simple Storage Service 개발자 가이드Amazon S3 CloudWatch 요청 지표를 참조하십시오.

필수 항목 여부: 아니요

유형: MetricsConfiguration의 목록

업데이트 필요 조건: 무중단

중복은 허용되지 않습니다.

NotificationConfiguration

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

Required: No

유형: Amazon S3 버킷 NotificationConfiguration

업데이트 필요 조건: 무중단

PublicAccessBlockConfiguration

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

Required: No

유형: PublicAccessBlockConfiguration

업데이트 필요 조건: 무중단

ReplicationConfiguration

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

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

Required: No

Type: Amazon S3 버킷 ReplicationConfiguration

업데이트 필요 조건: 무중단

Tags

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

중요

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

Required: No

Type: 리소스 태그

업데이트 필요 조건: 무중단

VersioningConfiguration

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

Required: No

Type: Amazon S3 버킷 VersioningConfiguration

업데이트 필요 조건: 무중단

WebsiteConfiguration

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

Required: No

Type: 웹 사이트 구성 유형

업데이트 필요 조건: 무중단

반환 값

Ref

Ref 내장 함수에 이 리소스의 Logical ID를 입력하면 Ref는 해당 리소스 이름을 반환합니다.

예: mystack-mybucket-kdwwxmddtr2g.

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

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/

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

예제

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일 후에 로 이전되고 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

추가 정보