diff --git a/CHANGELOG.md b/CHANGELOG.md index e690968..9098dab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -184,3 +184,7 @@ - s3-flow-logs - change encryption to AES256 from aws:kms (no default for log delivery) - update policy according to docs: https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-s3.html + +* 1.16.4 -- 2022-11-01 + - s3-access-logs + - disable acl diff --git a/common/version.tf b/common/version.tf index aa7208c..1d0ac4c 100644 --- a/common/version.tf +++ b/common/version.tf @@ -1,3 +1,3 @@ locals { - _module_version = "1.16.3" + _module_version = "1.16.4" } diff --git a/s3-access-logs/README.md b/s3-access-logs/README.md index 248632d..246b211 100644 --- a/s3-access-logs/README.md +++ b/s3-access-logs/README.md @@ -59,17 +59,18 @@ No modules. |------|------| | [aws_s3_bucket.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) | resource | | [aws_s3_bucket_acl.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_acl) | resource | -| [aws_s3_bucket_object.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_object) | resource | | [aws_s3_bucket_ownership_controls.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_ownership_controls) | resource | | [aws_s3_bucket_policy.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_policy) | resource | | [aws_s3_bucket_public_access_block.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_public_access_block) | resource | | [aws_s3_bucket_server_side_encryption_configuration.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_server_side_encryption_configuration) | resource | | [aws_s3_bucket_versioning.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_versioning) | resource | +| [aws_s3_object.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_object) | resource | | [null_resource.policy_delay](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource | | [aws_arn.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/arn) | data source | | [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source | | [aws_iam_policy_document.logs_s3](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source | | [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source | +| [aws_regions.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/regions) | data source | ## Inputs @@ -82,6 +83,7 @@ No modules. | [component\_tags](#input\_component\_tags) | Additional tags for Components (s3, kms, ddb) | `map(map(string))` |
{
"ddb": {},
"kms": {},
"s3": {}
}
| no | | [override\_prefixes](#input\_override\_prefixes) | Override built-in prefixes by component (efs, s3, ebs, kms, role, policy, security-group). This should be used primarily for common infrastructure things | `map(string)` | `{}` | no | | [tags](#input\_tags) | AWS Tags to apply to appropriate resources (S3, KMS). Do not include safeguard tags here, use the data\_safeguard field for such things. | `map(string)` | `{}` | no | +| [versioning\_configuration](#input\_versioning\_configuration) | S3 Versioning Configuration (Enabled, Disabled, Suspended). To disable, use Suspended if existing bucket and Disabled if new | `string` | `"Disabled"` | no | ## Outputs diff --git a/s3-access-logs/main.tf b/s3-access-logs/main.tf index c3928b1..09e1aa3 100644 --- a/s3-access-logs/main.tf +++ b/s3-access-logs/main.tf @@ -98,7 +98,7 @@ resource "aws_s3_bucket_public_access_block" "logs" { resource "aws_s3_bucket_versioning" "logs" { bucket = aws_s3_bucket.logs.id versioning_configuration { - status = "Disabled" + status = var.versioning_configuration } } @@ -111,7 +111,7 @@ resource "aws_s3_bucket_versioning" "logs" { resource "aws_s3_bucket_ownership_controls" "this" { bucket = aws_s3_bucket.logs.id rule { - object_ownership = "BucketOwnerEnforced" + object_ownership = "BucketOwnerPreferred" } } @@ -125,15 +125,15 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "logs" { } resource "aws_s3_bucket_acl" "logs" { - # count = 0 + # count = 0 bucket = aws_s3_bucket.logs.id - acl = "private" + acl = "log-delivery-write" } #--- # create "directories" #--- -resource "aws_s3_bucket_object" "logs" { +resource "aws_s3_object" "logs" { for_each = toset(local.logs_folders) bucket = aws_s3_bucket.logs.id key = format("%v/", each.key) diff --git a/s3-access-logs/variables.tf b/s3-access-logs/variables.tf index 2589730..79f37f4 100644 --- a/s3-access-logs/variables.tf +++ b/s3-access-logs/variables.tf @@ -16,3 +16,9 @@ variable "component_tags" { type = map(map(string)) default = { "s3" = {}, "kms" = {}, "ddb" = {} } } + +variable "versioning_configuration" { + description = "S3 Versioning Configuration (Enabled, Disabled, Suspended). To disable, use Suspended if existing bucket and Disabled if new" + type = string + default = "Disabled" +}