Skip to content

Commit d9bd377

Browse files
feat: Add support for enforcing uniform IAM access to project GCS bucket (#585)
1 parent 28547ed commit d9bd377

File tree

5 files changed

+20
-5
lines changed

5 files changed

+20
-5
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ determining that location is as follows:
118118
| bucket\_location | The location for a GCS bucket to create (optional) | `string` | `"US"` | no |
119119
| bucket\_name | A name for a GCS bucket to create (in the bucket\_project project), useful for Terraform state (optional) | `string` | `""` | no |
120120
| bucket\_project | A project to create a GCS bucket (bucket\_name) in, useful for Terraform state (optional) | `string` | `""` | no |
121+
| bucket\_ula | Enable Uniform Bucket Level Access | `bool` | `true` | no |
121122
| bucket\_versioning | Enable versioning for a GCS bucket to create (optional) | `bool` | `false` | no |
122123
| budget\_alert\_pubsub\_topic | The name of the Cloud Pub/Sub topic where budget related messages will be published, in the form of `projects/{project_id}/topics/{topic_id}` | `string` | `null` | no |
123124
| budget\_alert\_spent\_percents | A list of percentages of the budget to alert on when threshold is exceeded | `list(number)` | <pre>[<br> 0.5,<br> 0.7,<br> 1<br>]</pre> | no |

main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ module "project-factory" {
5858
bucket_versioning = var.bucket_versioning
5959
bucket_labels = var.bucket_labels
6060
bucket_force_destroy = var.bucket_force_destroy
61+
bucket_ula = var.bucket_ula
6162
auto_create_network = var.auto_create_network
6263
disable_services_on_destroy = var.disable_services_on_destroy
6364
default_service_account = var.default_service_account

modules/core_project_factory/main.tf

+6-5
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,12 @@ resource "google_project_usage_export_bucket" "usage_report_export" {
278278
resource "google_storage_bucket" "project_bucket" {
279279
count = local.create_bucket ? 1 : 0
280280

281-
name = local.project_bucket_name
282-
project = var.bucket_project == local.base_project_id ? google_project.main.project_id : var.bucket_project
283-
location = var.bucket_location
284-
labels = var.bucket_labels
285-
force_destroy = var.bucket_force_destroy
281+
name = local.project_bucket_name
282+
project = var.bucket_project == local.base_project_id ? google_project.main.project_id : var.bucket_project
283+
location = var.bucket_location
284+
labels = var.bucket_labels
285+
force_destroy = var.bucket_force_destroy
286+
uniform_bucket_level_access = var.bucket_ula
286287

287288
versioning {
288289
enabled = var.bucket_versioning

modules/core_project_factory/variables.tf

+6
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ variable "bucket_force_destroy" {
187187
default = false
188188
}
189189

190+
variable "bucket_ula" {
191+
description = "Enable Uniform Bucket Level Access"
192+
type = bool
193+
default = true
194+
}
195+
190196
variable "auto_create_network" {
191197
description = "Create the default network"
192198
type = bool

variables.tf

+6
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ variable "bucket_force_destroy" {
187187
default = false
188188
}
189189

190+
variable "bucket_ula" {
191+
description = "Enable Uniform Bucket Level Access"
192+
type = bool
193+
default = true
194+
}
195+
190196
variable "auto_create_network" {
191197
description = "Create the default network"
192198
type = bool

0 commit comments

Comments
 (0)