AWS::S3::Bucket
AWS::S3::Bucket
リソースは、AWS CloudFormation スタックを作成したときと同じ AWS リージョンに Amazon S3 バケットを作成します。
バケットに対する削除ポリシーを設定して、スタックが削除されるとき AWS CloudFormation がバケットを処理する方法を制御できます。バケットの保持または削除を選択することができます。詳細については、「DeletionPolicy 属性」を参照してください。
空のバケットのみを削除できます。バケットにコンテンツが存在すると削除は失敗します。
構文
AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。
JSON
{ "Type" : "AWS::S3::Bucket", "Properties" : { "AccelerateConfiguration" :
AccelerateConfiguration
, "AccessControl" :String
, "AnalyticsConfigurations" :[ AnalyticsConfiguration, ... ]
, "BucketEncryption" :BucketEncryption
, "BucketName" :String
, "CorsConfiguration" :CorsConfiguration
, "InventoryConfigurations" :[ InventoryConfiguration, ... ]
, "LifecycleConfiguration" :LifecycleConfiguration
, "LoggingConfiguration" :LoggingConfiguration
, "MetricsConfigurations" :[ MetricsConfiguration, ... ]
, "NotificationConfiguration" :NotificationConfiguration
, "ObjectLockConfiguration" :ObjectLockConfiguration
, "ObjectLockEnabled" :Boolean
, "PublicAccessBlockConfiguration" :PublicAccessBlockConfiguration
, "ReplicationConfiguration" :ReplicationConfiguration
, "Tags" :[ Tag, ... ]
, "VersioningConfiguration" :VersioningConfiguration
, "WebsiteConfiguration" :WebsiteConfiguration
} }
YAML
Type: AWS::S3::Bucket Properties: AccelerateConfiguration:
AccelerateConfiguration
AccessControl:String
AnalyticsConfigurations:- AnalyticsConfiguration
BucketEncryption:BucketEncryption
BucketName:String
CorsConfiguration:CorsConfiguration
InventoryConfigurations:- InventoryConfiguration
LifecycleConfiguration:LifecycleConfiguration
LoggingConfiguration:LoggingConfiguration
MetricsConfigurations:- MetricsConfiguration
NotificationConfiguration:NotificationConfiguration
ObjectLockConfiguration:ObjectLockConfiguration
ObjectLockEnabled:Boolean
PublicAccessBlockConfiguration:PublicAccessBlockConfiguration
ReplicationConfiguration:ReplicationConfiguration
Tags:- Tag
VersioningConfiguration:VersioningConfiguration
WebsiteConfiguration:WebsiteConfiguration
プロパティ
AccelerateConfiguration
-
Amazon S3 バケットの Transfer Acceleration 状態を設定します。詳細については、Amazon Simple Storage Service 開発者ガイドの「Amazon S3 Transfer Acceleration」を参照してください。
必須: いいえ
Update requires: No interruption
AccessControl
-
バケットに事前定義されたアクセス許可を付与する、既定アクセスコントロールリスト (ACL)。既定 ACL の詳細については、Amazon Simple Storage Service 開発者ガイドの「既定 ACL」を参照してください。
このプロパティの構文は、「Amazon Simple Storage Service 開発者ガイド」に記載されている情報とは異なることに注意してください。AccessControl プロパティは大文字と小文字が区別され、Private、PublicRead、PublicReadWrite、AuthenticatedRead、LogDeliveryWrite、BucketOwnerRead、BucketOwnerFullControl、AwsExecRead のいずれかの値である必要があります。
必須: いいえ
タイプ: 文字列
Update requires: No interruption
AnalyticsConfigurations
-
Amazon S3 バケットの分析フィルターの構成と分析を指定します。
必須: いいえ
タイプ: AnalyticsConfiguration のリスト
Update requires: No interruption
BucketEncryption
-
Amazon S3 で管理されたキー、または SSE-S3 や AWS KMS で管理されたキー (SSE-KMS) バケットとサーバー側暗号化によりデフォルトの暗号化を指定します。Amazon S3 のデフォルトの暗号化機能の詳細については、Amazon Simple Storage Service 開発者ガイドの「S3 バケットの Amazon S3 デフォルト暗号化」を参照してください。
必須: いいえ
タイプ: BucketEncryption
Update requires: No interruption
BucketName
-
バケットの名前。名前を指定しない場合、AWS CloudFormation は一意の ID を生成し、その ID をバケット名として使用します。詳細については、「Name タイプ」を参照してください。バケット名には、小文字、数字、ピリオド (.)、およびダッシュ (-) 以外は使用できません。
重要 名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える場合は、新しい名前を指定します。
必須: いいえ
タイプ: 文字列
Update requires: Replacement
CorsConfiguration
-
AWS S3 バケットのオブジェクトに対するクロスオリジンアクセスの設定について説明します。詳細については、Amazon Simple Storage Service 開発者ガイドの「Cross-Origin Resource Sharing の有効化」を参照してください。
必須: いいえ
タイプ: CorsConfiguration
Update requires: No interruption
InventoryConfigurations
-
Amazon S3 バケットのインベントリ設定を指定します。詳細については、Amazon Simple Storage Service API リファレンスの「GET バケットインベントリ」を参照してください。
必須: いいえ
タイプ: InventoryConfiguration のリスト
Update requires: No interruption
LifecycleConfiguration
-
Amazon S3 バケットのオブジェクトのライフサイクル設定を指定します。詳細については、Amazon Simple Storage Service 開発者ガイドの「オブジェクトのライフサイクル管理」を参照してください。
必須: いいえ
Update requires: No interruption
LoggingConfiguration
-
ログの保管場所を定義する設定。
必須: いいえ
タイプ: LoggingConfiguration
Update requires: No interruption
MetricsConfigurations
-
Amazon S3 バケットからの CloudWatch リクエストメトリクス (メトリクス設定 ID で指定) のメトリクス設定を指定します。既存のメトリック設定を更新する場合は、既存のメトリクス設定がこの設定に完全に置き換わることに注意してください。保持する必要のある要素を含めなかった場合、それらの要素は消去されます。詳細については、Amazon Simple Storage Service API リファレンスの「PUT バケットのメトリクス」を参照してください。
必須: いいえ
タイプ: MetricsConfiguration のリスト
Update requires: No interruption
NotificationConfiguration
-
Amazon S3 がどのようにバケットの通知を処理するかを定義する設定。
必須: いいえ
タイプ: NotificationConfiguration
Update requires: No interruption
ObjectLockConfiguration
-
指定したバケットのオブジェクトロック設定を配置します。デフォルトでは、オブジェクトロック設定で指定したルールが、指定したバケットに配置されたすべての新しいオブジェクトに適用されます。
注記 DefaultRetention
には、Days または Years のいずれかが必要です。両方を同時に指定することはできません。関連リソース
必須: いいえ
Update requires: No interruption
ObjectLockEnabled
-
このバケットでオブジェクトロック設定を有効にするかどうかを示します。
必須: いいえ
タイプ: ブール値
Update requires: Replacement
PublicAccessBlockConfiguration
-
Amazon S3 がどのようにパブリックアクセスを処理するかを定義する設定。
必須: いいえ
タイプ: PublicAccessBlockConfiguration
Update requires: No interruption
ReplicationConfiguration
-
S3 バケット内のオブジェクトをレプリケーションするための設定。レプリケーションを有効にするには、
VersioningConfiguration
プロパティを使用してバージョニングを有効にする必要もあります。Amazon S3 は、1 つの送信先バケットにのみレプリケーションされたオブジェクトを保存できます。送信先バケットは既に存在している必要があります。
必須: いいえ
Update requires: No interruption
Tags
-
この S3 バケットに対するタグ (キーと値のペア) の任意のセット。
必須: いいえ
タイプ: Tag のリスト
Update requires: No interruption
VersioningConfiguration
-
このバケットのすべてのオブジェクトの複数のバージョンを有効にします。バージョニングを有効にすると、オブジェクトが誤って削除または上書きされるのを防いだり、以前のバージョンを取得できるようオブジェクトをアーカイブしたりできます。
必須: いいえ
Update requires: No interruption
WebsiteConfiguration
-
バケットを静的ウェブサイトとして設定するために使用する情報。詳細については、「Amazon S3 でのウェブサイトのホスティング」を参照してください。
必須: いいえ
タイプ: WebsiteConfiguration
Update requires: No interruption
戻り値
Ref
このリソースの論理 ID を組み込みの Ref
関数に渡すと、Ref
は次を返します: バケット名。
例: DOC-EXAMPLE-BUCKET
For more information about using the Ref
function, see Ref.
Fn::GetAtt
Fn::GetAtt
組み込み関数は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。
Fn::GetAtt
組み込み関数の使用方法の詳細については、「Fn::GetAtt」を参照してください。
Arn
-
指定されたバケットの Amazon リソースネーム (ARN) を返します。
例:
arn:aws:s3:::DOC-EXAMPLE-BUCKET
DomainName
-
指定されたバケットの IPv4 DNS 名を返します。
例:
DOC-EXAMPLE-BUCKET.s3.amazonaws.com
DualStackDomainName
-
指定されたバケットの IPv6 DNS 名を返します。
例:
DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com
デュアルスタックのエンドポイントの詳細については、「Amazon S3 デュアルスタックのエンドポイントを使用する」を参照してください。
RegionalDomainName
-
指定されたバケットのリージョン別ドメイン名を返します。
例:
DOC-EXAMPLE-BUCKET.s3.us-east-2.amazonaws.com
WebsiteURL
-
指定されたバケットの Amazon S3 ウェブサイトエンドポイントを返します。
例 (IPv4):
http://DOC-EXAMPLE-BUCKET.s3-website.us-east-2.amazonaws.com
例 (IPv6):
http://DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com
例
S3 バケットの作成
次の例では、Retain
削除ポリシーを使用して S3 バケットを作成します。
JSON
"Resources" : { "S3Bucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy": "Retain", "Properties" : { "BucketName" : "DOC-EXAMPLE-BUCKET" } } }
YAML
Resources: S3Bucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: DOC-EXAMPLE-BUCKET
S3 バケットでレプリケーション設定 IAM ロールを関連付ける
次の例では、S3 バケットを作成し、AWS Identity and Access Management (IAM) ロールを使用してレプリケーションバケットに書き込む許可を与えます。循環依存を避けるため、ロールのポリシーは別個のリソースとして宣言されています。バケットは
WorkItemBucketBackupRole
ロールによって異なります。ポリシーがロールに含まれる場合、ロールもバケットによって異なります。
JSON
"Resources": { "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
Resources: 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 Resource Sharing の有効化
以下のサンプルテンプレートは、2 つの Cross-Origin Resource Sharing のルールを使用するパブリック S3 バケットを示します。
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead", "CorsConfiguration": { "CorsRules": [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposedHeaders": [ "Date" ], "Id": "myCORSRuleId1", "MaxAge": "3600" }, { "AllowedHeaders": [ "x-amz-*" ], "AllowedMethods": [ "DELETE" ], "AllowedOrigins": [ "http://www.example.com", "http://www.example.net" ], "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: PublicRead CorsConfiguration: CorsRules: - AllowedHeaders: ['*'] AllowedMethods: [GET] AllowedOrigins: ['*'] ExposedHeaders: [Date] Id: myCORSRuleId1 MaxAge: '3600' - AllowedHeaders: [x-amz-*] AllowedMethods: [DELETE] AllowedOrigins: ['http://www.example.com', 'http://www.example.net'] 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": "Private", "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: Private 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 バケットに対するログアクセスリクエスト
以下のサンプルテンプレートは 2 つの S3 バケットを作成します。LoggingBucket
バケットには、S3Bucket
バケットからのログを保存します。S3Bucket
バケットからログを受け取るため、ログ記録バケットはログ配信の書き込み許可が必要です。
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "Private", "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: Private 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 バケット通知の受信
以下のサンプルテンプレートは、S3 がオブジェクトのレプリカをすべて失った場合に、指定した SNS トピックにイベントを送信する通知設定を含む Amazon S3 バケットを示します。
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "Private", "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: Private 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 バケットに保存する
以下の例には、2 つのレプリケーションルールが含まれています。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
デフォルト暗号化が有効になっているバケットの作成
次の例では、サーバー側のバケット暗号化が設定されたバケットを作成します。この例では、KMS マネージド型キーを使用します。代わりに、Amazon S3 Bucket ServerSideEncryptionByDefault プロパティを変更して、S3 マネージド型キーを使用することもできます。
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": "aws:kms", "KMSMasterKeyID": "KMS-KEY-ARN" } }] } }, "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: aws:kms KMSMasterKeyID: KMS-KEY-ARN DeletionPolicy: Delete