ハンズオン(簡易版): AWS JSONポリシー (入門)

2.1. ブロックファイルの作成 (Principal)

手順の目的

Principalブロックのブロックファイルを作成します。

設定値の指定

手順に必要な設定値を変数に格納をします。

1. ブロックファイル用ディレクトリ名

ブロックファイル用ディレクトリ名を指定します。

変数の設定:

DIR_AWS_POLICY_BLOCK_DOC="${HOME}/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block"

ディレクトリが存在することを確認し、存在しない場合は作成します。

コマンド:

ls -d ${DIR_AWS_POLICY_BLOCK_DOC} > /dev/null 2>&1 \
  || mkdir -p ${DIR_AWS_POLICY_BLOCK_DOC}

結果(例):

(出力なし)

2. Principalブロックファイル名

Principalブロックファイル名を指定します。

変数の設定:

FILE_AWS_POLICY_PRINCIPAL_DOC="${DIR_AWS_POLICY_BLOCK_DOC}/Principal.txt" \
  && echo ${FILE_AWS_POLICY_PRINCIPAL_DOC}

結果(例):

/home/cloudshell-user/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block/Principal.txt

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 1. DIR_AWS_POLICY_BLOCK_DOC:"${HOME}/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block"
       DIR_AWS_POLICY_BLOCK_DOC="${DIR_AWS_POLICY_BLOCK_DOC}"
  # 2. FILE_AWS_POLICY_PRINCIPAL_DOC:"${HOME}/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block/Principal.txt"
       FILE_AWS_POLICY_PRINCIPAL_DOC="${FILE_AWS_POLICY_PRINCIPAL_DOC}"

END

各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

Principalブロックファイルを作成します。

変数の確認:

cat << EOF

  # FILE_AWS_POLICY_PRINCIPAL_DOC:"${HOME}/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block/Principal.txt"
    FILE_AWS_POLICY_PRINCIPAL_DOC="${FILE_AWS_POLICY_PRINCIPAL_DOC}"

EOF

コマンド:

cat << EOF > ${FILE_AWS_POLICY_PRINCIPAL_DOC}
  Principal:
    AWS:
    - '111122223333'
EOF

cat ${FILE_AWS_POLICY_PRINCIPAL_DOC}

結果(例):

Principal:
  AWS:
  - '111122223333'

警告

実際のSQSキューにポリシーを適用する場合、AWSアカウントIDを変更してください。

完了確認

「Principalブロックファイル"${HOME}/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block/Principal.txt"が存在する。」ことを確認します。

コマンド:

ls ${FILE_AWS_POLICY_PRINCIPAL_DOC}

結果(例):

/home/cloudshell-user/conf-handson-awspolicy-1st/ResourceBasedPolicy/statement-AllowMessageSendAndReceiveAccount111122223333/block/Principal.txt

手順の完了