diff --git a/terragrunt/org_account/iam_identity_center/locals.tf b/terragrunt/org_account/iam_identity_center/locals.tf index 44d8491d..30be39d7 100644 --- a/terragrunt/org_account/iam_identity_center/locals.tf +++ b/terragrunt/org_account/iam_identity_center/locals.tf @@ -21,6 +21,8 @@ locals { notify_dev_account_id = "800095993820" notify_sandbox_account_id = "891376947407" + superset_production_account_id = "066023111852" + sso_identity_store_id = "d-9d67173bdd" sso_instance_id = "ssoins-8824c710b5ddb452" sso_instance_arn = "arn:aws:sso:::instance/${local.sso_instance_id}" diff --git a/terragrunt/org_account/iam_identity_center/platform_superset_assignments.tf b/terragrunt/org_account/iam_identity_center/platform_superset_assignments.tf new file mode 100644 index 00000000..8756665c --- /dev/null +++ b/terragrunt/org_account/iam_identity_center/platform_superset_assignments.tf @@ -0,0 +1,34 @@ +# +# Accounts: assign permissions +# +locals { + # Superset-Production + superset_production_permission_sets = [ + { + group = aws_identitystore_group.superset_production_admin, + permission_set = data.aws_ssoadmin_permission_set.aws_administrator_access, + }, + { + group = aws_identitystore_group.superset_production_read_only_billing, + permission_set = aws_ssoadmin_permission_set.read_only_billing, + }, + { + group = aws_identitystore_group.superset_production_read_only, + permission_set = data.aws_ssoadmin_permission_set.aws_read_only_access, + } + ] +} + + +resource "aws_ssoadmin_account_assignment" "superset_production" { + for_each = { for perm in local.superset_production_permission_sets : "${perm.group.display_name}-${perm.permission_set.name}" => perm } + + instance_arn = local.sso_instance_arn + permission_set_arn = each.value.permission_set.arn + + principal_id = each.value.group.group_id + principal_type = "GROUP" + + target_id = local.superset_production_account_id + target_type = "AWS_ACCOUNT" +} diff --git a/terragrunt/org_account/iam_identity_center/platform_superset_groups.tf b/terragrunt/org_account/iam_identity_center/platform_superset_groups.tf new file mode 100644 index 00000000..ab5241b4 --- /dev/null +++ b/terragrunt/org_account/iam_identity_center/platform_superset_groups.tf @@ -0,0 +1,20 @@ +# +# Production +# +resource "aws_identitystore_group" "superset_production_admin" { + display_name = "Superset-Production-Admin" + description = "Grants members administrator access to the Superset Production account." + identity_store_id = local.sso_identity_store_id +} + +resource "aws_identitystore_group" "superset_production_read_only_billing" { + display_name = "Superset-Production-Billing-ReadOnly" + description = "Grants members read-only Billing and Cost Explorer access to the Superset Production account." + identity_store_id = local.sso_identity_store_id +} + +resource "aws_identitystore_group" "superset_production_read_only" { + display_name = "Superset-Production-ReadOnly" + description = "Grants members read-only access to the Superset Production account." + identity_store_id = local.sso_identity_store_id +}