|
@@ -19,23 +19,23 @@ resource "aws_s3_bucket_acl" "s3_acl_bucket" {
|
|
|
}
|
|
|
|
|
|
resource "aws_s3_bucket_versioning" "s3_version_bucket" {
|
|
|
- bucket = aws_s3_bucket.bucket.id
|
|
|
+ bucket = aws_s3_bucket.bucket.id
|
|
|
versioning_configuration {
|
|
|
status = "Enabled"
|
|
|
}
|
|
|
}
|
|
|
|
|
|
resource "aws_s3_bucket_lifecycle_configuration" "s3_lifecyle_bucket" {
|
|
|
- bucket = aws_s3_bucket.bucket.id
|
|
|
-
|
|
|
+ bucket = aws_s3_bucket.bucket.id
|
|
|
+
|
|
|
rule {
|
|
|
id = "STANDARD_IA"
|
|
|
status = "Enabled"
|
|
|
-
|
|
|
+
|
|
|
abort_incomplete_multipart_upload {
|
|
|
days_after_initiation = 2
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
transition {
|
|
|
days = 30
|
|
|
storage_class = "STANDARD_IA"
|
|
@@ -45,13 +45,13 @@ resource "aws_s3_bucket_lifecycle_configuration" "s3_lifecyle_bucket" {
|
|
|
|
|
|
resource "aws_s3_bucket_server_side_encryption_configuration" "s3_sse_bucket" {
|
|
|
bucket = aws_s3_bucket.bucket.id
|
|
|
-
|
|
|
+
|
|
|
rule {
|
|
|
apply_server_side_encryption_by_default {
|
|
|
kms_master_key_id = aws_kms_key.bucketkey.arn
|
|
|
sse_algorithm = "aws:kms"
|
|
|
- }
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
resource "aws_s3_bucket_public_access_block" "public_access_block" {
|
|
@@ -66,32 +66,32 @@ resource "aws_s3_bucket_public_access_block" "public_access_block" {
|
|
|
depends_on = [aws_s3_bucket_policy.policy]
|
|
|
}
|
|
|
|
|
|
-resource "aws_s3_bucket_policy" "policy" {
|
|
|
- bucket = aws_s3_bucket.bucket.id
|
|
|
+data "aws_iam_policy_document" "policy" {
|
|
|
+ statement {
|
|
|
+ sid = "AccountAllow"
|
|
|
+ effect = "Allow"
|
|
|
+
|
|
|
+ resources = [
|
|
|
+ aws_s3_bucket.bucket.arn,
|
|
|
+ "${aws_s3_bucket.bucket.arn}/*",
|
|
|
+ ]
|
|
|
|
|
|
- policy = <<POLICY
|
|
|
-{
|
|
|
- "Version": "2012-10-17",
|
|
|
- "Id": "AllowThisAccount",
|
|
|
- "Statement": [
|
|
|
- {
|
|
|
- "Sid": "AccountAllow",
|
|
|
- "Effect": "Allow",
|
|
|
- "Principal": {
|
|
|
- "AWS": ${jsonencode(local.account_arns)}
|
|
|
- },
|
|
|
- "Action": [
|
|
|
- "s3:GetObject",
|
|
|
- "s3:ListBucket"
|
|
|
- ],
|
|
|
- "Resource": [
|
|
|
- "${aws_s3_bucket.bucket.arn}",
|
|
|
- "${aws_s3_bucket.bucket.arn}/*"
|
|
|
- ]
|
|
|
+ actions = [
|
|
|
+ "s3:GetObject",
|
|
|
+ "s3:ListBucket",
|
|
|
+ ]
|
|
|
+
|
|
|
+ principals {
|
|
|
+ type = "AWS"
|
|
|
+ identifiers = local.account_arns
|
|
|
}
|
|
|
- ]
|
|
|
+ }
|
|
|
}
|
|
|
-POLICY
|
|
|
+
|
|
|
+resource "aws_s3_bucket_policy" "policy" {
|
|
|
+ bucket = aws_s3_bucket.bucket.id
|
|
|
+
|
|
|
+ policy = data.aws_iam_policy_document.policy.json
|
|
|
}
|
|
|
|
|
|
//AWS Provider outdated arguments <4.4.0
|
|
@@ -127,4 +127,4 @@ POLICY
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-*/
|
|
|
+*/
|