-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tf
66 lines (53 loc) · 1.47 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
locals {
module_version = jsondecode(file("${path.module}/version.json")).version
time_stamp = timestamp()
}
# S3 Bucket resource
resource "aws_s3_bucket" "main" {
bucket = var.bucket_name
force_destroy = var.force_destroy
tags = merge(var.tags, {
ManagedBy = "Terraform"
Created = local.time_stamp
CreatedBy = data.aws_caller_identity.current.arn
Module = "aws-s3-bucket"
ModuleVersion = local.module_version
})
lifecycle {
ignore_changes = [
tags["Created"]
]
}
}
# Bucket ACL
resource "aws_s3_bucket_acl" "main" {
bucket = aws_s3_bucket.main.id
acl = var.bucket_acl
}
# Website config
resource "aws_s3_bucket_website_configuration" "main" {
count = var.configure_as_website ? 1 : 0
bucket = aws_s3_bucket.main.bucket
index_document {
suffix = var.website_config.index_document
}
error_document {
key = var.website_config.error_document
}
}
# Bucket Logging
resource "aws_s3_bucket" "main_log_bucket" {
count = var.log_bucket_name != null ? 1 : 0
bucket = var.log_bucket_name
}
resource "aws_s3_bucket_acl" "main_log_bucket" {
count = var.log_bucket_name != null ? 1 : 0
bucket = aws_s3_bucket.main_log_bucket[count.index].id
acl = "log-delivery-write"
}
resource "aws_s3_bucket_logging" "main" {
count = var.log_bucket_name != null ? 1 : 0
bucket = aws_s3_bucket.main.id
target_bucket = aws_s3_bucket.main_log_bucket[count.index].id
target_prefix = var.log_prefix
}