AWSのS3バケットの作成、削除、タグ付与、ポリシー設定をコマンドラインから操作する
S3のバケット作成、削除、ポリシー設定をWeb上から操作することが多いです。
Web操作の解説も多いです。
でも、コマンドラインからの実行を解説しているケースはさほど多くないですね。。
S3はバックアップデータ置き場、ログ置き場として使うことが多いが、特に検証時に作っては消し、また作るを繰り返す...
繰り返しが疲れてきたのでコマンドラインでのやり方をまとめてみました。
ここではよく使用される aws s3
コマンドではなく aws s3api
コマンドについてできるだけ触れてみます。
- 1.
aws-cli
(AWSコマンドの利用可能な環境づくり) - 2. S3バケットの作成 (
aws s3api create-bucket
/aws s3 mb
) - 3. S3バケットの一覧表示 (
aws s3api list-buckets
/aws s3 rb
) - 4. S3バケットの削除 (
aws s3api delete-bucket
) - 5. S3バケットにファイルをアップロード (
aws s3 cp
) - 6. S3バケットのファイルを一時的に公開 (
aws s3 presign
) - 7. S3バケットのファイルを読み取り専用で公開 ( `aws s3 pub-object-acl )
- 8. ひとこと
aws-cli
(AWSコマンドの利用可能な環境づくり)
AWSコマンドを使うための環境をDockerを使って構築(Mac/Linux/WindowsでもPythonなしで動くよ) | ゲンゾウ用ポストイット を参照。
上記記事では Mac、Linux、Windowsの環境の差異を無視できるよう、またPythonなしでも動作するように Docker を利用しました。
S3バケットの作成 ( aws s3api create-bucket
/ aws s3 mb
)
aws s3api create-bucket
コマンドを使う。
ここでは genzouw-test-bucket というバケット名で作成してみます。
何度か --create-bucket-configuration
オプション無しで実行してみたが、以下のようなエラーが発生しました。AWS_DEFAULT_REGION
の設定があったとしても指定が必要な模様。
An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.
※ちなみに、以下のコマンドでもいける 。実はこちらの方はリージョンのデフォルト設定が効いてくれるので楽。
S3バケットの一覧表示 ( aws s3api list-buckets
/ aws s3 rb
)
正しくバケットが作成されたかどうかは以下のコマンドを実行すれば確認できます。
※ちなみに、以下のコマンドでもいける
S3バケットの削除 ( aws s3api delete-bucket
)
バケットが不要になった場合は以下のコマンドで削除できます。
※この場合はリージョンの指定はなくても動作します。
※ちなみに、以下のコマンドでもいける
すでにファイルが存在している場合は消せないので、 --force
オプションを付ける。
S3バケットにファイルをアップロード ( aws s3 cp
)
対象バケットにファイルをアップロードしてみます。
アップロードされたファイルが公開されている場合には、以下のURLで閲覧できます。
幸い、 アクセス権限はないよ! と怒られてしまいました。
外部から見えて問題が発生、というケースが最近後をたたないので。
S3バケットのファイルを一時的に公開 ( aws s3 presign
)
維持的に公開する方法があります。
S3バケットのファイルを読み取り専用で公開 ( `aws s3 pub-object-acl )
デフォルトは非公開状態であるバケット上のファイルを公開状態に設定する方法。
ビビリなので、このあとに追加されたファイルまで公開されてしまうことなったりしないか確認してみました。
大丈夫そうです。
ひとこと
検証のためにS3バケットを作って、消して、ファイルを追加してはコマンドだけで何度も行けそう。
負荷テストもできそうです。
頻繁に使うコマンドは、 s3api
じゃなくても s3
コマンドで十分網羅されているようでした。
ディスカッション
コメント一覧
まだ、コメントがありません