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 CorsRule
Specifies a cross-origin access rule for an Amazon S3 bucket.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "AllowedHeaders" :[ String, ... ], "AllowedMethods" :[ String, ... ], "AllowedOrigins" :[ String, ... ], "ExposedHeaders" :[ String, ... ], "Id" :String, "MaxAge" :Integer}
YAML
AllowedHeaders:- StringAllowedMethods:- StringAllowedOrigins:- StringExposedHeaders:- StringId:StringMaxAge:Integer
Properties
- AllowedHeaders
- 
                    Headers that are specified in the Access-Control-Request-Headersheader. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.Required: No Type: Array of String Update requires: No interruption 
- AllowedMethods
- 
                    An HTTP method that you allow the origin to run. Allowed values: GET|PUT|HEAD|POST|DELETERequired: Yes Type: Array of String Allowed values: GET | PUT | HEAD | POST | DELETEUpdate requires: No interruption 
- AllowedOrigins
- 
                    One or more origins you want customers to be able to access the bucket from. Required: Yes Type: Array of String Update requires: No interruption 
- ExposedHeaders
- 
                    
                    One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequestobject).Required: No Type: Array of String Update requires: No interruption 
- Id
- 
                    A unique identifier for this rule. The value must be no more than 255 characters. Required: No Type: String Maximum: 255Update requires: No interruption 
- MaxAge
- 
                    The time in seconds that your browser is to cache the preflight response for the specified resource. Required: No Type: Integer Minimum: 0Update requires: No interruption 
Examples
Enable cross-origin resource sharing
The following example template shows a public S3 bucket with two cross-origin resource sharing rules.
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.