diff --git a/example/s3/.terraform.lock.hcl b/example/s3/.terraform.lock.hcl new file mode 100644 index 0000000..f4ffd69 --- /dev/null +++ b/example/s3/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "4.23.0" + hashes = [ + "h1:JDJLmKK61GLw8gHQtCzmvlwPNZIu46/M5uBg/TDlBa0=", + "zh:17adbedc9a80afc571a8de7b9bfccbe2359e2b3ce1fffd02b456d92248ec9294", + "zh:23d8956b031d78466de82a3d2bbe8c76cc58482c931af311580b8eaef4e6a38f", + "zh:343fe19e9a9f3021e26f4af68ff7f4828582070f986b6e5e5b23d89df5514643", + "zh:6b8ff83d884b161939b90a18a4da43dd464c4b984f54b5f537b2870ce6bd94bc", + "zh:7777d614d5e9d589ad5508eecf4c6d8f47d50fcbaf5d40fa7921064240a6b440", + "zh:82f4578861a6fd0cde9a04a1926920bd72d993d524e5b34d7738d4eff3634c44", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:a08fefc153bbe0586389e814979cf7185c50fcddbb2082725991ed02742e7d1e", + "zh:ae789c0e7cb777d98934387f8888090ccb2d8973ef10e5ece541e8b624e1fb00", + "zh:b4608aab78b4dbb32c629595797107fc5a84d1b8f0682f183793d13837f0ecf0", + "zh:ed2c791c2354764b565f9ba4be7fc845c619c1a32cefadd3154a5665b312ab00", + "zh:f94ac0072a8545eebabf417bc0acbdc77c31c006ad8760834ee8ee5cdb64e743", + ] +} diff --git a/example/s3/dev.auto.tfvars b/example/s3/dev.auto.tfvars new file mode 100644 index 0000000..32676ab --- /dev/null +++ b/example/s3/dev.auto.tfvars @@ -0,0 +1 @@ +environment_name = "dev" \ No newline at end of file diff --git a/example/s3/main.tf b/example/s3/main.tf index f757e87..8e6eda9 100644 --- a/example/s3/main.tf +++ b/example/s3/main.tf @@ -1,17 +1,16 @@ module "s3" { - source = "../../../../modules/v2.3.4/modules//s3" + source = "../../module/s3" ## Local Variable ## - bucket_name = "-${var.environment_name}" + bucket_name = "brunolabs-module-s3-${var.environment_name}" ## Tags## - tags = var.tags + #tags = var.tags default_tags = { - bu = "" - team = "" - vertical = "" + bu = "test" + team = "dev" + vertical = "vertical-test" } - } \ No newline at end of file diff --git a/example/s3/terraform.tfstate b/example/s3/terraform.tfstate new file mode 100644 index 0000000..42386b8 --- /dev/null +++ b/example/s3/terraform.tfstate @@ -0,0 +1,8 @@ +{ + "version": 4, + "terraform_version": "1.2.5", + "serial": 12, + "lineage": "f50efb2d-bdd9-a01d-c549-03ff0e1a5445", + "outputs": {}, + "resources": [] +} diff --git a/example/s3/terraform.tfstate.backup b/example/s3/terraform.tfstate.backup new file mode 100644 index 0000000..8c68e41 --- /dev/null +++ b/example/s3/terraform.tfstate.backup @@ -0,0 +1,225 @@ +{ + "version": 4, + "terraform_version": "1.2.5", + "serial": 6, + "lineage": "f50efb2d-bdd9-a01d-c549-03ff0e1a5445", + "outputs": { + "arn": { + "value": "arn:aws:s3:::brunolabs-module-s3-dev", + "type": "string" + }, + "domain_name": { + "value": "brunolabs-module-s3-dev.s3.amazonaws.com", + "type": "string" + }, + "id": { + "value": "brunolabs-module-s3-dev", + "type": "string" + }, + "region": { + "value": "us-east-1", + "type": "string" + } + }, + "resources": [ + { + "module": "module.s3", + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_bucket", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::brunolabs-module-s3-dev", + "bucket": "brunolabs-module-s3-dev", + "bucket_domain_name": "brunolabs-module-s3-dev.s3.amazonaws.com", + "bucket_prefix": null, + "bucket_regional_domain_name": "brunolabs-module-s3-dev.s3.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "434d22d7cd6ceaa68fed219fd95384068a3d87f378278bbd4017d88a7197f093", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z3AQBSTGFYJSTF", + "id": "brunolabs-module-s3-dev", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "", + "region": "us-east-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [], + "tags": { + "bu": "bu-test", + "team": "dev", + "vertical": "vertical-test" + }, + "tags_all": { + "bu": "bu-test", + "team": "dev", + "vertical": "vertical-test" + }, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "module": "module.s3", + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "s3_acl", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "brunopdossantos1993", + "email_address": "", + "id": "434d22d7cd6ceaa68fed219fd95384068a3d87f378278bbd4017d88a7197f093", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "brunopdossantos1993", + "id": "434d22d7cd6ceaa68fed219fd95384068a3d87f378278bbd4017d88a7197f093" + } + ] + } + ], + "acl": "private", + "bucket": "brunolabs-module-s3-dev", + "expected_bucket_owner": "", + "id": "brunolabs-module-s3-dev,private" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "module.s3.aws_s3_bucket.s3_bucket" + ] + } + ] + }, + { + "module": "module.s3", + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_block_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": true, + "block_public_policy": true, + "bucket": "brunolabs-module-s3-dev", + "id": "brunolabs-module-s3-dev", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "module.s3.aws_s3_bucket.s3_bucket" + ] + } + ] + }, + { + "module": "module.s3", + "mode": "managed", + "type": "aws_s3_bucket_server_side_encryption_configuration", + "name": "s3_sse", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "brunolabs-module-s3-dev", + "expected_bucket_owner": "", + "id": "brunolabs-module-s3-dev", + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": null + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "module.s3.aws_s3_bucket.s3_bucket" + ] + } + ] + }, + { + "module": "module.s3", + "mode": "managed", + "type": "aws_s3_bucket_versioning", + "name": "s3_versioning", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "brunolabs-module-s3-dev", + "expected_bucket_owner": "", + "id": "brunolabs-module-s3-dev", + "mfa": null, + "versioning_configuration": [ + { + "mfa_delete": "", + "status": "Enabled" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "module.s3.aws_s3_bucket.s3_bucket" + ] + } + ] + } + ] +} diff --git a/example/s3/tfplan b/example/s3/tfplan new file mode 100644 index 0000000..da46817 Binary files /dev/null and b/example/s3/tfplan differ diff --git a/example/s3/variables.tf b/example/s3/variables.tf index 434c6c5..495995e 100644 --- a/example/s3/variables.tf +++ b/example/s3/variables.tf @@ -3,7 +3,7 @@ variable "environment_name" { description = "Required: Name of environment" } -variable "tags" { +/*variable "tags" { description = "Tags of S3 Bucket" type = map(any) -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/example/s3/versions.tf b/example/s3/versions.tf new file mode 100644 index 0000000..8814938 --- /dev/null +++ b/example/s3/versions.tf @@ -0,0 +1,10 @@ +terraform { + required_version = "~> 1.2.0" + + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.23.0" + } + } +} diff --git a/module/s3/main.tf b/module/s3/main.tf index 74d144e..7c2cc95 100644 --- a/module/s3/main.tf +++ b/module/s3/main.tf @@ -1,6 +1,3 @@ -#tfsec:ignore:aws-s3-enable-versioning -#tfsec:ignore:aws-s3-enable-bucket-logging -#tfsec:ignore:aws-s3-enable-bucket-encryption resource "aws_s3_bucket" "s3_bucket" { bucket = var.bucket_name tags = merge(var.tags, var.default_tags, var.s3_tags)