Créer 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.

Créer un compartiment

Pour charger vos données sur Amazon S3, vous devez d'abord créer un compartiment Amazon S3 dans l'une des Régions AWS. Lorsque vous créez un compartiment, vous devez choisir un nom de compartiment et une Région. Vous pouvez choisir facultativement d'autres options de gestion du stockage pour le compartiment. Une fois un compartiment créé, vous ne pouvez pas modifier son nom ni sa Région. Pour plus d’informations sur la dénomination des compartiments, consultez Règles de dénomination de compartiment.

Celui Compte AWS qui crée le bucket en est propriétaire. Vous pouvez charger un nombre illimité d'objets vers ce compartiment. Par défaut, vous pouvez créer jusqu'à 100 compartiments dans chacun de vos Comptes AWS. Si vous avez besoin de compartiments supplémentaires, vous pouvez augmenter votre limite de compartiments de compte à un maximum de 1 000 compartiments en soumettant une demande d'augmentation de limite de service. Pour découvrir comment envoyer une demande d'augmentation de limite de compartiment, consultez Quotas de Service AWS dans la Référence générale d'AWS . Chaque compartiment permet de stocker un nombre illimité d'objets.

La propriété d'objets S3 est un paramètre Amazon S3 au niveau des compartiments que vous pouvez utiliser pour contrôler la propriété des objets qui sont chargés dans votre compartiment, ainsi que pour désactiver ou activer les listes de contrôle d'accès (ACL). Par défaut, la propriété des objets est définie sur le paramètre Propriétaire du compartiment appliqué et toutes les listes ACL sont désactivées. Lorsque les listes ACL sont désactivées, le propriétaire du compartiment détient chaque objet présent dans le compartiment et gère l'accès aux données exclusivement à l'aide de politiques.

Pour plus d’informations, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.

Le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) est le niveau de base de la configuration du chiffrement pour chaque compartiment dans Amazon S3. Tous les nouveaux objets chargés dans un compartiment S3 sont automatiquement chiffrés avec SSE-S3 comme paramètre de chiffrement de base. Si vous souhaitez utiliser un autre type de chiffrement par défaut, vous pouvez également spécifier le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) ou des clés fournies par le client (SSE-C) pour chiffrer vos données. Pour de plus amples informations, veuillez consulter Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3.

