This is the new AWS CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the AWS CloudFormation User Guide.
AWS::S3::Bucket WebsiteConfiguration
Specifies website configuration parameters for an Amazon S3 bucket.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "ErrorDocument" :String, "IndexDocument" :String, "RedirectAllRequestsTo" :RedirectAllRequestsTo, "RoutingRules" :[ RoutingRule, ... ]}
YAML
ErrorDocument:StringIndexDocument:StringRedirectAllRequestsTo:RedirectAllRequestsToRoutingRules:- RoutingRule
Properties
- ErrorDocument
- 
                    The name of the error document for the website. Required: No Type: String Update requires: No interruption 
- IndexDocument
- 
                    The name of the index document for the website. Required: No Type: String Update requires: No interruption 
- RedirectAllRequestsTo
- 
                    The redirect behavior for every request to this bucket's website endpoint. ImportantIf you specify this property, you can't specify any other property. Required: No Type: RedirectAllRequestsTo Update requires: No interruption 
- RoutingRules
- 
                    Rules that define when a redirect is applied and the redirect behavior. Required: No Type: Array of RoutingRule Update requires: No interruption 
Examples
Configure a static website with a routing rule
In this example, AWS::S3::Bucket's Fn::GetAtt values are used to provide
          outputs. If an HTTP 404 error occurs, the routing rule redirects requests to an EC2
          instance and inserts the object key prefix report-404/ in the redirect. For
          example, if you request a page called out1/ExamplePage.html and it results in an
          HTTP 404 error, the request is routed to a page called
            report-404/ExamplePage.html on the specified instance. For all other HTTP
          error codes, error.html is returned. 
This example also specifies a metrics configuration called EntireBucket
          that enables CloudWatch request metrics at the bucket level.
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