AWSTemplateFormatVersion: "2010-09-09" Description: "S3 Bucket" Parameters: S3BucketName: Type: String Resources: ################################################################################################ # S3 Bucket ################################################################################################ S3Bucket: DeletionPolicy: Delete UpdateReplacePolicy: Delete Type: AWS::S3::Bucket Properties: BucketName: !Sub ${AWS::AccountId}-${S3BucketName} AccessControl: Private BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: AES256 PublicAccessBlockConfiguration: BlockPublicAcls: true BlockPublicPolicy: true IgnorePublicAcls: true RestrictPublicBuckets: true ################################################################################################ # S3 Bucket Policy ################################################################################################ S3BucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref S3Bucket PolicyDocument: Statement: - Action: - s3:* Effect: Allow Resource: - !Sub arn:aws:s3:::${S3Bucket} - !Sub arn:aws:s3:::${S3Bucket}/* Principal: AWS: - !Sub arn:aws:iam::${AWS::AccountId}:root ################################################################################################ # Outputs ################################################################################################ Outputs: ArtifactsBucketName: Description: 'The S3 Bucket Name' Value: !Ref S3Bucket Export: Name: S3BucketName