irongit
58 lines1.1 KB
1resource "aws_s3_bucket" "frontend" {
2 bucket = var.s3_bucket
3
4 tags = {
5 Name = "ReadFasterLabs"
6 }
7}
8
9resource "aws_s3_bucket_website_configuration" "frontend" {
10 bucket = aws_s3_bucket.frontend.id
11
12 index_document {
13 suffix = "index.html"
14 }
15}
16
17data "aws_iam_policy_document" "origin_bucket_policy" {
18 statement {
19 sid = "PublicRead"
20 effect = "Allow"
21
22 principals {
23 type = "*"
24 identifiers = ["*"]
25 }
26
27 actions = ["s3:GetObject"]
28 resources = ["${aws_s3_bucket.frontend.arn}/*"]
29 }
30
31 statement {
32 sid = "AllowCloudFrontServicePrincipal"
33 effect = "Allow"
34
35 principals {
36 type = "Service"
37 identifiers = ["cloudfront.amazonaws.com"]
38 }
39
40 actions = ["s3:GetObject"]
41 resources = ["${aws_s3_bucket.frontend.arn}/*"]
42
43 condition {
44 test = "ArnLike"
45 variable = "AWS:SourceArn"
46 values = [aws_cloudfront_distribution.cdn.arn]
47 }
48 }
49}
50
51resource "aws_s3_bucket_policy" "frontend" {
52 bucket = aws_s3_bucket.frontend.bucket
53 policy = data.aws_iam_policy_document.origin_bucket_policy.json
54}
55
56locals {
57 s3_origin_id = "myS3Origin"
58}