バケットの削除
空の Amazon S3 バケットを削除できます。バケットを削除する前に、以下の点を考慮します。
-
バケット名は一意です。バケットを削除すると、他の AWS ユーザーがその名前を使用できます。
-
バケットが静的ウェブサイトをホストしていて、Amazon Route 53 ホストゾーンが チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定 の説明通りに作成され設定されている場合は、バケットに関連する Route 53 ホストゾーンの設定をクリーンアップする必要があります。詳細については、「ステップ 2: Route 53 ホストゾーンを削除する」を参照してください。
-
バケットに Elastic Load Balancing (ELB) からログデータを配信している場合は、バケットを削除する前に、バケットへの ELB ログの配信を停止することをお勧めします。バケットの削除後に、別のユーザーが同じ名前でバケットを作成した場合、そのバケットにログデータが配信される可能性があります。ELB アクセスログの詳細については、Classic Load Balancer のユーザーガイドの「アクセスログ」、および Application Load Balancer のユーザーガイドの「アクセスログ」を参照してください。
トラブルシューティング
Amazon S3 バケットを削除できない場合は、次の点を考慮してください。
-
バケットが空であることを確認します — バケット内にオブジェクトがないバケットのみ削除できます。バケットが空であることを確認します。
-
アタッチされたアクセスポイントがないことを確認します – アタッチされたアクセスポイントがないバケットのみを削除することができます。バケットを削除する前に、バケットにアタッチされているアクセスポイントを削除します。
-
AWS Organizationsサービスコントロールポリシー (SCP) — サービスコントロールポリシーは、バケットの削除許可を拒否できます。SCP の詳細については、AWS Organizations ユーザーガイドの「サービスコントロールポリシー」を参照してください。
-
s3:DeleteBucket アクセス許可 – バケットを削除できない場合は、IAM 管理者と協力して、
s3:DeleteBucket
アクセス許可があることを確認してください。IAM アクセス許可を表示または更新する方法については、IAM ユーザーガイドの「IAM ユーザーの許可の変更」を参照してください。 -
s3:DeleteBucket 拒否ステートメント – IAM ポリシーに
s3:DeleteBucket
アクセス権限があり、バケットを削除できない場合は、バケットポリシーにs3:DeleteBucket
に対する拒否ステートメントが含まれている場合があります。ElasticBeanstalk によって作成されたバケットは、デフォルトでこのステートメントを含むポリシーを有しています。バケットを削除する前に、このステートメントまたはバケットポリシーを削除する必要があります。
重要
バケット名は一意です。バケットを削除すると、他の AWS ユーザーがその名前を使用できます。同じバケット名を使い続ける場合は、バケットを削除しないでください。バケットを空にして、それを維持することをお勧めします。
S3 バケットを削除するには
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
[Buckets (バケット名)] リストで、削除するバケットの名前の横にあるオプションを選択してから、ページの上部にある [Delete (削除)] を選択します。
-
[バケットを削除する] ページで、テキストフィールドにバケット名を入力することでバケットを削除することを確認し、[バケットを削除する] を選択します。
注記
バケットにオブジェクトが含まれている場合は、[This bucket is not empty (このバケットは空ではありません)] というエラーアラートの [バケットを空にする設定] リンクを選択し、[バケットを空にする] ページの指示に従って、バケットを空にしてから削除します。次に、[バケットを削除する] ページに戻り、バケットを削除します。
-
バケットを削除したことを確認するには、[バケット] リストを開き、削除したバケットの名前を入力します。バケットが見つからない場合、削除は成功しています。
次の例は、AWS SDK for Java を使ってバケットを削除する方法を示しています。まず、このコードはバケットのオブジェクトを削除し、そしてバケットを削除します。AWS SDK の詳細については、「アマゾン ウェブ サービスのツール
AWS CLI のオブジェクトを含むバケットは、バージョニングが有効になっていなければ削除できます。オブジェクトを含むバケットを削除すると、S3 Glacier
ストレージクラスに移行済みのオブジェクトを含む、そのバケット内にあるすべてのオブジェクトが完全に削除されます。
バケットのバージョニングが有効になっていない場合は、rb
(バケット削除) の AWS CLI コマンドを --force
パラメータと共に使用することで、バケットとその内部のオブジェクトのすべてを削除できます。このコマンドは、すべてのオブジェクトを削除した後にバケットを削除します。
バージョニングが有効になっている場合、バージョニングされたオブジェクトはこのプロセスで削除されません。これにより、バケットが空にならないため、バケットの削除が失敗します。バージョニングされたオブジェクトの削除については、「オブジェクトバージョンの削除」を参照してください。
$
aws s3 rb s3://bucket-name --force
詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interface でのハイレベルな S3 コマンドの使用」を参照してください。