Skip to content

Instantly share code, notes, and snippets.

@atheiman
Created October 27, 2023 17:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save atheiman/256e5cb1a4cbc6d0fef5d2f4ff373629 to your computer and use it in GitHub Desktop.
Save atheiman/256e5cb1a4cbc6d0fef5d2f4ff373629 to your computer and use it in GitHub Desktop.
AWS Identity Center (SSO) list all assignments
IDENTITY_CENTER_INSTANCE_ARN="$(aws sso-admin list-instances --output text --query 'Instances[0].InstanceArn')"
IDENTITY_STORE_ID="$(aws sso-admin list-instances --output text --query 'Instances[0].IdentityStoreId')"
for acctid in $(aws organizations list-accounts --query 'Accounts[][Id]' --output text); do
echo "acct:$(aws organizations describe-account --account-id "$acctid" --output text --query 'Account.[Id, Email, Name]')"
for psarn in $(aws sso-admin list-permission-sets-provisioned-to-account --account-id "$acctid" --instance-arn "$IDENTITY_CENTER_INSTANCE_ARN" --output text --query 'PermissionSets[]'); do
echo " permissionset:$(aws sso-admin describe-permission-set --instance-arn "$IDENTITY_CENTER_INSTANCE_ARN" --permission-set-arn "$psarn" --output text --query 'PermissionSet.[Name]')"
for groupid in $(aws sso-admin list-account-assignments --account-id "$acctid" --instance-arn "$IDENTITY_CENTER_INSTANCE_ARN" --permission-set-arn "$psarn" --output text --query 'AccountAssignments[?PrincipalType==`GROUP`].[PrincipalId]'); do
echo " group:$(aws identitystore describe-group --identity-store-id "$IDENTITY_STORE_ID" --group-id "$groupid" --output text --query 'DisplayName')"
done
for userid in $(aws sso-admin list-account-assignments --account-id "$acctid" --instance-arn "$IDENTITY_CENTER_INSTANCE_ARN" --permission-set-arn "$psarn" --output text --query 'AccountAssignments[?PrincipalType==`USER`].[PrincipalId]'); do
echo " user:$(aws identitystore describe-user --identity-store-id "$IDENTITY_STORE_ID" --user-id "$userid" --output text --query 'UserName')"
done
done
echo
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment