terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } required_version = ">= 1.0" } provider "aws" { region = "eu-west-3" } resource "aws_s3_bucket" "images" { bucket = "distribox-registry" } resource "aws_s3_bucket_public_access_block" "images" { bucket = aws_s3_bucket.images.id block_public_acls = true ignore_public_acls = true block_public_policy = false restrict_public_buckets = false } resource "aws_s3_bucket_policy" "public_read" { bucket = aws_s3_bucket.images.id depends_on = [aws_s3_bucket_public_access_block.images] policy = jsonencode({ Version = "2012-10-17" Statement = [ { Sid = "PublicReadGetObject" Effect = "Allow" Principal = "*" Action = "s3:GetObject" Resource = "${aws_s3_bucket.images.arn}/*" }, { Sid = "PublicListBucket" Effect = "Allow" Principal = "*" Action = "s3:ListBucket" Resource = aws_s3_bucket.images.arn } ] }) }