- terraform
- tfstateファイルを保存
- deployment
- デプロイ関連のファイルを保存
- temporary
- 一時ファイルを保存(公開される)
- s3-log
- S3のログを保存
- cloud-trail
- CloudTrailのログを保存
ACLごとにざっくりしたグルーピングをする。
- Internal
- 非公開ファイルを保存するグループ
- External
- 公開ファイルを保存するグループ
- Log
- 各種ログ(S3のログ以外)を保存するグループ
- S3Log
- S3のログを保存するグループ
想定している環境を定義する。
- Administration
- 管理者用環境
- Production
- 本番環境
バケット名は <identifier>-<suffix>
という形式とする。
バケットの用途を説明する任意の識別子。
バケット名はグローバルで一意にする必要があるため、接尾辞を付与する。
接尾辞はAWSアカウントIDのMD5の先頭12文字とする。
また、このs3_suffixは、ローカルマシンの環境変数から取得することで、 バージョン管理しなくても済むようにしている。
グローバルで一意であるという性質上、バケット名が第三者に知られた上、 アクセス制御がミスっていると、不正にアクセスされるため、そのリスクを軽減する。
ちなみに、12文字というのは、AWSのCloudFormationで S3バケットを作成した時に付与されるランダム文字列の長さと同じである。
トラップ回避のため、以下のルールを守ること。
- 文字列長は 3~63
- 小文字の英文字、数字、およびハイフン
-
のみ使う - ピリオド
.
、アンダースコア_
はハマる可能性があるため使わない - バケット名の先頭及び末尾は、小文字の英文字または数字にする
その他細かい注意点については、下記を参照。
- Amazon S3 の Bucket 命名ルールについて
- http://dev.classmethod.jp/cloud/amazon-s3-bucket-name-rule/
- S3のバケット名はよく考えて命名しましょう!
- http://blog.dateofrock.com/2012/02/s3.html