Search

S3

resource "random_string" "bucket_random" { length = 4 upper = false lower = true numeric = false special = false } resource "aws_s3_bucket" "source" { bucket = "wsi-static-${random_string.bucket_random.result}" } resource "aws_s3_object" "static" { bucket = aws_s3_bucket.source.id key = "index.html" source = "./src/index.html" etag = filemd5("./src/index.html") content_type = "text/html" } resource "aws_s3_object" "glass" { bucket = aws_s3_bucket.source.id key = "images/glass.jpg" source = "./src/images/glass.jpg" etag = filemd5("./src/images/glass.jpg") content_type = "image/jpeg" } resource "aws_s3_object" "hamster" { bucket = aws_s3_bucket.source.id key = "images/hamster.jpg" source = "./src/images/hamster.jpg" etag = filemd5("./src/images/hamster.jpg") content_type = "image/jpeg" } resource "aws_s3_object" "librany" { bucket = aws_s3_bucket.source.id key = "images/library.jpg" source = "./src/images/library.jpg" etag = filemd5("./src/images/library.jpg") content_type = "image/jpeg" } resource "aws_s3_object" "folder1" { bucket = aws_s3_bucket.source.id key = "dev/" } resource "aws_s3_bucket_policy" "cdn-oac-bucket-policy" { bucket = aws_s3_bucket.source.id policy = data.aws_iam_policy_document.static_s3_policy.json } data "aws_iam_policy_document" "static_s3_policy" { statement { actions = ["s3:GetObject"] resources = ["${aws_s3_bucket.source.arn}/*"] principals { type = "Service" identifiers = ["cloudfront.amazonaws.com"] } condition { test = "StringEquals" variable = "AWS:SourceArn" values = [aws_cloudfront_distribution.cf_dist.arn] } } } resource "aws_s3_bucket_website_configuration" "source" { bucket = aws_s3_bucket.source.id index_document { suffix = "index.html" } } resource "aws_s3_bucket_versioning" "source" { bucket = aws_s3_bucket.source.id versioning_configuration { status = "Enabled" } }
JSON
복사