Vous pouvez utiliser la console Amazon S3, les API Amazon S3 ou AWS les SDK pour créer un compartiment. AWS CLI Pour plus d'informations sur les autorisations requises pour créer un bucket, consultez le CreateBucketmanuel Amazon Simple Storage Service API Reference.

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

  2. Dans le panneau de navigation de gauche, choisissez Compartiments.

  3. Choisissez Créer un compartiment.

    La page Créer un compartiment s'ouvre.

  4. Pour Nom du compartiment, saisissez le nom de votre compartiment.

    Le nom du compartiment doit présenter les caractéristiques suivantes :

    • Être unique dans une partition. Une partition est un regroupement de Régions. AWS dispose actuellement de trois partitions : aws (Régions Standard), aws-cn (Régions Chine) et aws-us-gov (AWS GovCloud (US) Regions).

    • Il doit comporter entre 3 et 63 caractères.

    • Être uniquement composé de lettres minuscules, de chiffres, de points (.) et de traits d'union (-). Pour une meilleure compatibilité, nous vous recommandons d'éviter d'utiliser des points (.) dans les noms de compartiment, à l'exception des compartiments utilisés uniquement pour l'hébergement de sites web statiques.

    • Commencer et se terminer par une lettre ou un chiffre.

    Une fois le compartiment créé, vous ne pouvez pas changer son nom. Pour plus d'informations sur l'attribution de noms à des compartiments, consultez Règles de dénomination de compartiment.

    Important

    Évitez d’inclure des informations sensibles, notamment des numéros de compte, dans le nom du compartiment. Le nom de compartiment est visible dans les URL qui pointent vers les objets du compartiment.

  5. Pour Région, choisissez l' Région AWS endroit où vous souhaitez que le compartiment réside.

    Pour limiter la latence et les coûts, et répondre aux exigences légales, choisissez une région proche de vous. Les objets stockés dans une Région ne la quittent jamais, sauf si vous les transférez explicitement vers une autre Région. Pour obtenir la liste d'Amazon S3 Régions AWS, consultez la section sur les Service AWS points de terminaison dans le Référence générale d'Amazon Web Services.

  6. Sous Object Ownership (Propriété de l'objet), pour désactiver ou activer les listes ACL et contrôler la propriété des objets téléchargés dans votre compartiment, sélectionnez l'un des paramètres suivants :

    Listes ACL désactivées
    • Propriétaire du compartiment appliqué (par défaut) : les listes ACL sont désactivées et le propriétaire du compartiment détient automatiquement chaque objet présent dans le compartiment et en a le contrôle total. Les listes ACL n'affectent plus les autorisations d'accès aux données du compartiment S3. Le compartiment utilise des stratégies exclusivement pour définir le contrôle des accès.

      Par défaut, les listes ACL sont désactivées. La majorité des cas d'utilisation modernes dans Amazon S3 ne nécessitent plus l'utilisation des listes ACL. Nous vous recommandons de maintenir les listes ACL désactivées, sauf dans des circonstances inhabituelles où vous devez contrôler l'accès individuellement pour chaque objet. Pour plus d’informations, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.

    Listes ACL activées
    • Bucket owner preferred (Préféré par le propriétaire du compartiment) – Le propriétaire du compartiment possède les nouveaux objets que d'autres comptes écrivent dans le compartiment avec la liste ACL bucket-owner-full-control prête à l'emploi, et en a le contrôle total.

      Si vous appliquez le paramètre Propriétaire du compartiment préféré, pour exiger que tous les chargements Amazon S3 incluent la liste ACL prédéfinie bucket-owner-full-control, vous pouvez ajouter une politique de compartiment qui autorise uniquement les chargements d'objets utilisant cette liste ACL.

    • Auteur d'objets : celui Compte AWS qui télécharge un objet est propriétaire de l'objet, en a le contrôle total et peut autoriser d'autres utilisateurs à y accéder via des ACL.

    Note

    Le paramètre par défaut est Propriétaire du compartiment appliqué. Pour appliquer le paramètre par défaut et maintenir les listes ACL désactivées, seule l'autorisation s3:CreateBucket est requise. Pour activer les listes ACL, vous devez disposez de l'autorisation s3:PutBucketOwnershipControls.

  7. Dans Paramètres de blocage de l'accès public pour ce compartiment, choisissez les paramètres Bloquer l'accès public que vous souhaitez appliquer au compartiment.

    Par défaut, les quatre paramètres de blocage de l'accès public sont activés. Nous vous recommandons de maintenir tous les paramètres activés, sauf si vous savez que vous devez en désactiver un ou plusieurs pour votre cas d'utilisation spécifique. Pour en savoir plus sur le blocage de l'accès public, consultez Blocage de l'accès public à votre stockage Amazon S3.

    Note

    Pour activer tous les paramètres de blocage de l'accès public, seule l'autorisation s3:CreateBucket est requise. Pour désactiver les paramètres de blocage de l'accès public, vous devez disposer de l'autorisation s3:PutBucketPublicAccessBlock.

  8. (Facultatif) Sous Bucket Versioning (Gestion des versions du compartiment), vous pouvez choisir de conserver les variantes des objets dans votre compartiment. Pour plus d’informations sur la gestion des versions, consultez Utilisation de la gestion des versions dans les compartiments S3.

    Pour désactiver ou activer la gestion des versions sur votre compartiment, choisissez Disable (Désactiver) ou Enable (Activer).

  9. (Facultatif) Sous Tags (Balises), vous pouvez choisir d'ajouter des balises à votre compartiment. Les balises sont des paires clé-valeur utilisées pour catégoriser le stockage.

    Pour ajouter une balise de compartiment, saisissez une Key (Clé) et éventuellement une Value (Valeur), puis choisissez Add Tag (Ajouter une balise).

  10. Sous Default encryption (Chiffrement par défaut), choisissez Edit (Modifier).

  11. Pour configurer le chiffrement par défaut, dans Type de chiffrement, choisissez l'une des options suivantes :

    • Clés gérées par Amazon S3 (SSE-S3)

    • AWS Key Management Service clé (SSE-KMS)

      Important

      Si vous utilisez l'option SSE-KMS pour votre configuration de chiffrement par défaut, vous êtes soumis aux quotas RPS (demandes par seconde) de AWS KMS. Pour plus d'informations sur les AWS KMS quotas et sur la manière de demander une augmentation de quota, consultez la section Quotas dans le guide du AWS Key Management Service développeur.

    Les compartiments et les nouveaux objets sont chiffrés à l'aide d'un chiffrement côté serveur avec une clé gérée par Amazon S3 comme niveau de base de configuration du chiffrement. Pour plus d'informations sur le chiffrement par défaut, consultez Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3.

    Pour en savoir plus sur l'utilisation du chiffrement côté serveur Amazon S3 pour chiffrer vos données, consultez Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3).

  12. Si vous avez sélectionné CléAWS Key Management Service (SSE-KMS), procédez comme suit :

    1. Sous CléAWS KMS , spécifiez votre clé KMS de l'une des manières suivantes :

      • Pour choisir parmi une liste de clés KMS disponibles, choisissez Choisir parmi vos AWS KMS keys, puis choisissez votre clé KMS dans la liste des clés disponibles.

        La clé Clé gérée par AWS (aws/s3) et la clé gérée par votre client apparaissent toutes deux dans cette liste. Pour plus d'informations sur les clés gérées par le client, consultez Clés de client et clés AWS dans le Guide du développeur AWS Key Management Service .

      • Pour saisir l'ARN de la clé KMS, choisissez Saisir l'ARN de AWS KMS key , puis saisissez l'ARN de votre clé KMS dans le champ qui s'affiche.

      • Pour créer une nouvelle clé gérée par le client dans la AWS KMS console, choisissez Create a KMS key.

        Pour plus d'informations sur la création d'un AWS KMS key, consultez la section Création de clés dans le Guide du AWS Key Management Service développeur.

      Important

      Vous ne pouvez utiliser que les clés KMS disponibles dans le même compartiment Région AWS que le bucket. La console Amazon S3 répertorie uniquement les 100 premières clés KMS dans la même région que le compartiment. Pour utiliser une clé KMS qui n'est pas répertoriée, vous devez saisir l'ARN de votre clé KMS. Si vous souhaitez utiliser une clé KMS qui appartient à un autre compte, vous devez d'abord avoir l'autorisation d'utiliser cette clé KMS, puis saisir l'ARN de la clé KMS. Pour plus d'informations sur les autorisations entre comptes pour les clés KMS, consultez la section Creating KMS keys that other accounts can use (Création de clés KMS que d'autres comptes peuvent utiliser) dans le Guide du développeur AWS Key Management Service . Pour en savoir plus sur SSE-KMS, consultez Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS).

      Lorsque vous utilisez un AWS KMS key pour le chiffrement côté serveur dans Amazon S3, vous devez choisir une clé KMS de chiffrement symétrique. Amazon S3 prend uniquement en charge les clés KMS symétriques de chiffrement et ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez la section Identifying symmetric and asymmetric KMS keys (Identification des clés KMS symétriques et asymétriques) dans le Guide du développeur AWS Key Management Service .

      Pour plus d'informations sur la création d'un AWS KMS key, consultez la section Création de clés dans le Guide du AWS Key Management Service développeur. Pour plus d'informations sur l'utilisation AWS KMS avec Amazon S3, consultezUtilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS).

    2. Lorsque vous configurez votre compartiment pour utiliser le chiffrement par défaut avec SSE-KMS, vous pouvez également activer les clés de compartiment S3. Les clés de compartiment S3 réduisent le coût du chiffrement en diminuant le trafic de demandes d'Amazon S3 vers AWS KMS. Pour plus d’informations, consultez Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3.

      Pour utiliser les clés de compartiment S3, sous la Clé de compartiment, choisissez Activer.

  13. (Facultatif) Si vous souhaitez activer le verrouillage des objets S3, procédez comme suit :

    1. Choisissez Advanced Settings (Paramètres avancés).

      Important

      L'activation du verrouillage d'objet active également la gestion des versions pour le compartiment. Après l'avoir activé, vous devez configurer les paramètres de conservation et de mise en suspens juridique par défaut du verrouillage d'objets pour protéger les nouveaux objets contre la suppression ou l'écrasement.

    2. Pour activer le verrouillage d'objets, choisissez Enable (Activer), lisez l'avertissement qui s'affiche et confirmez-le.

    Pour plus d’informations, consultez Utilisation du verrouillage des objets S3.

    Note

    Pour créer un compartiment prenant en charge le verrouillage d'objets, vous devez disposer des autorisations suivantes : s3:CreateBucket, s3:PutBucketVersioning et s3:PutBucketObjectLockConfiguration.

  14. Choisissez Créer un compartiment.

