バケットの作成
Amazon S3 にデータをアップロードするときは、いずれかの AWS リージョン に S3 バケットを作成しておく必要があります。バケットを作成するときは、バケット名とリージョンを選択します。必要に応じて、このバケットに他のストレージ管理オプションを選択できます。一度バケットを作成したら、そのバケット名またはリージョンを変更することはできません。バケットの命名についてさらに詳しくは、「バケットの名前付け」を参照してください。
バケットを作成する AWS アカウント は、そのバケットを所有します。バケットにはオブジェクトをいくつでもアップロードできます。デフォルトでは、AWS アカウント につき最大で 100 個のバケットを作成できます。さらにバケットが必要な場合は、アカウントのクォータ引き上げリクエストを送信できます。上限緩和を申請する方法については、「AWS 全般のリファレンス」の「AWS のサービス クォータ」を参照してください。
バケットには、オブジェクトをいくつでも保存できます。Amazon S3 バケットに関連する制約と制限のリストについては、「バケットのクォータ、制約、および制限」を参照してください。
S3 オブジェクト所有権は、Amazon S3 バケットレベルの設定で、バケットにアップロードされる新しいオブジェクト所有権を制御し、アクセスコントロールリスト (ACL) を無効にするのに使用できます。デフォルトでは、オブジェクト所有権はバケット所有者の強制設定に設定され、すべての ACL は無効になります。ACL を無効にすると、バケット所有者はバケット内のすべてのオブジェクトを所有し、ポリシーのみを使用してデータへのアクセスを管理します。
詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
Amazon S3 マネージドキーによるサーバーサイド暗号化 (SSE-S3) は、Amazon S3 のすべてのバケットに対する暗号化設定の基本レベルです。S3 バケットにアップロードされたすべての新しいオブジェクトは、暗号化設定の基本レベルとして SSE-S3 を使用して自動的に暗号化されます。別の種類のデフォルトの暗号化を使用する場合は、AWS Key Management Service (AWS KMS) キー (SSE-KMS) またはお客様が用意したキー (SSE-C) を使用したサーバー側の暗号化を指定して、データを暗号化することもできます。詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。
バケットを作成するときは、Amazon S3 コンソール、Amazon S3 API、AWS CLI、または AWS SDK を使用できます。必要なアクセス権限の詳細については、Amazon Simple Storage Service API リファレンスの CreateBucket を参照してください。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、バケットを作成するリージョンを選択します。
注記
レイテンシーとコストを最小化するため、さらに規制条件に対応するために、最寄りのリージョンを選択します。明示的に別のリージョンに移動する場合を除き、特定のリージョンに保管されたオブジェクトは、そのリージョンから移動されることはありません。Amazon S3 AWS リージョン のリストについては、「Amazon Web Services 全般のリファレンス」の「AWS のサービス エンドポイント」を参照してください。
-
左側のナビゲーションペインで、[バケット] を選択します。
-
[Create bucket (バケットの作成)] を選択します。
[バケットの作成] ページが開きます。
-
[全般設定] で、バケットが作成される AWS リージョン を確認します。
-
[バケットタイプ] で、[汎用] を選択します。
-
[バケット名] にバケットの名前を入力します。
バケット名には次の条件があります。
-
パーティション内で一意にする必要があります。パーティションは、リージョンのグループです。AWS には、現在、
aws
(標準リージョン)、aws-cn
(中国リージョン)、およびaws-us-gov
(AWS GovCloud (US) Regions) の 3 つのパーティションがあります。 -
3~63 文字で指定する。
-
小文字、数字、ドット (.)、およびハイフン (-) のみで構成できます。互換性を最も高くするには、静的ウェブサイトホスティング専用のバケットを除き、バケット名にドット (.) を使用しないことをお勧めします。
-
文字や数字で始まり、文字や数字で終わります。
バケットを作成したら、その名前を変更することはできません。バケットを作成する AWS アカウント は、そのバケットを所有します。バケットの命名の詳細については、「バケットの名前付け」を参照してください。
重要
バケット名にアカウント番号などの機密情報を含めないでください。バケット名は、バケット内のオブジェクトを参照する URL に表示されます。
-
-
AWS Management Console では、既存のバケットの設定を新しいバケットにコピーできます。既存のバケットの設定をコピーしない場合は、次のステップにスキップします。
注記
このオプションの特徴:
AWS CLI では使用できません。コンソールでのみ利用できます。
ディレクトリバケットには利用できません。
バケットポリシーは既存のバケットから新しいバケットにコピーしません。
既存のバケットの設定をコピーするには、[既存のバケットから設定をコピー] で [バケットを選択] をクリックします。[バケットを選択] ウィンドウが開きます。コピーする設定を持つバケットを検索して、[バケットを選択] をクリックします。[バケットを選択] ウィンドウが閉じて、[バケットを作成] ウィンドウが再び開きます。
[既存のバケットから設定をコピー] に、選択したバケットの名前が表示されるようになります。コピーしたバケット設定を削除するための [デフォルトを復元] オプションも表示されます。[バケットを作成] ページで、バケットの残りの設定を確認します。ここで、選択したバケットの設定と一致していることを確認できます。最後のステップにスキップできます。
-
[オブジェクト所有者] で、ACL を無効または有効にし、バケットにアップロードされたオブジェクトの所有権を制御するには、次のいずれかの設定を選択します。
ACL は無効です
-
バケット所有者強制 (デフォルト) – ACL は無効になり、バケット所有者はバケット内のすべてのオブジェクトを自動的に所有し、完全に制御します。ACL は、S3 バケット内のデータに対するアクセス許可に対して影響を与えません。このバケットはアクセスコントロールを定義するためだけにポリシーを使用します。
デフォルトでは、ACL は無効になっています。Amazon S3 の最新のユースケースの大部分では ACL を使用する必要がなくなっています。オブジェクトごとに個別に制御する必要がある通常ではない状況を除き、ACL は無効にしておくことをお勧めします。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
ACL の有効化
-
希望するバケット所有者 — バケット所有者は、他のアカウントが
bucket-owner-full-control
既定 ACL でバケットに書き込む新しいオブジェクトを所有し、完全にコントロールできます。[バケット所有者を推奨] 設定を適用して、すべての Amazon S3 アップロードに
bucket-owner-full-control
既定 ACL を含めることを要求する場合は、この ACL を使用するオブジェクトアップロードのみを許可するバケットポリシーを追加できます。 -
オブジェクトライター — オブジェクトをアップロードする AWS アカウント は、そのオブジェクトを所有し、そのオブジェクトを完全にコントロールし、ACL を介して他のユーザーにそのオブジェクトへのアクセス権を付与できます。
注記
デフォルト設定は [バケット所有者の強制] です。デフォルト設定を適用して ACL を無効のままにするのに必要なのは、
s3:CreateBucket
アクセス許可のみです。ACL を有効にするためには、s3:PutBucketOwnershipControls
アクセス許可が必要です。 -
-
[このバケットのパブリックアクセスブロック設定] で、バケットに適用するブロックパブリックアクセス設定を選択します。
デフォルトでは、4 つすべての [パブリックアクセスをブロック] 設定が有効になっています。特定のユースケースでオフにする必要のある設定が 1 つ以上あることがわかっている場合を除き、すべての設定を有効にしておくことをお勧めします。ブロックパブリックアクセスの詳細については、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。
注記
すべての [パブリックアクセスをブロック] 設定を有効にするのに必要なのは、
s3:CreateBucket
アクセス許可のみです。[パブリックアクセスをブロック] 設定をオフにするには、s3:PutBucketPublicAccessBlock
アクセス許可が必要です。 -
(オプション) [バケットのバージョニング] では、オブジェクトのバリアントをバケットに保持するかどうかを選択できます。バージョニングの詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。
バケットのバージョニングを無効または有効にするには、[Disable] (無効化) または [Enable] (有効化) を選択します。
-
(オプション) [Tags] (タグ) では、バケットにタグを追加することを選択できます。タグは、ストレージの分類に使用されるキーと値のペアです。
(オプション) タグを追加するには、[キー] を入力してから、オプションの [値] を入力し、[タグの追加] を選択します。
-
[デフォルトの暗号化] で、[編集] を選択します。
-
デフォルトの暗号化を設定するには、[暗号化タイプ] で次のいずれかを選択します。
-
Amazon S3 マネージドキー (SSE-S3)
-
AWS Key Management Service キー (SSE-KMS)
重要
デフォルト暗号化設定に SSE-KMS オプションを使用する場合、AWS KMS の 1 秒あたりのリクエスト (RPS) 制限が適用されます。AWS KMS クォータの詳細およびクォータの引き上げをリクエストする方法については、「AWS Key Management Service デベロッパーガイド」の「クォータ」を参照してください。
バケットと新しいオブジェクトは、暗号化設定の基本レベルとして Amazon S3 マネージドキーを使用したサーバー側の暗号化で暗号化されます。デフォルトの暗号化の詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。
Amazon S3 のサーバー側の暗号化を使用してデータを暗号化する方法の詳細については、「Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)」を参照してください。
-
-
[AWS Key Management Service キー (SSE-KMS)] を選択した場合は、以下の操作を実行します。
-
[AWS KMS キー] で、次のいずれかの方法で KMS キーを指定します。
-
使用可能な KMS キーのリストから選択するには、[AWS KMS keys から選択する] を選択し、使用可能なキーのリストから自分の KMS キーを選択します。
AWS マネージドキー (
aws/s3
) とカスタマーマネージドキーの両方がこのリストに表示されます。カスタマーマネージドキーの詳細については、AWS Key Management Serviceデベロッパーガイドの「カスタマーキーと AWS キー」を参照してください。 -
KMS キー ARN を入力するには、[AWS KMS key ARN を入力] を選択し、表示されるフィールドに KMS キー ARN を入力します。
-
AWS KMS コンソールで新しいカスタマーマネージドキーを作成するには、[KMS キーを作成] を選択します。
AWS KMS key の作成の詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの作成」を参照してください。
重要
バケットと同じ AWS リージョン で使用可能な KMS キーのみを使用できます。Amazon S3 コンソールには、バケットと同じリージョンで最初の 100 個の KMS キーしか表示されません。リストに存在しない KMS キーを使用するには、KMS キー ARN を入力する必要があります。別のアカウントが所有している KMS キーを使用する場合は、まずそのキーを使用するアクセス許可が必要であり、次に KMS キー ARN を入力する必要があります。KMS キーのクロスアカウント権限の詳細については、AWS Key Management Service デベロッパーガイドの「他のアカウントで使用できる KMS キーを作成する」を参照してください。SSE-KMS に関する詳細は、「AWS KMS (SSE−KMS) によるサーバー側の暗号化の指定」を参照してください。
Amazon S3 でサーバー側の暗号化に AWS KMS key を使用する場合は、対称暗号化 KMS キーを選択する必要があります。Amazon S3 では、対称暗号化 KMS キーのみがサポートされ、非対称暗号化 KMS キーはサポートされません。詳細については、AWS Key Management Service デベロッパーガイドの「Identifying symmetric and asymmetric KMS keys」(対称および非対称 KMS キーの識別) を参照してください。
AWS KMS key の作成の詳細については、AWS Key Management Service デベロッパーガイドのキーの作成を参照してください。Amazon S3 での AWS KMS の使用に関する詳細は、「AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用」を参照してください。
-
-
SSE-KMS でデフォルトの暗号化を使用するようにバケットを設定する場合は、S3 バケットキーを有効にすることもできます。S3 バケットキーは、Amazon S3 から AWS KMS へのリクエストトラフィックを減らし、暗号化のコストを削減します。詳細については、「Amazon S3 バケットキーを使用した SSE−KMS のコストの削減」を参照してください。
S3 バケットキーを使用するには、[バケットキー] で [有効化] を選択します。
-
-
(オプション) S3 オブジェクトロックを有効にする場合は、次の手順に従います。
-
[詳細設定] を選択します。
重要
バケットに対してオブジェクトロックを有効にすると、バージョニングも有効になります。有効にした後、オブジェクトロックのデフォルト保持設定およびリーガルホールド設定を指定し、新しいオブジェクトを削除または上書きしないようにする必要があります。
-
オブジェクトロックを有効にする場合は、[Enable] (有効化) を選択し、表示される警告を読んだうえで承認します。
詳細については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください。
注記
オブジェクトロックが有効なバケットを作成するには、
s3:CreateBucket
、s3:PutBucketVersioning
およびs3:PutBucketObjectLockConfiguration
の許可が必要です。 -
-
[バケットを作成する] を選択します。
AWS SDK を使用してバケットを作成する場合は、最初にクライアントを作成し、次にそのクライアントを使用してバケットを作成するためのリクエストを送信します。ベストプラクティスとして、クライアントとバケットを同じ AWS リージョン で作成する必要があります。クライアントまたはバケットの作成時にリージョンを指定しない場合、Amazon S3 ではデフォルトのリージョンである米国東部 (バージニア北部) が使用されます。バケットの作成を特定の AWS リージョンに制限したい場合は、LocationConstraint
条件キーを使用します。
デュアルスタックのエンドポイントにアクセスするためにクライアントを作成するには、AWS リージョン を指定する必要があります。詳細については、「Amazon S3 API リファレンス」の「Using Amazon S3 dual-stack endpoints」を参照してください。使用可能な AWS リージョン リージョンのリストについては、「AWS 全般のリファレンス」の「リージョンとエンドポイント」を参照してください。
クライアントを作成すると、リージョンはリージョン固有のエンドポイントにマッピングされます。クライアントは、このエンドポイントを使用して Amazon S3 と通信します。s3.
。リージョンがローンチされたのが 2019 年 3 月 20 日以降である場合は、クライアントとバケットは同じリージョン内にある必要があります。2019 年 3 月 20 日以前にローンチされたリージョンの場合は、米国東部 (バージニア北部) のリージョンでクライアントを使用することによりバケットを作成できます。詳細については、「レガシーエンドポイント」を参照してください。region
.amazonaws.com
AWS SDK コード例が、以下のタスクを実行します。
-
AWS リージョン を明示的に指定してクライアントを作成する - この例では、クライアントは
s3.us-west-2.amazonaws.com
エンドポイントを使用して Amazon S3 と通信します。任意の AWS リージョン を指定できます。AWS リージョン の一覧については、「AWS 全般のリファレンス」の「リージョンとエンドポイント」を参照してください。 -
バケット名のみを指定してバケット作成リクエストを送信する - クライアントが Amazon S3 にリクエストを送信し、クライアントが作成されたリージョンにバケットを作成します。
-
バケットの場所情報を取得する - Amazon S3 が、バケットの場所情報を、そのバケットに関連付けられている場所のサブリソースに保存します。
また、AWS Command Line Interface(AWS CLI) を使用して、S3 バケットを作成することもできます。詳細については、「AWS CLI コマンドリファレンス」の「create-bucket
AWS CLI の詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS Command Line Interface とは」を参照してください。