Skip to content

Commit b3058e9

Browse files
chore: Update account id assignment using data source
1 parent fe70fd0 commit b3058e9

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

modules/account_users_and_groups_assignments/data.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
data "aws_organizations_organization" "o" {}
2+
13
resource "null_resource" "sso_group_dependency" {
24
triggers = {
35
dependency_id = join(",", var.identitystore_group_depends_on)

modules/account_users_and_groups_assignments/locals.tf

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11

22
locals {
3+
4+
account_map = {
5+
for account in data.aws_organizations_organization.o.accounts : account.name => account.id
6+
}
7+
38
target_type = "AWS_ACCOUNT"
49
flatten_account_group_permission = flatten([
510
for acc_assignment in var.account_assignments : [
611
for ps_name in acc_assignment.permission_sets : [
712
for pr_name in acc_assignment.principal_names : {
8-
acc_id = acc_assignment.account_id
13+
acc_id = account_map[acc_assignment.account_name]
914
principal_name = pr_name
1015
ps_name = ps_name
1116
principal_type = acc_assignment.principal_type

modules/account_users_and_groups_assignments/variables.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
variable "account_assignments" {
22
description = <<EOF
33
A list of objects representing permission assignments for AWS SSO. Each object contains the following attributes:
4-
- account_id: The AWS account ID where the permissions will be applied.
4+
- account_name: The AWS account where the permissions will be applied.
55
- permission_sets: List of permission-set to be assigned to the specified principals.
66
- principal_names: An identifier for an object in AWS SSO, such as the names of groups or users .
77
- principal_type:The entity type for which the assignment will be created. Valid values: USER, GROUP.
88
EOF
99
type = list(object({
10-
account_id = string
10+
account_name = string
1111
permission_sets = list(string)
1212
principal_names = list(string)
1313
principal_type = string
1414
}))
1515

1616
validation {
17-
condition = alltrue([for a in var.account_assignments : can(regex("^\\d{12}$", a.account_id))])
18-
error_message = "Each account_id must be a valid 12-digit number."
17+
condition = alltrue([for a in var.account_assignments : length(a.account_name) > 0])
18+
error_message = "Account name cannot be empty"
1919
}
2020
validation {
2121
condition = alltrue([for a in var.account_assignments : length(a.permission_sets) > 0])

0 commit comments

Comments
 (0)