処理の実行
IAMインスタンスプロファイルのパスを取得します。
コマンド:
IAM_INSTANCE_PROFILE_PATH=$( \
aws iam get-instance-profile \
--instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
--query 'InstanceProfile.Path' \
--output text \
) \
&& echo ${IAM_INSTANCE_PROFILE_PATH}
結果(例):
IAMロール名を取得します。
コマンド:
IAM_ROLE_NAME=$( \
aws iam get-instance-profile \
--instance-profile-name ${IAM_INSTANCE_PROFILE_NAME} \
--query 'InstanceProfile.Roles[].RoleName' \
--output text \
) \
&& echo ${IAM_ROLE_NAME}
結果(例):
handson-cloud9-environment-role
IAMポリシーのARNを取得します。
変数の設定:
IAM_POLICY_ARN=$( \
aws iam list-policies \
--scope AWS \
--max-items 1000 \
--query "Policies[?PolicyName==\`${IAM_POLICY_NAME}\`].Arn" \
--output text \
) \
&& echo "${IAM_POLICY_ARN}"
結果(例):
arn:aws:iam::aws:policy/AmazonEC2FullAccess
IAMポリシーをデタッチします。
変数の確認:
cat << END
# IAM_ROLE_NAME:"handson-cloud9-environment-role"
IAM_ROLE_NAME="${IAM_ROLE_NAME}"
# IAM_POLICY_ARN:"arn:aws:iam::aws:policy/AmazonEC2FullAccess"
IAM_POLICY_ARN="${IAM_POLICY_ARN}"
END
コマンド:
aws iam detach-role-policy \
--role-name ${IAM_ROLE_NAME} \
--policy-arn ${IAM_POLICY_ARN}
結果(例):
完了確認
「インスタンスプロファイル"handson-cloud9-instance-profile"がアタッチされているIAMロールにIAMポリシー"AmazonEC2FullAccess"がアタッチされていない。」ことを確認します。
コマンド:
aws iam list-attached-role-policies \
--role-name ${IAM_ROLE_NAME} \
--query "AttachedPolicies[?PolicyName == \`${IAM_POLICY_NAME}\`].PolicyName" \
--output text
結果(例):