Lorsque vous utilisez les AWS SDK pour créer un compartiment, vous devez créer un client, puis utiliser le client pour envoyer une demande de création d'un compartiment. En tant que bonne pratique, vous devez créer votre client et votre compartiment dans la même Région AWS. Si vous ne spécifiez pas de région lorsque vous créez un client ou un compartiment, Amazon S3 utilise USA Est (Virginie du Nord), la région par défaut. Si vous souhaitez limiter la création du compartiment à une  Région AWS spécifique, utilisez la clé de condition LocationConstraint.

Pour créer un client afin d'accéder à un point de terminaison Dual-Stack, vous devez spécifier une Région AWS. Pour plus d’informations, consultez Points de terminaison Dual-Stack. Pour obtenir la liste des régions disponibles Régions AWS, consultez la section Régions et points de terminaison dans le Références générales AWS.

Lorsque vous créez un client, la Région est mappée au point de terminaison spécifique à la Région. Le client utilise ce point de terminaison pour communiquer avec Amazon S3 : s3.region.amazonaws.com. Si votre Région a été lancée après le 20 mars 2019, votre client et votre compartiment doivent se trouver dans la même Région. Par conséquent, vous pouvez utiliser un client dans la Région USA Est (Virginie du Nord) pour créer un compartiment dans n'importe quelle Région lancée avant le 20 mars 2019. Pour de plus amples informations, veuillez consulter Points de terminaison hérités.

