diff --git a/README.md b/README.md
index 918fd410..58b3cc1d 100644
--- a/README.md
+++ b/README.md
@@ -156,13 +156,13 @@ Users of Terragrunt can achieve similar results by using modules provided in the
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
## Modules
@@ -244,6 +244,7 @@ No modules.
| [block\_public\_acls](#input\_block\_public\_acls) | Whether Amazon S3 should block public ACLs for this bucket. | `bool` | `true` | no |
| [block\_public\_policy](#input\_block\_public\_policy) | Whether Amazon S3 should block public bucket policies for this bucket. | `bool` | `true` | no |
| [bucket](#input\_bucket) | (Optional, Forces new resource) The name of the bucket. If omitted, Terraform will assign a random, unique name. | `string` | `null` | no |
+| [bucket\_namespace](#input\_bucket\_namespace) | Namespace for the bucket. Determines bucket naming scope. Valid values: account-regional, global. Defaults to global (AWS) | `string` | `null` | no |
| [bucket\_prefix](#input\_bucket\_prefix) | (Optional, Forces new resource) Creates a unique bucket name beginning with the specified prefix. Conflicts with bucket. | `string` | `null` | no |
| [control\_object\_ownership](#input\_control\_object\_ownership) | Whether to manage S3 Bucket Ownership Controls on this bucket. | `bool` | `false` | no |
| [cors\_rule](#input\_cors\_rule) | List of maps containing rules for Cross-Origin Resource Sharing. | `any` | `[]` | no |
diff --git a/examples/account-public-access/README.md b/examples/account-public-access/README.md
index 0e4d338a..2e9bf56b 100644
--- a/examples/account-public-access/README.md
+++ b/examples/account-public-access/README.md
@@ -20,7 +20,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.10 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
diff --git a/examples/account-public-access/versions.tf b/examples/account-public-access/versions.tf
index 4dc043d3..55db82ef 100644
--- a/examples/account-public-access/versions.tf
+++ b/examples/account-public-access/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/complete/README.md b/examples/complete/README.md
index 2f04246e..bf89725e 100644
--- a/examples/complete/README.md
+++ b/examples/complete/README.md
@@ -30,14 +30,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
@@ -48,6 +48,7 @@ Note that this example may create resources which cost money. Run `terraform des
| [disabled](#module\_disabled) | ../../ | n/a |
| [log\_bucket](#module\_log\_bucket) | ../../ | n/a |
| [s3\_bucket](#module\_s3\_bucket) | ../../ | n/a |
+| [simple\_account\_regional\_bucket](#module\_simple\_account\_regional\_bucket) | ../../ | n/a |
| [simple\_bucket](#module\_simple\_bucket) | ../../ | n/a |
## Resources
@@ -61,6 +62,7 @@ Note that this example may create resources which cost money. Run `terraform des
| [aws_canonical_user_id.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/canonical_user_id) | data source |
| [aws_cloudfront_log_delivery_canonical_user_id.cloudfront](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/cloudfront_log_delivery_canonical_user_id) | data source |
| [aws_iam_policy_document.bucket_policy](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 |
## Inputs
diff --git a/examples/complete/main.tf b/examples/complete/main.tf
index 33eddbf4..003ef37f 100644
--- a/examples/complete/main.tf
+++ b/examples/complete/main.tf
@@ -18,6 +18,8 @@ data "aws_canonical_user_id" "current" {}
data "aws_cloudfront_log_delivery_canonical_user_id" "cloudfront" {}
+data "aws_region" "current" {}
+
resource "random_pet" "this" {
length = 2
}
@@ -138,6 +140,15 @@ module "simple_bucket" {
force_destroy = true
}
+module "simple_account_regional_bucket" {
+ source = "../../"
+
+ bucket = format("simple-%s-%s-an", data.aws_caller_identity.current.account_id, data.aws_region.current.name)
+ bucket_namespace = "account-regional"
+
+ force_destroy = true
+}
+
module "s3_bucket" {
source = "../../"
diff --git a/examples/complete/versions.tf b/examples/complete/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/complete/versions.tf
+++ b/examples/complete/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/directory-bucket/README.md b/examples/directory-bucket/README.md
index ad2a68dc..8b7d3064 100644
--- a/examples/directory-bucket/README.md
+++ b/examples/directory-bucket/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/directory-bucket/versions.tf b/examples/directory-bucket/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/directory-bucket/versions.tf
+++ b/examples/directory-bucket/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/notification/README.md b/examples/notification/README.md
index 8d046d3d..6b587ef1 100644
--- a/examples/notification/README.md
+++ b/examples/notification/README.md
@@ -20,7 +20,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [null](#requirement\_null) | >= 2.0 |
| [random](#requirement\_random) | >= 2.0 |
@@ -28,7 +28,7 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [null](#provider\_null) | >= 2.0 |
| [random](#provider\_random) | >= 2.0 |
diff --git a/examples/notification/versions.tf b/examples/notification/versions.tf
index 07469443..9d94e2fc 100644
--- a/examples/notification/versions.tf
+++ b/examples/notification/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/object/README.md b/examples/object/README.md
index 34ed1d6b..9432e874 100644
--- a/examples/object/README.md
+++ b/examples/object/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/object/versions.tf b/examples/object/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/object/versions.tf
+++ b/examples/object/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-analytics/README.md b/examples/s3-analytics/README.md
index 6fa2dca3..e2405a6f 100644
--- a/examples/s3-analytics/README.md
+++ b/examples/s3-analytics/README.md
@@ -10,14 +10,14 @@ Please check [complete example](https://github.com/terraform-aws-modules/terrafo
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-analytics/versions.tf b/examples/s3-analytics/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/s3-analytics/versions.tf
+++ b/examples/s3-analytics/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-inventory/README.md b/examples/s3-inventory/README.md
index 61698083..4db65e7f 100644
--- a/examples/s3-inventory/README.md
+++ b/examples/s3-inventory/README.md
@@ -10,14 +10,14 @@ Please check [complete example](https://github.com/terraform-aws-modules/terrafo
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-inventory/versions.tf b/examples/s3-inventory/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/s3-inventory/versions.tf
+++ b/examples/s3-inventory/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/s3-replication/README.md b/examples/s3-replication/README.md
index e92aa1c1..0f63c78d 100644
--- a/examples/s3-replication/README.md
+++ b/examples/s3-replication/README.md
@@ -22,15 +22,15 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
-| [aws.replica](#provider\_aws.replica) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
+| [aws.replica](#provider\_aws.replica) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/s3-replication/versions.tf b/examples/s3-replication/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/s3-replication/versions.tf
+++ b/examples/s3-replication/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/examples/table-bucket/README.md b/examples/table-bucket/README.md
index 1c779a88..1f17ee6f 100644
--- a/examples/table-bucket/README.md
+++ b/examples/table-bucket/README.md
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
| [random](#requirement\_random) | >= 2.0 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
| [random](#provider\_random) | >= 2.0 |
## Modules
diff --git a/examples/table-bucket/versions.tf b/examples/table-bucket/versions.tf
index c58a323e..acf0867a 100644
--- a/examples/table-bucket/versions.tf
+++ b/examples/table-bucket/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
random = {
source = "hashicorp/random"
diff --git a/main.tf b/main.tf
index f824047f..b0b512d9 100644
--- a/main.tf
+++ b/main.tf
@@ -47,8 +47,9 @@ resource "aws_s3_bucket" "this" {
region = var.region
- bucket = var.bucket
- bucket_prefix = var.bucket_prefix
+ bucket = var.bucket
+ bucket_prefix = var.bucket_prefix
+ bucket_namespace = var.bucket_namespace
force_destroy = var.force_destroy
object_lock_enabled = var.object_lock_enabled
diff --git a/modules/account-public-access/README.md b/modules/account-public-access/README.md
index 40979da7..413f18ff 100644
--- a/modules/account-public-access/README.md
+++ b/modules/account-public-access/README.md
@@ -12,13 +12,13 @@ Each AWS account may only have one S3 Public Access Block configuration.
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
## Modules
diff --git a/modules/account-public-access/versions.tf b/modules/account-public-access/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/modules/account-public-access/versions.tf
+++ b/modules/account-public-access/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/modules/notification/README.md b/modules/notification/README.md
index a968a044..cefc2d99 100644
--- a/modules/notification/README.md
+++ b/modules/notification/README.md
@@ -8,13 +8,13 @@ Creates S3 bucket notification resource with all supported types of deliveries:
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
## Modules
diff --git a/modules/notification/versions.tf b/modules/notification/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/modules/notification/versions.tf
+++ b/modules/notification/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/modules/object/README.md b/modules/object/README.md
index 5a1a3cc3..e6c601c4 100644
--- a/modules/object/README.md
+++ b/modules/object/README.md
@@ -8,13 +8,13 @@ Creates S3 bucket objects with different configurations.
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
## Modules
diff --git a/modules/object/versions.tf b/modules/object/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/modules/object/versions.tf
+++ b/modules/object/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/modules/table-bucket/README.md b/modules/table-bucket/README.md
index 7ed0e8bb..1fcfe998 100644
--- a/modules/table-bucket/README.md
+++ b/modules/table-bucket/README.md
@@ -8,13 +8,13 @@ Creates S3 Table Bucket and Tables with various configurations.
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.5.7 |
-| [aws](#requirement\_aws) | >= 6.28 |
+| [aws](#requirement\_aws) | >= 6.37 |
## Providers
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | >= 6.28 |
+| [aws](#provider\_aws) | >= 6.37 |
## Modules
diff --git a/modules/table-bucket/versions.tf b/modules/table-bucket/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/modules/table-bucket/versions.tf
+++ b/modules/table-bucket/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/variables.tf b/variables.tf
index 63f45bef..e5973882 100644
--- a/variables.tf
+++ b/variables.tf
@@ -118,6 +118,12 @@ variable "bucket_prefix" {
default = null
}
+variable "bucket_namespace" {
+ description = "Namespace for the bucket. Determines bucket naming scope. Valid values: account-regional, global. Defaults to global (AWS)"
+ type = string
+ default = null
+}
+
variable "acl" {
description = "(Optional) The canned ACL to apply. Conflicts with `grant`"
type = string
diff --git a/versions.tf b/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/versions.tf
+++ b/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/wrappers/account-public-access/versions.tf b/wrappers/account-public-access/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/wrappers/account-public-access/versions.tf
+++ b/wrappers/account-public-access/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/wrappers/main.tf b/wrappers/main.tf
index 6e388ac2..6dadfc17 100644
--- a/wrappers/main.tf
+++ b/wrappers/main.tf
@@ -32,6 +32,7 @@ module "wrapper" {
block_public_acls = try(each.value.block_public_acls, var.defaults.block_public_acls, true)
block_public_policy = try(each.value.block_public_policy, var.defaults.block_public_policy, true)
bucket = try(each.value.bucket, var.defaults.bucket, null)
+ bucket_namespace = try(each.value.bucket_namespace, var.defaults.bucket_namespace, null)
bucket_prefix = try(each.value.bucket_prefix, var.defaults.bucket_prefix, null)
control_object_ownership = try(each.value.control_object_ownership, var.defaults.control_object_ownership, false)
cors_rule = try(each.value.cors_rule, var.defaults.cors_rule, [])
diff --git a/wrappers/notification/versions.tf b/wrappers/notification/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/wrappers/notification/versions.tf
+++ b/wrappers/notification/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/wrappers/object/versions.tf b/wrappers/object/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/wrappers/object/versions.tf
+++ b/wrappers/object/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/wrappers/table-bucket/versions.tf b/wrappers/table-bucket/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/wrappers/table-bucket/versions.tf
+++ b/wrappers/table-bucket/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}
diff --git a/wrappers/versions.tf b/wrappers/versions.tf
index 0f74c6cb..cb7333c1 100644
--- a/wrappers/versions.tf
+++ b/wrappers/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 6.28"
+ version = ">= 6.37"
}
}