@@ -3,11 +3,7 @@ data "aws_ssoadmin_instances" "ssoadmin_instances" {}
33data "aws_identitystore_group" "aws" {
44 for_each = local. enable_sso ? toset (
55 flatten ([
6- for account in flatten ([
7- for unit_name , unit in local . organization_config [" units" ] : [
8- for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : local . organization_config [" units" ][unit_name ][" accounts" ][account_name ]
9- ]
10- ]) : keys (lookup (account, " group_assignments" , {}))
6+ for account in local . accounts : keys (lookup (account, " group_assignments" , {}))
117 ])
128 ) : toset ([])
139
@@ -24,11 +20,7 @@ data "aws_identitystore_group" "aws" {
2420data "aws_identitystore_user" "aws" {
2521 for_each = local. enable_sso ? toset (
2622 flatten ([
27- for account in flatten ([
28- for unit_name , unit in local . organization_config [" units" ] : [
29- for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : local . organization_config [" units" ][unit_name ][" accounts" ][account_name ]
30- ]
31- ]) : keys (lookup (account, " user_assignments" , {}))
23+ for account in local . accounts : keys (lookup (account, " user_assignments" , {}))
3224 ])
3325 ) : toset ([])
3426
@@ -53,16 +45,14 @@ resource "aws_ssoadmin_permission_set" "permission_set" {
5345}
5446
5547resource "aws_ssoadmin_managed_policy_attachment" "attachment" {
56- for_each = local. enable_sso ? {
57- for attachment in flatten ([
58- for permission_set_name , permission_set in local . sso_permission_sets : {
59- for managed_policy_name in lookup (permission_set, " managed_policies" , []) : " ${ permission_set_name } _${ managed_policy_name } " => {
60- permission_set_name = permission_set_name
61- managed_policy_name = managed_policy_name
62- }
48+ for_each = local. enable_sso ? merge ([
49+ for permission_set_name , permission_set in local . sso_permission_sets : {
50+ for managed_policy_name in permission_set [" managed_policies" ] : " ${ permission_set_name } _${ managed_policy_name } " => {
51+ permission_set_name = permission_set_name
52+ managed_policy_name = managed_policy_name
6353 }
64- ]) : keys (attachment)[ 0 ] => attachment[ keys (attachment)[ 0 ]]
65- } : {}
54+ }
55+ ] ... ) : {}
6656
6757 instance_arn = tolist (data. aws_ssoadmin_instances . ssoadmin_instances . arns )[0 ]
6858 managed_policy_arn = " arn:aws:iam::aws:policy/${ each . value [" managed_policy_name" ]} "
@@ -82,21 +72,19 @@ resource "aws_ssoadmin_permission_set_inline_policy" "policy" {
8272}
8373
8474resource "aws_ssoadmin_account_assignment" "group_assignment" {
85- for_each = local. enable_sso ? {
86- for assignment in flatten ([
87- for unit_name , unit in local . organization_config [" units" ] : [
88- for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : [
89- for group_name , group_assignments in lookup (local. organization_config [" units" ][unit_name ][" accounts" ][account_name ], " group_assignments" , {}) : {
90- for permission_set in group_assignments [" permission_sets" ] : " ${ account_name } _${ group_name } _${ permission_set } " => {
91- account_name = account_name
92- group_name = group_name
93- permission_set = permission_set
94- }
75+ for_each = local. enable_sso ? merge (flatten ([
76+ for unit_name , unit in local . organization_config [" units" ] : [
77+ for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : [
78+ for group_name , group_assignments in lookup (local. organization_config [" units" ][unit_name ][" accounts" ][account_name ], " group_assignments" , {}) : {
79+ for permission_set in group_assignments [" permission_sets" ] : " ${ account_name } _${ group_name } _${ permission_set } " => {
80+ account_name = account_name
81+ group_name = group_name
82+ permission_set = permission_set
9583 }
96- ]
84+ }
9785 ]
98- ]) : keys (assignment)[ 0 ] => assignment[ keys (assignment)[ 0 ]]
99- } : {}
86+ ]
87+ ]) ... ) : {}
10088
10189 instance_arn = aws_ssoadmin_permission_set. permission_set [each . value [" permission_set" ]]. instance_arn
10290 permission_set_arn = aws_ssoadmin_permission_set. permission_set [each . value [" permission_set" ]]. arn
@@ -109,21 +97,19 @@ resource "aws_ssoadmin_account_assignment" "group_assignment" {
10997}
11098
11199resource "aws_ssoadmin_account_assignment" "user_assignment" {
112- for_each = local. enable_sso ? {
113- for assignment in flatten ([
114- for unit_name , unit in local . organization_config [" units" ] : [
115- for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : [
116- for user_name , user_assignments in lookup (local. organization_config [" units" ][unit_name ][" accounts" ][account_name ], " user_assignments" , {}) : {
117- for permission_set in user_assignments [" permission_sets" ] : " ${ account_name } _${ user_name } _${ permission_set } " => {
118- account_name = account_name
119- user_name = user_name
120- permission_set = permission_set
121- }
100+ for_each = local. enable_sso ? merge (flatten ([
101+ for unit_name , unit in local . organization_config [" units" ] : [
102+ for account_name in keys (local. organization_config [" units" ][unit_name ][" accounts" ]) : [
103+ for user_name , user_assignments in lookup (local. organization_config [" units" ][unit_name ][" accounts" ][account_name ], " user_assignments" , {}) : {
104+ for permission_set in user_assignments [" permission_sets" ] : " ${ account_name } _${ user_name } _${ permission_set } " => {
105+ account_name = account_name
106+ user_name = user_name
107+ permission_set = permission_set
122108 }
123- ]
109+ }
124110 ]
125- ]) : keys (assignment)[ 0 ] => assignment[ keys (assignment)[ 0 ]]
126- } : {}
111+ ]
112+ ]) ... ) : {}
127113
128114 instance_arn = aws_ssoadmin_permission_set. permission_set [each . value [" permission_set" ]]. instance_arn
129115 permission_set_arn = aws_ssoadmin_permission_set. permission_set [each . value [" permission_set" ]]. arn
0 commit comments