AWS CLI を使って S3 バケットの作成、設定を行う

AWS

はじめに

AWS CLI で S3 を操作する場合は主に s3 コマンドと s3api コマンドの二つの方法があります。(s3control コマンドもありますが、これは主にアカウント単位での設定に使用されます)
s3api コマンドは S3 API への直接的なアクセスが可能で、高レベルの s3 コマンドでは公開されていない一部の操作を可能になります。
本記事では、s3api コマンドを使用して、バケットの作成および設定を行う方法についてまとめます。

対象者

この記事は下記のような人を対象にしています。

  • AWS CLI で S3 バケットの作成や設定を行いたい人

作成、設定を行うシェルスクリプト

以下のシェルスクリプトを実行することで、S3バケットの作成および、バージョニング、バプリックアクセスブロック、デフォルト暗号化の設定を行うことができます。
実行時の引数として、バケット名、作成するリージョンを指定します。

BUCKET_NAME=$1
REGION=${2:ap-northeast-1}

# バケットを作成する
aws s3api create-bucket --bucket ${BUCKET_NAME} --region ap-northeast-1 --create-bucket-configuration LocationConstraint=${REGION}

# バージョニングを有効化する
aws s3api put-bucket-versioning --bucket ${BUCKET_NAME} --versioning-configuration Status=Enabled
# バージョニングが有効になっていることを確認する
aws s3api get-bucket-versioning --bucket ${BUCKET_NAME}

# パブリックアクセスブロックを有効化する
aws s3api put-public-access-block --bucket ${BUCKET_NAME} --public-access-block-configuration BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
# パブリックアクセスブロックが有効化になっていることを確認する
aws s3api get-public-access-block --bucket ${BUCKET_NAME}

# デフォルトの暗号化を有効化する(SSE-S3)
aws s3api put-bucket-encryption --bucket ${BUCKET_NAME} --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'
# 暗号化設定を確認する
aws s3api get-bucket-encryption --bucket ${BUCKET_NAME}

おわりに

本記事では、s3api コマンドを使用して、バケットの作成および設定を行う方法についてまとめました。この記事がどなたかの参考になれば幸いです。

参考

コメント