S3バケット"handson-cli-s3-website-logging-website-XXXXXXXXXXXX"のGetObjectを許可するバケットポリシを作成します。
作業に必要なパラメータを変数に格納をします。
1. S3バケット名
S3バケット名を指定します。
変数の設定: S3_BUCKET_PREFIX='handson-cli-s3-website-logging-website' コマンド: AWS_ID=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${AWS_ID} 結果(例): XXXXXXXXXXXX 変数の設定: S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${AWS_ID}" \ && echo ${S3_BUCKET_NAME} 結果(例): handson-cli-s3-website-logging-website-XXXXXXXXXXXX
変数の設定:
S3_BUCKET_PREFIX='handson-cli-s3-website-logging-website'
コマンド:
AWS_ID=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${AWS_ID}
結果(例):
XXXXXXXXXXXX
S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${AWS_ID}" \ && echo ${S3_BUCKET_NAME}
handson-cli-s3-website-logging-website-XXXXXXXXXXXX
2. バケットポリシファイル名
バケットポリシファイル用ディレクトリを指定します。
変数の設定: DIR_S3_BUCKET_POLICY_DOC="${HOME}/environment/conf-handson-cli-s3-website-logging"
DIR_S3_BUCKET_POLICY_DOC="${HOME}/environment/conf-handson-cli-s3-website-logging"
バケットポリシファイル名を指定します。
変数の設定: FILE_S3_BUCKET_POLICY_DOC="${DIR_S3_BUCKET_POLICY_DOC}/${S3_BUCKET_NAME}-s3-bucket-policy.json" \ && echo ${FILE_S3_BUCKET_POLICY_DOC} 結果(例): ${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json
FILE_S3_BUCKET_POLICY_DOC="${DIR_S3_BUCKET_POLICY_DOC}/${S3_BUCKET_NAME}-s3-bucket-policy.json" \ && echo ${FILE_S3_BUCKET_POLICY_DOC}
${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json
各変数に正しいパラメータ値が格納されていることを確認します。
変数の確認: cat << END # 1. S3_BUCKET_NAME:"handson-cli-s3-website-logging-website-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # 2. FILE_S3_BUCKET_POLICY_DOC:"${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json" FILE_S3_BUCKET_POLICY_DOC="${FILE_S3_BUCKET_POLICY_DOC}" END
変数の確認:
cat << END # 1. S3_BUCKET_NAME:"handson-cli-s3-website-logging-website-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # 2. FILE_S3_BUCKET_POLICY_DOC:"${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json" FILE_S3_BUCKET_POLICY_DOC="${FILE_S3_BUCKET_POLICY_DOC}" END
バケットポリシーを適用します。
変数の確認: cat << ETX # S3_BUCKET_NAME:"handson-cli-s3-website-logging-website-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # FILE_S3_BUCKET_POLICY_DOC:"${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json" FILE_S3_BUCKET_POLICY_DOC="${FILE_S3_BUCKET_POLICY_DOC}" ETX コマンド: aws s3api put-bucket-policy \ --bucket ${S3_BUCKET_NAME} \ --policy file://${FILE_S3_BUCKET_POLICY_DOC} 結果(例): (出力なし)
cat << ETX # S3_BUCKET_NAME:"handson-cli-s3-website-logging-website-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # FILE_S3_BUCKET_POLICY_DOC:"${HOME}/environment/conf-handson-cli-s3-website-logging/handson-cli-s3-website-logging-website-XXXXXXXXXXXX-s3-bucket-policy.json" FILE_S3_BUCKET_POLICY_DOC="${FILE_S3_BUCKET_POLICY_DOC}" ETX
aws s3api put-bucket-policy \ --bucket ${S3_BUCKET_NAME} \ --policy file://${FILE_S3_BUCKET_POLICY_DOC}
(出力なし)
「S3バケット"handson-cli-s3-website-logging-website-XXXXXXXXXXXX"のバケットポリシーが存在する。」ことを確認します。
コマンド: aws s3api get-bucket-policy \ --bucket ${S3_BUCKET_NAME} 結果(例): { "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AddPerm\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::handson-cli-s3-website-logging-website-XXXXXXXXXXXX/*\"}]}" }
aws s3api get-bucket-policy \ --bucket ${S3_BUCKET_NAME}
{ "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AddPerm\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::handson-cli-s3-website-logging-website-XXXXXXXXXXXX/*\"}]}" }