Ces exemples de code AWS SDK exécutent les tâches suivantes :

  • Créer un client en indiquant explicitement une Région AWS : dans l'exemple, le client utilise le point de terminaison s3.us-west-2.amazonaws.com pour communiquer avec Amazon S3. Vous pouvez spécifier n'importe quelle Région AWS. Pour en obtenir la liste Régions AWS, voir Régions et points de terminaison dans le manuel de référence AWS général.

  • Envoyer une demande de création de compartiment en indiquant uniquement un nom de compartiment : le client envoie une demande à Amazon S3 pour créer le compartiment dans la région où vous avez créé un client.

  • Récupérer des informations relatives à l'emplacement du compartiment : Amazon S3 stocke les informations relatives à l'emplacement du compartiment dans la sous-ressource de l'emplacement associée au compartiment.

Java

Cet exemple montre comment créer un compartiment Amazon S3 à l'aide du kit AWS SDK for Java. Pour obtenir les instructions sur la création et le test d'un exemple pratique, consultez Test des exemples de code Java Amazon S3.

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.CreateBucketRequest; import com.amazonaws.services.s3.model.GetBucketLocationRequest; import java.io.IOException; public class CreateBucket2 { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); if (!s3Client.doesBucketExistV2(bucketName)) { // Because the CreateBucketRequest object doesn't specify a region, the // bucket is created in the region specified in the client. s3Client.createBucket(new CreateBucketRequest(bucketName)); // Verify that the bucket was created by retrieving it and checking its // location. String bucketLocation = s3Client.getBucketLocation(new GetBucketLocationRequest(bucketName)); System.out.println("Bucket location: " + bucketLocation); } } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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(); } } }
.NET

Pour obtenir des informations sur la façon de créer et de tester un exemple pratique, consultez Exécution des exemples de code .NET Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class CreateBucketTest { private const string bucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); CreateBucketAsync().Wait(); } static async Task CreateBucketAsync() { try { if (!(await AmazonS3Util.DoesS3BucketExistAsync(s3Client, bucketName))) { var putBucketRequest = new PutBucketRequest { BucketName = bucketName, UseClientRegion = true }; PutBucketResponse putBucketResponse = await s3Client.PutBucketAsync(putBucketRequest); } // Retrieve the bucket location. string bucketLocation = await FindBucketLocationAsync(s3Client); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } static async Task<string> FindBucketLocationAsync(IAmazonS3 client) { string bucketLocation; var request = new GetBucketLocationRequest() { BucketName = bucketName }; GetBucketLocationResponse response = await client.GetBucketLocationAsync(request); bucketLocation = response.Location.ToString(); return bucketLocation; } } }
Ruby

Pour obtenir des informations sur la façon de créer et de tester un exemple pratique, consultez Utilisation du kit AWS SDK for Ruby (version 3).

require "aws-sdk-s3" # Wraps Amazon S3 bucket actions. class BucketCreateWrapper attr_reader :bucket # @param bucket [Aws::S3::Bucket] An Amazon S3 bucket initialized with a name. This is a client-side object until # create is called. def initialize(bucket) @bucket = bucket end # Creates an Amazon S3 bucket in the specified AWS Region. # # @param region [String] The Region where the bucket is created. # @return [Boolean] True when the bucket is created; otherwise, false. def create?(region) @bucket.create(create_bucket_configuration: { location_constraint: region }) true rescue Aws::Errors::ServiceError => e puts "Couldn't create bucket. Here's why: #{e.message}" false end # Gets the Region where the bucket is located. # # @return [String] The location of the bucket. def location if @bucket.nil? "None. You must create a bucket before you can get its location!" else @bucket.client.get_bucket_location(bucket: @bucket.name).location_constraint end rescue Aws::Errors::ServiceError => e "Couldn't get the location of #{@bucket.name}. Here's why: #{e.message}" end end # Example usage: def run_demo region = "us-west-2" wrapper = BucketCreateWrapper.new(Aws::S3::Bucket.new("doc-example-bucket-#{Random.uuid}")) return unless wrapper.create?(region) puts "Created bucket #{wrapper.bucket.name}." puts "Your bucket's region is: #{wrapper.location}" end run_demo if $PROGRAM_NAME == __FILE__

Vous pouvez également utiliser le AWS Command Line Interface (AWS CLI) pour créer un compartiment S3. Pour plus d’informations, consultez create-bucket dans la Référence des commandes AWS CLI .

Pour plus d'informations sur le AWS CLI, voir Qu'est-ce que le AWS Command Line Interface ? dans le guide de AWS Command Line Interface l'utilisateur.