汎用バケットの作成
Amazon S3 にデータをアップロードするには、まず、いずれかの AWS リージョン に S3 汎用バケットを作成する必要があります。バケットを作成する AWS アカウント は、そのバケットを所有します。バケットを作成するときは、バケット名とリージョンを選択します。作成プロセスの間、必要に応じて、このバケットに他のストレージ管理オプションを選択できます。
重要
一度バケットを作成したら、そのバケット名、バケット所有者、またはリージョンを変更することはできません。バケットの命名の詳細については、「汎用バケットの命名規則」を参照してください。
デフォルトでは、AWS アカウントごとに最大 10,000 個の汎用バケットを作成できます。汎用バケットのクォータ引き上げをリクエストするには、Service Quotas コンソール
バケットには、オブジェクトをいくつでも保存できます。Amazon S3 汎用バケットに関する制約と制限のリストについては、「汎用バケットのクォータ、制限、制約」を参照してください。
汎用バケットの設定
汎用バケットの作成時に、次の設定を使用してバケットの動作のさまざまな側面を制御できます。
-
S3 オブジェクト所有権 – S3 オブジェクト所有権は、Amazon S3 バケットレベルの設定で、バケットにアップロードされる新しいオブジェクト所有権を制御し、アクセスコントロールリスト (ACL) を無効にするのに使用できます。デフォルトでは、オブジェクト所有権はバケット所有者の強制設定に設定され、すべての ACL は無効になります。ACL を無効にすると、バケット所有者はバケット内のすべてのオブジェクトを所有し、ポリシーのみを使用してデータへのアクセスを管理します。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。
-
S3 Object Lock – S3 Object Lock は、Amazon S3 オブジェクトが一定期間または無期限に削除または上書きされるのを防ぐのに役立ちます。オブジェクトロックは、write-once-read-many (WORM) モデルを使用してオブジェクトを保存します。Object Lock を使用して、WORM ストレージを必要とする規制要件を満たしたり、オブジェクトの変更や削除に対する保護レイヤーを追加したりできます。詳細については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください。
汎用バケットの作成後、または Amazon S3 コンソールで汎用バケットの作成時に、次の設定を使用してバケットの動作の他の側面を制御することもできます。
-
S3 Block Public Access – S3 の Block Public Access 機能は、Amazon S3 のリソースへのパブリックアクセスの管理に役立つ、アクセスポイント、バケット、アカウントの設定を提供します。デフォルトでは、新しいバケット、アクセスポイント、およびオブジェクトはパブリックアクセスを許可しません。ただし、ユーザーはバケットポリシー、アクセスポイントポリシー、またはオブジェクトのアクセス許可を変更することで、パブリックアクセスを許可できます。S3 ブロックパブリックアクセス設定は、これらのポリシーやアクセス許可を上書きして、これらのリソースへのパブリックアクセスを制限できるようにします。詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。
-
S3 バージョニング – S3 バージョニングとは、同じバケット内でオブジェクトの複数のバリアントを保持する手段です。バージョニングを使用して、 バケットに保存されたあらゆるオブジェクトのあらゆるバージョンを保存、取得、復元することができます。バージョニングを使用すれば、意図しないユーザーアクションからもアプリケーション障害からも、簡単に復旧できます。バージョニングは、バケットに対してデフォルトで無効になります。詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。
-
デフォルトの暗号化 – バケット内のすべてのオブジェクトのデフォルトの暗号化タイプを設定できます。Amazon S3 マネージドキーによるサーバーサイド暗号化 (SSE-S3) は、Amazon S3 のすべてのバケットに対する暗号化設定の基本レベルです。S3 バケットにアップロードされたすべての新しいオブジェクトは、暗号化の基本レベルとして SSE-S3 を使用して自動的に暗号化されます。別のデフォルトの暗号化タイプを使用する場合は、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS)、または顧客提供のキーによるサーバー側の暗号化 (SSE-C) を指定できます。詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。
汎用バケットを作成するには、Amazon S3 コンソール、Amazon S3 REST API、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用できます。汎用バケットの作成に必要なアクセス許可の詳細については、「Amazon Simple Storage Service API Reference」の「CreateBucket」を参照してください。
Amazon S3 バケットの作成に問題がある場合は、AWS re:Post で「Amazon S3 バケットを作成する際のエラーをトラブルシューティングする方法を教えてください
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、バケットを作成するリージョンを選択します。
注記
-
一旦バケットを作成したら、そのリージョンを変更することはできません。
-
レイテンシーとコストを最小化するため、さらに規制条件に対応するために、最寄りのリージョンを選択します。明示的に別のリージョンに移動する場合を除き、特定のリージョンに保管されたオブジェクトは、そのリージョンから移動されることはありません。Amazon S3 AWS リージョン のリストについては、「Amazon Web Services 全般のリファレンス」の「AWS のサービス エンドポイント」を参照してください。
-
-
左のナビゲーションペインで、[汎用バケット] を選択します。
-
[Create bucket (バケットの作成)] を選択します。[バケットの作成] ページが開きます。
-
[バケット名] にバケットの名前を入力します。
バケット名には次の条件があります。
-
パーティション内で一意にする必要があります。パーティションは、リージョンのグループです。AWS には、現在
aws
(商用リージョン)、aws-cn
(中国リージョン)、およびaws-us-gov
(AWS GovCloud (US) Regions) の 3 つのパーティションがあります。 -
3~63 文字で指定する。
-
小文字、数字、ピリオド (
.
)、ハイフン (-
) のみで構成されます。互換性を最も高くするには、静的ウェブサイトホスティング専用のバケットを除き、バケット名にピリオド (.
) を使用しないことをお勧めします。 -
文字や数字で始まり、文字や数字で終わります。
-
バケットの命名規則の完全なリストについては、「汎用バケットの命名規則」を参照してください。
重要
-
バケットを作成したら、その名前を変更することはできません。
-
バケット名に機密情報を含めないでください。バケット名は、バケット内のオブジェクトを参照する URL に表示されます。
-
-
(オプション) [全般設定] で、既存のバケットの設定を新しいバケットにコピーすることを選択できます。既存のバケットの設定をコピーしない場合は、次のステップにスキップします。
注記
このオプションの特徴:
AWS CLI では使用できません。Amazon S3 コンソールでのみ利用できます。
バケットポリシーは既存のバケットから新しいバケットにコピーしません。
既存のバケットの設定をコピーするには、[既存のバケットから設定をコピー] で [バケットを選択] をクリックします。[バケットを選択] ウィンドウが開きます。コピーする設定を持つバケットを検索して、[バケットを選択] をクリックします。[バケットを選択] ウィンドウが閉じて、[バケットを作成] ウィンドウが再び開きます。
[既存のバケットから設定をコピー] に、選択したバケットの名前が表示されるようになります。新しいバケットの設定が、選択したバケットの設定と一致するようになりました。コピーした設定を削除する場合は、[デフォルトを復元] を選択します。[バケットを作成] ページで、バケットの残りの設定を確認します。変更しない場合は、最後のステップに進みます。
-
[オブジェクト所有者] で、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 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。
バケットでバージョニングを有効にするには、[有効化] を選択します。
-
(オプション) [Tags] (タグ) では、バケットにタグを追加することを選択できます。AWS コスト配分では、バケットタグを使用してバケットの使用に対する請求に注釈を付けることができます。タグはキー/値ペアになっており、バケットに割り当てられるラベルを表します。詳細については、「S3 バケットタグでのコスト配分タグの使用」を参照してください。
(オプション) タグを追加するには、[キー] を入力してから、オプションの [値] を入力し、[タグの追加] を選択します。
-
[デフォルトの暗号化] を設定するには、[暗号化タイプ] で次のいずれかを選択します。
-
Amazon S3 マネージドキーを用いたサーバー側の暗号化 (SSE-S3)
-
AWS Key Management Service キーによるサーバー側の暗号化 (SSE-KMS)
-
AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-KMS)
重要
デフォルト暗号化設定として SSE-KMS または DSSE-KMS オプションを使用する場合、AWS KMS の 1 秒あたりのリクエスト数 (RPS) 制限が適用されます。AWS KMS クォータの詳細およびクォータの引き上げをリクエストする方法については、「AWS Key Management Service デベロッパーガイド」の「クォータ」を参照してください。
バケットと新しいオブジェクトは、暗号化設定の基本レベルとして Amazon S3 マネージドキー (SSE-S3) を使用したサーバー側の暗号化で暗号化されます。デフォルトの暗号化の詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。SSE-KMS に関する詳細は、「Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)」を参照してください。
サーバー側の暗号化を使用してデータを暗号化する方法の詳細については、「暗号化によるデータの保護」を参照してください。
-
-
Amazon S3 が管理するキー (SSE-S3) によるサーバー側の暗号化または AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-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) によるサーバー側の暗号化の指定」を参照してください。DSSE-KMS に関する詳細については、「AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS) の使用」を参照してください。
Amazon S3 でサーバー側の暗号化に AWS KMS key を使用する場合は、対称暗号化 KMS キーを選択する必要があります。Amazon S3 では、対称暗号化 KMS キーのみがサポートされ、非対称暗号化 KMS キーはサポートされません。詳細については、AWS Key Management Service デベロッパーガイドの「Identifying symmetric and asymmetric KMS keys」(対称および非対称 KMS キーの識別) を参照してください。
-
-
SSE-KMS でデフォルトの暗号化を使用するようにバケットを設定する場合は、S3 バケットキーを使用することもできます。S3 バケットキーは、Amazon S3 から AWS KMS へのリクエストトラフィックを減らし、暗号化のコストを削減します。詳細については、「Amazon S3 バケットキーを使用した SSE−KMS のコストの削減」を参照してください。S3 バケットキーは DSSE-KMS ではサポートされていません。
デフォルトでは、S3 バケットキーは Amazon S3 コンソールで有効になっています。コストを削減するには、S3 バケットキーを有効にしておくことをお勧めします。バケットの S3 バケットキーを無効にするには、[バケットキー] で、[無効化] を選択します。
-
-
(オプション) S3 Object Lock は、新しいオブジェクトが削除または上書きされないように保護するのに役立ちます。詳細については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください。S3 Object Lock を有効にする場合は、次の手順に従います。
-
[詳細設定] を選択します。
重要
バケットに対して Object Lock を有効にすると、自動でバージョニングも有効になります。バケットを有効にして正常に作成したら、バケットの [プロパティ] タブで Object Lock のデフォルトの保持とリーガルホールドの設定も設定する必要があります。
-
オブジェクトロックを有効にする場合は、[Enable] (有効化) を選択し、表示される警告を読んだうえで承認します。
注記
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 Simple Storage Service のエンドポイントとクォータ」を参照してください。
クライアントを作成すると、リージョンはリージョン固有のエンドポイントにマッピングされます。クライアントは、このエンドポイントを使用して 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 SDK の例と他の言語の例については、「Amazon Simple Storage Service API リファレンス」の「AWS SDK または CLI で CreateBucket を使用する」を参照してください。
次の AWS CLI の例では、グローバル一意識別子 (GUID) を名前に使用した汎用バケットを米国西部 (北カリフォルニア) リージョン (us-west-1
) に作成します。このコマンド例を実行するには、
をユーザー自身の情報に置き換えます。user input placeholders
aws s3api create-bucket \ --bucket
amzn-s3-demo-bucket1
$(uuidgen | tr -d - | tr '[:upper:]' '[:lower:]' ) \ --regionus-west-1
\ --create-bucket-configuration LocationConstraint=us-west-1
詳細と追加の例については、「AWS CLI コマンドリファレンス」の「create-bucket