設定値の指定
設定値の指定
手順に必要な設定値を変数に格納をします。
1. CloudFormationリソース名
CloudFormationリソース名を指定します。
変数の設定:
TEMPLATE_CFN_RESOURCE_NAME='Policy0'
2. CloudFormationリソースファイル名
リソースファイル用ディレクトリを指定します。
変数の設定:
DIR_TEMPLATE_CFN_RESOURCE="${HOME}/environment/conf-handson-cli-cfn-iam-Policy/resources"
リソースファイル名を指定します。
変数の設定:
FILE_TEMPLATE_CFN_RESOURCE="${DIR_TEMPLATE_CFN_RESOURCE}/${TEMPLATE_CFN_RESOURCE_NAME}.txt" \
&& echo ${FILE_TEMPLATE_CFN_RESOURCE}
結果(例):
${HOME}/environment/conf-handson-cli-cfn-iam-Policy/resources/Policy0.txt
3. CloudFormationリソース名配列
CloudFormationリソース名配列を指定します。
変数の設定:
ARRAY_TEMPLATE_CFN_RESOURCE_NAMES='User0'
設定値の確認
各変数に正しい設定値が格納されていることを確認しながら保存します。
変数の確認:
cat << END
# 1. TEMPLATE_CFN_RESOURCE_NAME:"Policy0"
TEMPLATE_CFN_RESOURCE_NAME="${TEMPLATE_CFN_RESOURCE_NAME}"
# 2. FILE_TEMPLATE_CFN_RESOURCE:"${HOME}/environment/conf-handson-cli-cfn-iam-Policy/resources/Policy0.txt"
FILE_TEMPLATE_CFN_RESOURCE="${FILE_TEMPLATE_CFN_RESOURCE}"
# 3. ARRAY_TEMPLATE_CFN_RESOURCE_NAMES:"User0"
ARRAY_TEMPLATE_CFN_RESOURCE_NAMES="${ARRAY_TEMPLATE_CFN_RESOURCE_NAMES}"
END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
完了確認
「リソースファイル"${HOME}/environment/conf-handson-cli-cfn-iam-Policy/resources/Policy0.txt"にIAMユーザーリソース名が存在する。」ことを確認します。
コマンド:
count=$( echo ${ARRAY_TEMPLATE_CFN_RESOURCE_NAMES} | wc -w )
cat ${FILE_TEMPLATE_CFN_RESOURCE} \
| grep 'Users:' -A ${count} \
| while read i; do
for j in $(echo "${ARRAY_TEMPLATE_CFN_RESOURCE_NAMES}");do
echo ${i} | grep " ${j}"$
done
done
結果(例):