設定値の確認
各変数に正しい設定値が格納されていることを確認します。
変数の確認:
cat << END
# 1. IAM_USER_NAME:"handson-iam-authentication-user"
IAM_USER_NAME="${IAM_USER_NAME}"
# 2. DIR_IAM_ROLE_DOC:"${HOME}/conf-handson-iam-authentication"
DIR_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}"
# 3. FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-iam-authentication/handson-iam-authentication-user-role.json"
FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}"
END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。
もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
処理の実行
前処理
処理対象の状態確認
主処理に必要な情報の取得
IAMユーザーのARNを取得します。
コマンド:
iam_user_arn=$( \
aws iam list-users \
--query "Users[?UserName == \`${IAM_USER_NAME}\` ].Arn" \
--output text \
) \
&& echo ${iam_user_arn}
結果(例):
arn:aws:iam::XXXXXXXXXXXX:user/handson-iam-authentication-user
主処理
信頼ポリシードキュメントを作成します。
変数の確認:
cat << END
# FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-iam-authentication/handson-iam-authentication-user-role.json"
FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}"
# iam_user_arn:"arn:aws:iam::XXXXXXXXXXXX:user/handson-iam-authentication-user"
iam_user_arn="${iam_user_arn}"
END
コマンド:
cat << EOF > ${FILE_IAM_ROLE_DOC}
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "${iam_user_arn}"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
cat ${FILE_IAM_ROLE_DOC}
結果(例):
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/handson-iam-authentication-user"
},
"Effect": "Allow",
"Sid": ""
}
]
}
JSONファイルを作成したら、フォーマットが壊れてないか必ず確認します。
コマンド:
cat ${FILE_IAM_ROLE_DOC} \
| python3 -m json.tool \
> /dev/null
結果(例):
後処理
完了条件の確認
「信頼ポリシードキュメント"${HOME}/conf-handson-iam-authentication/handson-iam-authentication-user-role.json"が存在する。」ことを確認します。
コマンド:
結果(例):
/home/cloudshell-user/conf-handson-iam-authentication/handson-iam-authentication-user-role.json