Skip to content

Commit 2ba3f28

Browse files
committed
feat(google_permissions): Allow roles/datastore.user for folder, nonprod, and prod roles
MZCLD-2439
1 parent b286a05 commit 2ba3f28

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

google_permissions/other_roles.tf

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,51 @@
66
//
77
*/
88

9+
locals {
10+
allowed_folder_roles = [
11+
"roles/datastore.user",
12+
]
13+
allowed_nonprod_roles = [
14+
"roles/datastore.user",
15+
]
16+
allowed_prod_roles = [
17+
"roles/datastore.user",
18+
]
19+
}
20+
21+
resource "google_folder_iam_binding" "developers_folder_roles" {
22+
for_each = setunion(
23+
local.allowed_folder_roles,
24+
[ for role in var.folder_roles : role if !var.admin_only ],
25+
)
26+
27+
folder = var.google_folder_id
28+
role = each.value
29+
members = module.developers_workgroup.members
30+
}
31+
32+
resource "google_project_iam_binding" "developers_nonprod_roles" {
33+
for_each = setunion(
34+
local.allowed_nonprod_roles,
35+
[ for role in var.nonprod_roles : role if !var.admin_only && var.google_nonprod_project_id != "" ],
36+
)
37+
38+
project = var.google_nonprod_project_id
39+
role = each.value
40+
members = module.developers_workgroup.members
41+
}
42+
43+
resource "google_project_iam_binding" "developers_prod_roles" {
44+
for_each = setunion(
45+
local.allowed_prod_roles,
46+
[ for role in var.prod_roles : role if !var.admin_only && var.google_prod_project_id != "" ],
47+
)
48+
49+
project = var.google_prod_project_id
50+
role = each.value
51+
members = module.developers_workgroup.members
52+
}
53+
954
resource "google_folder_iam_binding" "bq_job_user" {
1055
//
1156
// NOTE: this uses bq_data_viewer as well as the next resource block so that those we grant data viewer

0 commit comments

Comments
 (0)