ロール"handson-cli-iam-role-role"のプリンシパルを定義する信頼ポリシードキュメントを作成します。
サービス"lambda.amazonaws.com"にロールの利用を許可します。
手順に必要な設定値を変数に格納をします。
ロールの利用を許可するAWSサービスを指定します。
変数の設定: IAM_ROLE_PRINCIPAL='lambda.amazonaws.com'
変数の設定:
IAM_ROLE_PRINCIPAL='lambda.amazonaws.com'
信頼ポリシードキュメント用ディレクトリを指定します。
変数の設定: DIR_IAM_ROLE_DOC="${HOME}/environment/conf-handson-cli-iam-role"
DIR_IAM_ROLE_DOC="${HOME}/environment/conf-handson-cli-iam-role"
ディレクトリが存在することを確認し、存在しない場合は作成します。
コマンド: ls -d ${DIR_IAM_ROLE_DOC} > /dev/null 2>&1 \ || mkdir -p ${DIR_IAM_ROLE_DOC} 結果(例): (出力なし)
コマンド:
ls -d ${DIR_IAM_ROLE_DOC} > /dev/null 2>&1 \ || mkdir -p ${DIR_IAM_ROLE_DOC}
結果(例):
(出力なし)
信頼ポリシードキュメントのファイル名を指定します。
変数の設定: IAM_ROLE_DOC_NAME='handson-cli-iam-role-role' 変数の設定: FILE_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}/${IAM_ROLE_DOC_NAME}.json" \ && echo ${FILE_IAM_ROLE_DOC} 結果(例): ${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json
IAM_ROLE_DOC_NAME='handson-cli-iam-role-role'
FILE_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}/${IAM_ROLE_DOC_NAME}.json" \ && echo ${FILE_IAM_ROLE_DOC}
${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 1. IAM_ROLE_PRINCIPAL:"lambda.amazonaws.com" IAM_ROLE_PRINCIPAL="${IAM_ROLE_PRINCIPAL}" # 2. FILE_IAM_ROLE_DOC:"${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" END
変数の確認:
cat << END # 1. IAM_ROLE_PRINCIPAL:"lambda.amazonaws.com" IAM_ROLE_PRINCIPAL="${IAM_ROLE_PRINCIPAL}" # 2. FILE_IAM_ROLE_DOC:"${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
信頼ポリシードキュメントを作成します。
変数の確認: cat << END # FILE_IAM_ROLE_DOC:"${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" # IAM_ROLE_PRINCIPAL:"lambda.amazonaws.com" IAM_ROLE_PRINCIPAL="${IAM_ROLE_PRINCIPAL}" END コマンド: cat << EOF > ${FILE_IAM_ROLE_DOC} { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "${IAM_ROLE_PRINCIPAL}" }, "Effect": "Allow", "Sid": "" } ] } EOF cat ${FILE_IAM_ROLE_DOC} 結果(例): { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "lambda.amazonaws.com" }, "Effect": "Allow", "Sid": "" } ] } JSONファイルを作成したら、フォーマットが壊れてないか必ず確認します。 コマンド: cat ${FILE_IAM_ROLE_DOC} \ | python3 -m json.tool \ > /dev/null 結果(例): (出力なし) 注釈 エラーが出力されなければOKです。
cat << END # FILE_IAM_ROLE_DOC:"${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" # IAM_ROLE_PRINCIPAL:"lambda.amazonaws.com" IAM_ROLE_PRINCIPAL="${IAM_ROLE_PRINCIPAL}" END
cat << EOF > ${FILE_IAM_ROLE_DOC} { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "${IAM_ROLE_PRINCIPAL}" }, "Effect": "Allow", "Sid": "" } ] } EOF cat ${FILE_IAM_ROLE_DOC}
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "lambda.amazonaws.com" }, "Effect": "Allow", "Sid": "" } ] }
JSONファイルを作成したら、フォーマットが壊れてないか必ず確認します。
cat ${FILE_IAM_ROLE_DOC} \ | python3 -m json.tool \ > /dev/null
注釈
エラーが出力されなければOKです。
「信頼ポリシードキュメント"${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json"が存在する。」ことを確認します。
コマンド: ls ${FILE_IAM_ROLE_DOC} 結果(例): ${HOME}/environment/conf-handson-cli-iam-role/handson-cli-iam-role-role.json
ls ${FILE_IAM_ROLE_DOC}