処理の実行
インスタンスのARNを取得します。
コマンド:
sso_admin_instance_arn=$( \
aws sso-admin list-instances \
--query "Instances[].InstanceArn" \
--output text \
) \
&& echo ${sso_admin_instance_arn}
結果(例):
arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx
許可セットのARNを取得します。
コマンド:
for i in $(
aws sso-admin list-permission-sets \
--instance-arn ${sso_admin_instance_arn} \
--query 'PermissionSets[]' \
--output text \
); do
name=$(
aws sso-admin describe-permission-set \
--instance-arn ${sso_admin_instance_arn} \
--permission-set-arn ${i} \
--query 'PermissionSet.Name' \
--output text
)
if [ ${name}x == ${SSO_ADMIN_PERMISSION_SET_NAME}x ]; then
sso_admin_permission_set_arn=$(
aws sso-admin describe-permission-set \
--instance-arn ${sso_admin_instance_arn} \
--permission-set-arn ${i} \
--query 'PermissionSet.PermissionSetArn' \
--output text
)
fi
done \
&& echo ${sso_admin_permission_set_arn}
結果(例):
arn:aws:sso:::permissionSet/ssoins-xxxxxxxxxxxxxxxx/ps-xxxxxxxxxxxxxxxx
IAMポリシーARNを取得します。
変数の設定:
iam_policy_arn=$( \
aws iam list-policies \
--scope AWS \
--query "Policies[?PolicyName == \`${IAM_POLICY_NAME}\`].Arn" \
--output text \
) \
&& echo "${iam_policy_arn}"
結果(例):
arn:aws:iam::aws:policy/ReadOnlyAccess
許可セットからAWS管理ポリシーのデタッチ
許可セットからAWS管理ポリシーをデタッチします。
変数の確認:
cat << END
# sso_admin_instance_arn:"arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx"
sso_admin_instance_arn="${sso_admin_instance_arn}"
# sso_admin_permission_set_arn:"arn:aws:sso:::permissionSet/ssoins-xxxxxxxxxxxxxxxx/ps-xxxxxxxxxxxxxxxx"
sso_admin_permission_set_arn="${sso_admin_permission_set_arn}"
# iam_policy_arn:"arn:aws:iam::aws:policy/ReadOnlyAccess"
iam_policy_arn="${iam_policy_arn}"
END
コマンド:
aws sso-admin detach-managed-policy-from-permission-set \
--instance-arn ${sso_admin_instance_arn} \
--permission-set-arn ${sso_admin_permission_set_arn} \
--managed-policy-arn ${iam_policy_arn}
結果(例):
完了確認
「SSO Admin許可セット名"handson-cli-iic-permission-set"にAWS管理ポリシー"ReadOnlyAccess"がアタッチされていない。」ことを確認します。
コマンド:
aws sso-admin list-managed-policies-in-permission-set \
--instance-arn ${sso_admin_instance_arn} \
--permission-set-arn ${sso_admin_permission_set_arn} \
--query "AttachedManagedPolicies[?Name == \`${IAM_POLICY_NAME}\`].Name" \
--output text
結果(例):