処理の実行
Lambda関数のARNを取得します。
コマンド:
LAMBDA_FUNCTION_ARN=$( \
aws lambda get-function \
--function-name ${LAMBDA_FUNCTION_NAME} \
--query 'Configuration.FunctionArn' \
--output text \
) \
&& echo ${LAMBDA_FUNCTION_ARN}
結果(例):
arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-lambda-boto3-ec2-authorize-function
IAMポリシードキュメントを作成します。
変数の確認:
cat << EOF
# FILE_IAM_POLICY_DOC:"${HOME}/environment/conf-handson-cli-lambda/LambdaInvoke-handson-cli-lambda-boto3-ec2-authorize-function-policy.json"
FILE_IAM_POLICY_DOC="${FILE_IAM_POLICY_DOC}"
# LAMBDA_FUNCTION_ARN:"arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-lambda-boto3-ec2-authorize-function"
LAMBDA_FUNCTION_ARN="${LAMBDA_FUNCTION_ARN}"
EOF
コマンド:
cat << EOF > ${FILE_IAM_POLICY_DOC}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"
],
"Resource": "${LAMBDA_FUNCTION_ARN}"
}
]
}
EOF
cat ${FILE_IAM_POLICY_DOC}
結果(例):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"
],
"Resource": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-lambda-boto3-ec2-authorize-function"
}
]
}
JSONファイルを作成したら、フォーマットが壊れてないか必ず確認します。
コマンド:
cat ${FILE_IAM_POLICY_DOC} \
| python3 -m json.tool \
> /dev/null
結果(例):
完了確認
「IAMポリシードキュメント"${HOME}/environment/conf-handson-cli-lambda/LambdaInvoke-handson-cli-lambda-boto3-ec2-authorize-function-policy.json"が存在する。」ことを確認します。
コマンド:
ls ${FILE_IAM_POLICY_DOC}
結果(例):
${HOME}/environment/conf-handson-cli-lambda/LambdaInvoke-handson-cli-lambda-boto3-ec2-authorize-function-policy.json