S3 Bucket Policy
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AllowPublicRead",
			"Effect": "Allow",
			"Principal": "*",
			"Action": "s3:GetObject",
			"Resource": "arn:aws:s3:::bucketName/*"
		}
	]
}
S3 CORS
[
	{
		"AllowedHeaders": ["*"],
		"AllowedMethods": ["GET", "PUT", "POST", "DELETE"],
		"AllowedOrigins": ["*"],
		"ExposeHeaders": [
			"x-amz-server-side-encryption",
			"x-amz-request-id",
			"x-amz-id-2"
		],
		"MaxAgeSeconds": 3000
	}
]
ECR Lifecycle Policy
{
	"rules": [
		{
			"rulePriority": 1,
			"description": "Keep only the last 100 images",
			"selection": {
				"tagStatus": "any",
				"countType": "imageCountMoreThan",
				"countNumber": 100
			},
			"action": {
				"type": "expire"
			}
		}
	]
}
ECR Lifecycle Policy1
{
	"rules": [
		{
			"rulePriority": 1,
			"description": "Remove images with certain tag",
			"selection": {
				"tagStatus": "tagged",
				"tagPrefixList": ["tag1", "tag2"],
				"countType": "imageCountMoreThan",
				"countNumber": 0
			},
			"action": {
				"type": "expire"
			}
		}
	]
}
ECR Lifecycle Policy2
{
	"rules": [
		{
			"rulePriority": 1,
			"description": "Remove untagged images older than 14 days",
			"selection": {
				"tagStatus": "untagged",
				"countType": "sinceImagePushed",
				"countUnit": "days",
				"countNumber": 14
			},
			"action": {
				"type": "expire"
			}
		}
	]
}