ロール"OrganizationAccountAccessRole"の作成で利用する信頼ポリシードキュメントを作成します。
サービス"<>"にロールの利用を許可します。
手順に必要な設定値を変数に格納をします。
0.1. プリンシパルアカウントID
プリンシパルアカウントIDを指定します。
変数の設定: DIR_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${HOME}/tmp-handson-cli-organizations" 変数の設定: FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${DIR_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID}/handson-cli-organizations-organizations-account-id-parent.txt" \ && echo ${FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID} 結果(例): ${HOME}/tmp-handson-cli-organizations/handson-cli-organizations-organizations-account-id-parent.txt コマンド: source ${FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID} 変数の設定: IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${ORGANIZATIONS_ACCOUNT_ID_PARENT}" \ && echo ${IAM_ROLE_PRINCIPAL_ACCOUNT_ID} 結果(例): XXXXXXXXXXXX
変数の設定:
DIR_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${HOME}/tmp-handson-cli-organizations"
FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${DIR_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID}/handson-cli-organizations-organizations-account-id-parent.txt" \ && echo ${FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID}
結果(例):
${HOME}/tmp-handson-cli-organizations/handson-cli-organizations-organizations-account-id-parent.txt
コマンド:
source ${FILE_TMP_IAM_ROLE_PRINCIPAL_ACCOUNT_ID}
IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${ORGANIZATIONS_ACCOUNT_ID_PARENT}" \ && echo ${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}
XXXXXXXXXXXX
0.2. 信頼ポリシー用ドキュメントディレクトリ
信頼ポリシードキュメント用ディレクトリを指定します。
変数の設定: DIR_IAM_ROLE_DOC="${HOME}/conf-handson-cli-organizations"
DIR_IAM_ROLE_DOC="${HOME}/conf-handson-cli-organizations"
ディレクトリが存在することを確認し、存在しない場合は作成します。
コマンド: 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}
(出力なし)
0.3. 信頼ポリシードキュメントファイル名
信頼ポリシードキュメント名を指定します。
変数の設定: IAM_ROLE_DOC_NAME='OrganizationAccountAccessRole'
IAM_ROLE_DOC_NAME='OrganizationAccountAccessRole'
信頼ポリシードキュメントのファイル名を指定します。
変数の設定: FILE_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}/${IAM_ROLE_DOC_NAME}.json" \ && echo ${FILE_IAM_ROLE_DOC} 結果(例): ${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json
FILE_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}/${IAM_ROLE_DOC_NAME}.json" \ && echo ${FILE_IAM_ROLE_DOC}
${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 1. IAM_ROLE_PRINCIPAL_ACCOUNT_ID:"<プリンシパルAWSアカウントID>" IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}" # 2. DIR_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations" DIR_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}" # 3. FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" END
変数の確認:
cat << END # 1. IAM_ROLE_PRINCIPAL_ACCOUNT_ID:"<プリンシパルAWSアカウントID>" IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}" # 2. DIR_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations" DIR_IAM_ROLE_DOC="${DIR_IAM_ROLE_DOC}" # 3. FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
信頼ポリシードキュメントの作成
信頼ポリシードキュメントを作成します。
変数の確認: cat << END # FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" # IAM_ROLE_PRINCIPAL_ACCOUNT_ID:"<プリンシパルAWSアカウントID>" IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}" END コマンド: cat << EOF > ${FILE_IAM_ROLE_DOC} { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}:root" }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] } EOF cat ${FILE_IAM_ROLE_DOC} 結果(例): { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::<プリンシパルAWSアカウントID>:root" }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] } JSONファイルを作成したら、フォーマットが壊れていないか必ず確認します。 エラーが出力されなければOKです。
cat << END # FILE_IAM_ROLE_DOC:"${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json" FILE_IAM_ROLE_DOC="${FILE_IAM_ROLE_DOC}" # IAM_ROLE_PRINCIPAL_ACCOUNT_ID:"<プリンシパルAWSアカウントID>" IAM_ROLE_PRINCIPAL_ACCOUNT_ID="${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}" END
cat << EOF > ${FILE_IAM_ROLE_DOC} { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::${IAM_ROLE_PRINCIPAL_ACCOUNT_ID}:root" }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] } EOF cat ${FILE_IAM_ROLE_DOC}
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::<プリンシパルAWSアカウントID>:root" }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }
JSONファイルを作成したら、フォーマットが壊れていないか必ず確認します。
エラーが出力されなければOKです。
「信頼ポリシードキュメント"${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json"が存在する。」ことを確認します。
コマンド: ls ${FILE_IAM_ROLE_DOC} 結果(例): ${HOME}/conf-handson-cli-organizations/OrganizationAccountAccessRole.json
ls ${FILE_IAM_ROLE_DOC}