のぴぴのメモ

自分用のLinuxとかの技術メモ

アカウントに対してS3 block public accessをCLIで設定してみた

AWS CLIを利用してS3のパブリックアクセス ブロックを設定しようとしたら、設定対象によってCLIのコマンドが異なるという面倒な仕様だったのでメモを書いておきます。またAccess Pointは、Access Pointの作成時しかパブリックアクセス ブロックの設定ができない点は留意が必要です。

  • パブリックアクセス ブロックのCLI設定
    • アカウントに対して設定: aws s3control put-public-access-blockで設定
    • バケットに対して設定: aws s3api put-public-access-blockで設定
    • Access Pointに対して設定 aws s3control create-access-pointAccess Point作成時に設定(作成後の変更不可!!)

アカウントに対してパブリックアクセス ブロックを設定するCLI手順

PROFILE=<環境に合わせて設定。デフォルトの場合は"default"を指定>

ACCOUNTID="$(aws --profile ${PROFILE} --output text sts get-caller-identity --query 'Account')"

JSON='{
    "BlockPublicAcls": true,
    "IgnorePublicAcls": true,
    "BlockPublicPolicy": true,
    "RestrictPublicBuckets": true
}'

aws --profile ${PROFILE} s3control put-public-access-block --account-id ${ACCOUNTID} --public-access-block-configuration "${JSON}"