module "website_bucket" {
source = "registry.patterneddesigns.ca/essentials/s3-bucket/aws"
version = "3.0.0"
bucket_name = "www-example-com"
versioning_enabled = false
website_configuration = {
index_document = "index.html"
error_document = "error.html"
}
cors_configuration = {
cors_rules = [{
allowed_headers = ["*"]
allowed_methods = ["GET", "HEAD"]
allowed_origins = ["https://example.com"]
max_age_seconds = 86400
}]
}
}
resource "aws_s3_bucket_policy" "website" {
bucket = module.website_bucket.bucket_id
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Sid = "PublicReadGetObject"
Effect = "Allow"
Principal = "*"
Action = "s3:GetObject"
Resource = "${module.website_bucket.bucket_arn}/*"
}]
})
}