事前作業. インスタンスプロファイルのIAMロールへのIAMポリシーのアタッチ (CloudShell: ReadOnlyAccess)¶
手順の目的¶
IAMインスタンスプロファイル"handson-cloud9-instance-profile"にアタッチされているIAMロール"handson-cloud9-environment-role"にIAMポリシー"ReadOnlyAccess"をアタッチします。
設定値の指定¶
手順に必要な設定値を変数に格納をします。
1. インスタンスプロファイル名¶
インスタンスプロファイル名を指定します。
変数の設定:
IAM_INSTANCE_PROFILE_NAME='handson-cloud9-instance-profile'
2. IAMポリシー名¶
IAMポリシー名を指定します。
変数の設定:
IAM_POLICY_NAME='ReadOnlyAccess'
設定値の確認¶
各変数に正しい設定値が格納されていることを確認します。
変数の確認:
cat << END # 1. IAM_INSTANCE_PROFILE_NAME:"handson-cloud9-instance-profile" IAM_INSTANCE_PROFILE_NAME="${IAM_INSTANCE_PROFILE_NAME}" # 2. IAM_POLICY_NAME:"ReadOnlyAccess" IAM_POLICY_NAME="${IAM_POLICY_NAME}" END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
処理の実行¶
1. IAMロール名の取得
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
2. IAMポリシーのARN取得
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
3. IAMポリシーのアタッチ
IAMポリシーをアタッチします。
変数の確認:
cat << END # iam_role_name:"handson-cloud9-environment-role" iam_role_name="${iam_role_name}" # iam_policy_arn:"arn:aws:iam::aws:policy/ReadOnlyAccess" iam_policy_arn="${iam_policy_arn}" ENDコマンド:
aws iam attach-role-policy \ --role-name ${iam_role_name} \ --policy-arn ${iam_policy_arn}結果(例):
(出力なし)
完了確認¶
「インスタンスプロファイル"handson-cloud9-instance-profile"がアタッチされているIAMロールにIAMポリシー"ReadOnlyAccess"がアタッチされている。」ことを確認します。
コマンド:
aws iam list-attached-role-policies \ --role-name ${iam_role_name} \ --query "AttachedPolicies[?PolicyName == \`${IAM_POLICY_NAME}\`].PolicyName" \ --output text結果(例):
ReadOnlyAccess
手順の完了¶
(参考) マネジメントコンソールの確認¶
IAMダッシュボード( https://console.aws.amazon.com/iam/home )にアクセスします。
左ペインの"ロール"をクリックします。
ロール一覧(画面)
検索欄にロール名"handson-cloud9-environment-role"を入力して、エンターキーを押します。
ロール名"handson-cloud9-environment-role"をクリックします。
ロール概要(画面)
"アクセス権限"(タブ)をクリックします。
ロール概要/アクセス権限(タブ)
ポリシー名"ReadOnlyAccess"が表示されていることを確認します。