AWS S3 Bucket 内のオブジェクトの ACL(アクセス権限) を一括で変更する方法
はじめに
AWS S3 Bucket 内のオブジェクトの ACL(アクセス権限) を一括で変更する方法を調べた。
S3のパーミッションの設定を一括変更する | ハックノート の通り
TL;DR
- 事前に
aws
コマンド(AWS CLI) を設定 aws s3 ls --recursive s3://my-bucket/
でバケット内のオブジェクトを再帰的に取得aws s3api put-object-acl --acl private
でパブリックアクセス不可に設定awk
,xargs
と組み合わせて、1件ずつ処理を行う
目次
環境・条件
1 | $ sw_vers |
詳細
S3のパーミッションの設定を一括変更する | ハックノート の通り
パブリック→プライベート
--profile {profile}
は削った。(※aws configure
でセットアップ済み)
--acl private
でプライベートに設定。
1 | $ aws s3 ls --recursive s3://my-bucket/ \ |
実行時間(参考)
19057 件分の変更で 5時間 39分(開始 21:25、終了 03:04)かかった。
1 | $ aws s3 ls --recursive s3://my-bucket/ > items.txt |
プライベート→パブリック
--acl public-read
でパブリックに設定。
※試してない
1 | $ aws s3 ls --recursive s3://my-bucket/ \ |
まとめ
- 事前に
aws
コマンド(AWS CLI) を設定 aws s3 ls --recursive s3://my-bucket/
でバケット内のオブジェクトを再帰的に取得aws s3api put-object-acl --acl private
でパブリックアクセス不可に設定awk
,xargs
と組み合わせて、1件ずつ処理を行う
参考文献
関連記事
- AWS S3 バケットをリネーム(できないので別バケットにコピー)
- Python boto3 で AWS S3 を操作する
- AWS lambda で S3 の画像をリサイズする(チュートリアル)
- Python requests + boto3 で AWS S3 に画像を直接アップロード
- AWS S3 で権限を与えているのに Lambda が Access Denied になる場合
- AWS S3 から Cloud Storage for Firebase にファイルをコピー
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア