Suppression d'un compartiment - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Suppression d'un compartiment

Vous pouvez supprimer un compartiment Amazon S3 vide. Avant de supprimer un compartiment, tenez compte des points suivants :

  • Les noms de compartiment sont uniques. Si vous supprimez un bucket, un autre AWS utilisateur peut utiliser le nom.

  • Si le compartiment héberge un site Web statique et que vous avez créé et configuré une zone hébergée Amazon Route 53 comme décrit dans Tutoriel : configuration d'un site Web statique à l'aide d'un domaine personnalisé enregistré auprès de Route 53, vous devez nettoyer les paramètres de zone hébergée Route 53 qui sont associés au compartiment. Pour de plus amples informations, veuillez consulter Étape 2 : Supprimer la zone hébergée Route 53.

  • Si le bucket reçoit des données de journal d'Elastic Load Balancing (ELB) : nous vous recommandons d'arrêter la livraison des ELB journaux au bucket avant de le supprimer. Après que vous avez supprimé le compartiment, si un autre utilisateur crée un compartiment à l'aide du même nom, vos données de journaux peuvent potentiellement être remises à ce compartiment. Pour plus d'informations sur les journaux ELB d'accès, consultez les journaux d'accès dans le guide de l'utilisateur pour les équilibreurs de charge classiques et les journaux d'accès dans le guide de l'utilisateur pour les équilibreurs de charge d'application.

Résolution des problèmes

Si vous ne parvenez pas à supprimer un compartiment Simple Storage Service (Amazon S3), prenez en compte les points suivants :

  • Vérifiez que le compartiment est vide – Vous pouvez uniquement supprimer des compartiments qui ne contiennent aucun objet. Vérifiez que le compartiment est vide.

  • Assurez-vous qu'il n'y a pas de points d'accès attachés : vous ne pouvez supprimer que les compartiments auxquels aucun point d'accès n'est attaché. Supprimez tous les points d'accès qui sont attachés au compartiment, avant de supprimer le compartiment.

  • AWS Organizations politiques de contrôle des services (SCPs) : une politique de contrôle des services peut refuser l'autorisation de suppression d'un bucket. Pour plus d'informationsSCPs, voir Politiques de contrôle des services dans le Guide de AWS Organizations l'utilisateur.

  • s3 : DeleteBucket autorisations — Si vous ne pouvez pas supprimer un compartiment, IAM contactez votre administrateur pour confirmer que vous disposez des s3:DeleteBucket autorisations. Pour plus d'informations sur la façon d'afficher ou de mettre à jour IAM les autorisations, consultez la section Modification des autorisations IAM d'un utilisateur dans le Guide de IAM l'utilisateur.

  • s3 : déclaration de DeleteBucket refus — Si votre IAM politique comporte des s3:DeleteBucket autorisations et que vous ne pouvez pas supprimer un compartiment, la politique de compartiment peut inclure une déclaration de refus pours3:DeleteBucket. Les compartiments créés par ElasticBeanstalk ont une politique contenant cette instruction par défaut. Avant de pouvoir supprimer le compartiment, vous devez supprimer cette instruction ou la stratégie de compartiment.

Important

Les noms de compartiment sont uniques. Si vous supprimez un bucket, un autre AWS utilisateur peut utiliser le nom. Si vous souhaitez réutiliser le même nom de compartiment, ne supprimez pas le compartiment. Nous vous recommandons de vider le compartiment et de le conserver.

Pour supprimer un compartiment S3
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste des Buckets (Compartiments), sélectionnez l'option en regard du nom du compartiment à supprimer, puis choisissez Delete (Supprimer) en haut de la page.

  3. Dans la page Delete bucket (Supprimer le compartiment), confirmez que vous souhaitez supprimer le compartiment en saisissant le nom de ce dernier dans le champ de texte, puis choisissez Delete bucket (Supprimer le compartiment).

    Note

    Si le compartiment contient des objets, videz-le avant de le supprimer en sélectionnant le lien de configuration du compartiment vide dans l'alerte d'erreur This bucket is not empty (Ce compartiment n'est pas vide) et en suivant les instructions de la page Empty bucket (Compartiment vide). Revenez ensuite à la page Delete bucket (Supprimer le compartiment) et supprimez le compartiment.

  4. Pour vérifier que vous avez supprimé le compartiment, ouvrez la liste Buckets (Compartiments) et saisissez le nom du compartiment que vous avez supprimé. Si le compartiment est introuvable, votre suppression a réussi.

L'exemple suivant montre comment supprimer un bucket à l'aide de AWS SDK for Java. Tout d'abord, le code supprime les objets du compartiment puis il supprime le compartiment. Pour plus d'informations sur les autres AWS SDKs, consultez la section Outils pour Amazon Web Services.

Java

L'exemple Java suivant supprime un compartiment qui contient des objets. Il supprime tous les objets, puis il supprime le compartiment. L'exemple fonctionne pour les compartiments avec ou sans la gestion des versions activée.

Note

Pour les compartiments sans la gestion des versions activée, vous pouvez supprimer tous les objets directement, puis supprimer le compartiment. Pour les compartiments avec la gestion des versions activée, vous devez supprimer toutes les versions d'objet avant de supprimer le compartiment.

Pour obtenir des instructions sur la création et le test d'un échantillon de travail, consultez Getting Started dans le guide du AWS SDK for Java développeur.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.util.Iterator; public class DeleteBucket2 { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Delete all objects from the bucket. This is sufficient // for unversioned buckets. For versioned buckets, when you attempt to delete // objects, Amazon S3 inserts // delete markers for all objects, but doesn't delete the object versions. // To delete objects from versioned buckets, delete all of the object versions // before deleting // the bucket (see below for an example). ObjectListing objectListing = s3Client.listObjects(bucketName); while (true) { Iterator<S3ObjectSummary> objIter = objectListing.getObjectSummaries().iterator(); while (objIter.hasNext()) { s3Client.deleteObject(bucketName, objIter.next().getKey()); } // If the bucket contains many objects, the listObjects() call // might not return all of the objects in the first listing. Check to // see whether the listing was truncated. If so, retrieve the next page of // objects // and delete them. if (objectListing.isTruncated()) { objectListing = s3Client.listNextBatchOfObjects(objectListing); } else { break; } } // Delete all object versions (required for versioned buckets). VersionListing versionList = s3Client.listVersions(new ListVersionsRequest().withBucketName(bucketName)); while (true) { Iterator<S3VersionSummary> versionIter = versionList.getVersionSummaries().iterator(); while (versionIter.hasNext()) { S3VersionSummary vs = versionIter.next(); s3Client.deleteVersion(bucketName, vs.getKey(), vs.getVersionId()); } if (versionList.isTruncated()) { versionList = s3Client.listNextBatchOfVersions(versionList); } else { break; } } // After all objects and object versions are deleted, delete the bucket. s3Client.deleteBucket(bucketName); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client couldn't // parse the response from Amazon S3. e.printStackTrace(); } } }

Vous pouvez supprimer un compartiment contenant des objets avec le AWS CLI si le contrôle de version n'est pas activé. Quand vous supprimez un compartiment qui contient des objets, tous les objets du compartiment sont définitivement supprimés, y compris ceux qui sont transmis à la classe de stockage S3 Glacier.

Si la gestion des versions n'est pas activée dans votre bucket, vous pouvez utiliser la AWS CLI commande rb (remove bucket) avec le --force paramètre pour supprimer le bucket et tous les objets qu'il contient. Cette commande supprime d'abord tous les objets, puis elle supprime le compartiment.

Si la gestion des versions est activée, les objets versionnés ne sont pas supprimés dans ce processus, ce qui entraînerait l'échec de la suppression du compartiment car ce dernier ne serait pas vide. Pour obtenir des informations sur la suppression d'objets versionnés, consultez Suppression des versions d'objet.

$ aws s3 rb s3://bucket-name --force

Pour plus d'informations, consultez la section Utilisation de commandes S3 de haut niveau AWS Command Line Interface dans le guide de AWS Command Line Interface l'utilisateur.