汎用バケットの削除
空の Amazon S3 汎用バケットを削除できます。汎用バケットを空にする方法については、「汎用バケットを空にする」を参照してください。
Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用してバケットを削除できます。
重要
汎用バケットを削除する前に、以下の点を考慮してください。
-
汎用バケット名はグローバル名前空間内で一意です。バケットを削除した場合、別の AWS アカウントが新しいバケットに同じ汎用バケット名を使用できるため、削除したバケットへのリクエストを受け取る可能性があることに注意してください。これを防ぐ場合、または同じバケット名を使い続ける場合は、バケットを削除しないでください。バケットを空にして保持し、代わりに必要に応じてバケットリクエストをブロックすることをお勧めします。バケットがアクティブに使用されなくなった場合は、バケット自体を保持しながらコストを最小限に抑えるために、すべてのオブジェクトのバケットを空にすることをお勧めします。
-
汎用バケットを削除しても、バケットがすぐに削除されない場合があります。代わりに、Amazon S3 はバケットを削除キューに入れます。Amazon S3 は AWS リージョン全体に分散されるため、削除プロセスが完全に伝達され、システム全体で一貫性を実現するには時間がかかります。
-
バケットが静的ウェブサイトをホストしていて、Amazon Route 53 ホストゾーンが チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定 の説明通りに作成され設定されている場合は、バケットに関連する Route 53 ホストゾーンの設定をクリーンアップする必要があります。詳細については、「ステップ 2: Route 53 ホストゾーンを削除する」を参照してください。
-
バケットに Elastic Load Balancing (ELB) からログデータを配信している場合は、バケットを削除する前に、バケットへの ELB ログの配信を停止することをお勧めします。バケットの削除後に、別のユーザーが同じ名前でバケットを作成した場合、そのバケットにログデータが配信される可能性があります。ELB アクセスログの詳細については、「Classic Load Balancer のユーザーガイド」の「Access logs for your Classic Load Balancer」、および「Application Load Balancer のユーザーガイド」の「Access logs for your Application Load Balancer」を参照してください。
トラブルシューティング
Amazon S3 汎用バケットを削除できない場合は、次の点を考慮してください。
-
バケットが空であることを確認する — バケット内にオブジェクトがないバケットのみ削除できます。バケットが空であることを確認します。バケットを空にする方法については、「汎用バケットを空にする」を参照してください。
-
アクセスポイントがアタッチされていないことを確認する – バケットを削除できるのは、同じアカウント内に S3 アクセスポイントまたはマルチリージョンアクセスポイントがアタッチされていない場合に限ります。バケットを削除する前に、バケットにアタッチされている同一アカウントのアクセスポイントをすべて削除します。
-
s3:DeleteBucket
アクセス許可があることを確認する – バケットを削除できない場合は、IAM 管理者と協力して、s3:DeleteBucket
アクセス許可があることを確認してください。IAM アクセス許可を表示または更新する方法については、IAM ユーザーガイドの「IAM ユーザーの許可の変更」を参照してください。トラブルシューティング情報については、「Amazon S3 でのアクセス拒否 (403 Forbidden) エラーのトラブルシューティング」を参照してください。 -
AWS Organizations サービスコントロールポリシー (SCP) とリソースコントロールポリシー (RCP) で
s3:DeleteBucket Deny
ステートメントを確認する – SCP と RCP は、バケットに対する削除のアクセス許可を拒否できます。詳細については、「AWS Organizations ユーザーガイド」の「サービスコントロールポリシー」と「リソースコントロールポリシー」を参照してください。 -
バケットポリシーの
s3:DeleteBucket Deny
ステートメントを確認する – IAM ユーザーまたはロールのポリシーにs3:DeleteBucket
アクセス許可があり、バケットを削除できない場合は、バケットポリシーにs3:DeleteBucket
に対するDeny
ステートメントが含まれている場合があります。AWS Elastic Beanstalk によって作成されたバケットは、デフォルトでこのステートメントを含むポリシーを持っています。バケットを削除する前に、このステートメントまたはバケットポリシーを削除する必要があります。
前提条件
汎用バケットを削除するには、事前にバケットを空にする必要があります。バケットを空にする方法については、「汎用バケットを空にする」を参照してください。
S3 バケットを削除するには
AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/
を開きます。 -
左のナビゲーションペインで、[汎用バケット] を選択します。
-
バケットリストで、削除するバケットの名前の横にあるオプションボタンを選択してから、ページの上部にある [削除] を選択します。
-
[バケットの削除] ページで、テキストフィールドにバケット名を入力することでバケットを削除することを確認し、[バケットを削除] を選択します。
注記
バケットにオブジェクトが含まれている場合は、[このバケットは空ではありません] というエラーアラートの [バケットを空にする] ボタンを選択し、[バケットを空にする] ページの指示に従って、バケットを空にしてから削除します。次に、[バケットを削除する] ページに戻り、バケットを削除します。
-
バケットを削除したことを確認するには、[汎用バケット] リストを開き、削除したバケットの名前を入力します。バケットが見つからない場合、削除は成功しています。
次の例は、AWS SDK for Java を使用して汎用バケットを空にして削除する方法を示しています。このコードは、まず汎用バケット内のすべてのオブジェクトを削除し、次にバケットを削除します。
他の言語の例については、「Amazon Simple Storage Service API リファレンス」の「AWS SDK または CLI で DeleteBucket を使用する」を参照してください。その他の AWS SDK の使用方法については、「Tools for Amazon Web Services
オブジェクトを含む汎用バケットでバージョニングが有効になっていない場合は、バケットを AWS CLI で削除できます。オブジェクトを含むバケットを削除すると、S3 Glacier Flexible Retrieval ストレージクラスに移行済みのオブジェクトを含む、そのバケット内にあるすべてのオブジェクトが完全に削除されます。
バケットのバージョニングが有効になっていない場合は、rb
(バケット削除) の AWS CLI コマンドを --force
パラメータと共に使用することで、バケットとその内部のオブジェクトのすべてを削除できます。このコマンドは、すべてのオブジェクトを削除した後にバケットを削除します。
バージョニングが有効になっている場合、--force
パラメータと共に rb
コマンドを使用しても、バージョニングされたオブジェクトは削除されず、バケットが空にならないため、バケットの削除は失敗します。バージョニングされたオブジェクトの削除については、「オブジェクトバージョンの削除」を参照してください。
次のコマンドを使用するには、
を削除するバケットの名前に置き換えます。amzn-s3-demo-bucket
$
aws s3 rb s3://amzn-s3-demo-bucket
--force
詳細については、「AWS Command Line Interface ユーザーガイド」の「Using High-Level S3 Commands with the AWS Command Line Interface」を参照してください。