resource "aws_s3_bucket" "frontend" { bucket = var.s3_bucket tags = { Name = "ReadFasterLabs" } } resource "aws_s3_bucket_website_configuration" "frontend" { bucket = aws_s3_bucket.frontend.id index_document { suffix = "index.html" } } data "aws_iam_policy_document" "origin_bucket_policy" { statement { sid = "PublicRead" effect = "Allow" principals { type = "*" identifiers = ["*"] } actions = ["s3:GetObject"] resources = ["${aws_s3_bucket.frontend.arn}/*"] } statement { sid = "AllowCloudFrontServicePrincipal" effect = "Allow" principals { type = "Service" identifiers = ["cloudfront.amazonaws.com"] } actions = ["s3:GetObject"] resources = ["${aws_s3_bucket.frontend.arn}/*"] condition { test = "ArnLike" variable = "AWS:SourceArn" values = [aws_cloudfront_distribution.cdn.arn] } } } resource "aws_s3_bucket_policy" "frontend" { bucket = aws_s3_bucket.frontend.bucket policy = data.aws_iam_policy_document.origin_bucket_policy.json } locals { s3_origin_id = "myS3Origin" }