gsutilでAmazon S3にファイルを置く方法
記事に広告リンクを含む場合があります。
Page content
gsutilでAmazon S3にファイルを置く方法を紹介します。
最低限必要となる権限がAWS CLIでコピーする場合よりも多くなるので要注意です。
gsutilのコマンド
gsutilでAmazon S3へファイルをコピーする際は、gsutilのcpコマンドを使用します。
ポイント
-
AWSのアクセスキーとシークレットキーを指定する
-oオプションを利用すると実行時に使用するキーを指定できるので、同一環境で複数のキーを使い分けることができます。 -
署名バージョン4の設定を追加する
2020年6月24日以前に作成されたバケットでは不要のこともあるようですが、こちらの指定が推奨のようです。
Amazon S3 アップデート — SigV2 の廃止時期、延期と変更 -
S3側は配置先のファイル名まで指定する
ファイルを配置したいパスの指定のみでは配置できませんでした。 -
コマンド例
gsutil -o 'Credentials:aws_access_key_id=XXX' \ -o 'Credentials:aws_secret_access_key=XXX' \ -o 's3:host=s3.XXX.amazonaws.com' \ -o 's3:use-sigv4=True' cp test.txt s3://XXX/test.txt
cpコマンドの説明とグローバルオプション
AWS側で必要な権限
-
PutObject
Amazon S3へファイルを配置するために必須の権限です。
こちらはAWS CLIでコピーする場合でも同様です。 -
ListBucket
gsutilのcpコマンドでは、PutObject権限だけではAmazon S3にファイルを配置することができませんでした。
cpコマンド実行時の処理の中でListObject APIを呼ぶため、ListBucket権限も必要となるようです。
(※バージョンによって異なる可能性があります)