Control Tower 0.8.1
View Source
Release Notes
SSO Groups
This module is only necessary when using Identity Providers that do not support group synchronization with AWS. Currently, Google is the only Identity Provider we are aware of that requires this module.
Example Usage:
#terragrunt.hcl
#Depend on any permission sets managed using terraform
dependency "full_access" {
config_path = "../sso-permission-sets/full-access"
}
include {
path = find_in_parent_folders()
}
locals {
source_base_url = "git::git@github.com:gruntwork-io/terraform-aws-control-tower.git///modules/aws-sso/sso-groups"
common_vars = read_terragrunt_config(find_in_parent_folders("common.hcl"))
account_ids = local.common_vars.locals.account_ids
#Create one or more groups
admin_group = [
"grunty@gruntwork.io",
#...
]
}
inputs = {
#Map the groups to any permission sets they should belong to
group_to_accounts_and_permissions = {
"GW Ops Admins Prod" = {
users = local.admin_group
account_id = local.account_ids.prod
permission_set_arn = dependency.full_access.outputs.arn
permission_set_name = dependency.full_access.outputs.name
},
#...
}
}
Sample Usage
- Terraform
- Terragrunt
main.tf
# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S SSO-GROUPS MODULE
# ------------------------------------------------------------------------------------------------------
module "sso_groups" {
source = "git::git@github.com:gruntwork-io/terraform-aws-control-tower.git//modules/aws-sso/sso-groups?ref=v0.8.1"
# ----------------------------------------------------------------------------------------------------
# REQUIRED VARIABLES
# ----------------------------------------------------------------------------------------------------
group_to_accounts_and_permissions = <map(object(
users = list(string)
account_id = string
permission_set_arn = string
permission_set_name = string
))>
# ----------------------------------------------------------------------------------------------------
# OPTIONAL VARIABLES
# ----------------------------------------------------------------------------------------------------
# ID of the SSO Admin Identity Store where all the users and groups are
# stored. This information will be dynamically looked up when set to null.
sso_admin_identity_store_id = null
# ARN of the SSO Admin instance where the Permission Set should be
# provisioned. This instance will be dynamically looked up when set to null.
sso_admin_instance_arn = null
}
terragrunt.hcl
# ------------------------------------------------------------------------------------------------------
# DEPLOY GRUNTWORK'S SSO-GROUPS MODULE
# ------------------------------------------------------------------------------------------------------
terraform {
source = "git::git@github.com:gruntwork-io/terraform-aws-control-tower.git//modules/aws-sso/sso-groups?ref=v0.8.1"
}
inputs = {
# ----------------------------------------------------------------------------------------------------
# REQUIRED VARIABLES
# ----------------------------------------------------------------------------------------------------
group_to_accounts_and_permissions = <map(object(
users = list(string)
account_id = string
permission_set_arn = string
permission_set_name = string
))>
# ----------------------------------------------------------------------------------------------------
# OPTIONAL VARIABLES
# ----------------------------------------------------------------------------------------------------
# ID of the SSO Admin Identity Store where all the users and groups are
# stored. This information will be dynamically looked up when set to null.
sso_admin_identity_store_id = null
# ARN of the SSO Admin instance where the Permission Set should be
# provisioned. This instance will be dynamically looked up when set to null.
sso_admin_instance_arn = null
}
Reference
- Inputs
- Outputs
Required
group_to_accounts_and_permissions
map(object(…))map(object({
# This is a list of user emails
users = list(string)
# Account ID
account_id = string
# This will be the arn of the Permission set
permission_set_arn = string
permission_set_name = string
}))
Optional
ID of the SSO Admin Identity Store where all the users and groups are stored. This information will be dynamically looked up when set to null.
null
sso_admin_instance_arn
stringARN of the SSO Admin instance where the Permission Set should be provisioned. This instance will be dynamically looked up when set to null.
null