main
tf 102 lines 1.71 KB
Raw
1 resource "aws_s3_bucket" "cache_log" {
2 provider = aws.us
3
4 bucket = "nix-cache-log"
5 }
6
7 resource "aws_s3_bucket_logging" "cache_log" {
8 provider = aws.us
9
10 bucket = aws_s3_bucket.cache.id
11
12 target_bucket = aws_s3_bucket.cache_log.id
13 target_prefix = "log/"
14 }
15
16 resource "aws_s3_bucket_lifecycle_configuration" "cache_log" {
17 provider = aws.us
18
19 bucket = aws_s3_bucket.cache_log.id
20
21 rule {
22 id = "rule-1"
23 status = "Enabled"
24
25 filter {
26 prefix = ""
27 }
28
29 expiration {
30 days = "30"
31 }
32 }
33 }
34
35 data "aws_iam_policy_document" "cache_log" {
36 statement {
37 sid = "AWSLogDeliveryWrite"
38
39 principals {
40 type = "Service"
41 identifiers = ["delivery.logs.amazonaws.com"]
42 }
43
44 effect = "Allow"
45
46 actions = [
47 "s3:PutObject",
48 ]
49
50 resources = [
51 "${aws_s3_bucket.cache_log.arn}/*",
52 ]
53
54 condition {
55 test = "StringEquals"
56 variable = "s3:x-amz-acl"
57 values = ["bucket-owner-full-control"]
58 }
59 }
60
61 statement {
62 sid = "AWSLogDeliveryAclCheck"
63
64 effect = "Allow"
65
66 principals {
67 type = "Service"
68 identifiers = ["delivery.logs.amazonaws.com"]
69 }
70
71 actions = [
72 "s3:GetBucketAcl",
73 ]
74
75 resources = [
76 aws_s3_bucket.cache_log.arn,
77 ]
78 }
79
80 statement {
81 sid = "S3PolicyStmt-DO-NOT-MODIFY-1699369618664"
82 effect = "Allow"
83
84 principals {
85 type = "Service"
86 identifiers = ["logging.s3.amazonaws.com"]
87 }
88
89 actions = ["s3:PutObject"]
90
91 resources = [
92 "${aws_s3_bucket.cache_log.arn}/*",
93 ]
94 }
95 }
96
97 resource "aws_s3_bucket_policy" "cache_log" {
98 provider = aws.us
99
100 bucket = aws_s3_bucket.cache_log.id
101 policy = data.aws_iam_policy_document.cache_log.json
102 }