Création d’un compartiment de répertoires dans une zone locale - 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éation d’un compartiment de répertoires dans une zone locale

Dans les zones locales dédiées, vous pouvez créer des compartiments de répertoires pour stocker et récupérer des objets dans un périmètre de données spécifique afin de répondre à vos cas d’utilisation liés à la résidence et à l’isolement des données. Les compartiments de répertoires S3 sont le seul type de compartiment pris en charge dans les zones locales et contiennent un type d’emplacement de compartiment appelé LocalZone. Le nom d’un compartiment de répertoires se compose d’un nom de base que vous fournissez et d’un suffixe contenant l’ID de la zone dans laquelle se trouve votre compartiment, et --x-s3. Vous pouvez obtenir une liste des zones locales à IDs l'aide de l'opération DescribeAvailabilityZonesAPI. Pour de plus amples informations, veuillez consulter Règles de dénomination des compartiments de répertoires.

Note
  • Pour tous les services des zones locales AWS dédiées (zones locales dédiées), y compris S3, votre administrateur doit les activer Compte AWS avant que vous puissiez créer une ressource dans la zone locale dédiée ou y accéder. Pour de plus amples informations, veuillez consulter Activation des comptes pour les zones locales dédiées.

  • Pour les exigences relatives à la résidence des données, nous vous recommandons de n’autoriser l’accès à vos compartiments qu’à partir des points de terminaison de VPC de passerelle. Pour de plus amples informations, veuillez consulter Connectivité privée depuis votre VPC.

  • Vous pouvez aussi utiliser la clé de condition s3express:AllAccessRestrictedToLocalZoneGroup dans vos politiques IAM pour que l’accès n’ait lieu qu’au sein des groupes de bordure réseau des zones locales. Pour de plus amples informations, veuillez consulter Authentification et autorisation des compartiments de répertoires dans les zones locales.

Ce qui suit décrit les méthodes de création d'un bucket de répertoire dans une seule zone locale avec le AWS Management Console AWS CLI, et AWS SDKs.

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

  2. Dans la barre de navigation en haut de la page, choisissez le nom du fichier actuellement affiché Région AWS. Choisissez ensuite la région parent d’une zone locale dans laquelle vous souhaitez créer un compartiment de répertoires.

    Note

    Pour plus d’informations sur les régions parents, consultez Concepts relatifs aux compartiments de répertoires dans les zones locales.

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

  4. Choisissez Créer un compartiment.

    La page Créer un compartiment s’ouvre.

  5. Sous Configuration générale, consultez la Région AWS dans laquelle votre compartiment sera créé.

  6. Sous Type de compartiment, choisissez Répertoire.

    Note
    • Si vous avez choisi une région qui ne prend pas en charge les compartiments de répertoires, le type de compartiment est défini par défaut sur un compartiment à usage général. Pour créer un compartiment de répertoires, vous devez choisir une région prise en charge. Pour obtenir la liste des régions prises en charge par les compartiments de répertoires, consultez Points de terminaison d’API régionaux et zonaux des compartiments de répertoires.

    • Une fois que vous avez créé le compartiment, vous ne pouvez pas modifier son type.

  7. Sous Emplacement du compartiment, choisissez la zone locale que vous souhaitez utiliser.

    Note

    La zone locale ne peut pas être modifiée une fois le compartiment créé.

  8. Sous Emplacement du compartiment, cochez la case pour reconnaître qu’en cas de panne de la zone locale, vos données pourraient être indisponibles ou perdues.

    Important

    Les compartiments de répertoires sont stockés sur plusieurs appareils au sein d’une même zone locale, mais ne stockent pas les données de manière redondante entre les zones locales.

  9. Pour Nom du compartiment, entrez un nom pour votre compartiment de répertoires.

    Pour plus d’informations sur les règles de dénomination des compartiments de répertoires, consultez Règles de dénomination des compartiments à usage général. Un suffixe est automatiquement ajouté au nom de base que vous fournissez lorsque vous créez un compartiment de répertoires à l’aide de la console. Ce suffixe inclut l’ID de la zone locale que vous avez choisie.

    Une fois le compartiment créé, vous ne pouvez pas changer son nom.

    Important

    N’ajoutez pas d’informations sensibles, notamment des numéros de compte, dans le nom du compartiment. Le nom du compartiment est visible en pointant vers les objets URLs qu'il contient.

  10. Sous Propriété de l'objet, le paramètre imposé au propriétaire du compartiment est automatiquement activé et toutes les listes de contrôle d'accès (ACLs) sont désactivées. Pour les compartiments de répertoire, ACLs ils sont désactivés et ne peuvent pas être activés.

    Lorsque le paramètre « propriétaire du compartiment forcé » est activé, le propriétaire du compartiment possède automatiquement tous les objets du compartiment et en a le contrôle total. ACLs n'affecte 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. La majorité des cas d'utilisation modernes d'Amazon S3 ne nécessitent plus l'utilisation de ACLs. Pour de plus amples informations, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment.

  11. Sous Paramètres de blocage de l’accès public pour ce compartiment, notez que les paramètres de blocage de l’accès public pour votre compartiment de répertoires sont automatiquement activés. Ces paramètres ne peuvent pas être modifiés pour les compartiments de répertoires. Pour en savoir plus sur le blocage de l’accès public, consultez Blocage de l’accès public à votre stockage Amazon S3.

  12. Dans Chiffrement par défaut, les compartiments de répertoires utilisent le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) pour chiffrer les données par défaut. Vous avez également la possibilité de chiffrer les données dans des compartiments d'annuaire grâce au chiffrement côté serveur à l'aide de AWS Key Management Service clés (SSE-KMS).

  13. Choisissez Créer un compartiment.

    Après avoir créé le compartiment, vous pouvez y ajouter des fichiers et des dossiers. Pour de plus amples informations, veuillez consulter Utilisation d’objets dans un compartiment de répertoires.

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS CLI. Pour utiliser la commande, remplacez-la user input placeholders par vos propres informations.

Lorsque vous créez un compartiment de répertoires, vous devez fournir les détails de configuration et utiliser la convention de dénomination suivante : bucket-base-name--zone-id--x-s3.

aws s3api create-bucket --bucket bucket-base-name--zone-id--x-s3 --create-bucket-configuration 'Location={Type=LocalZone,Name=local-zone-id},Bucket={DataRedundancy=SingleLocalZone,Type=Directory}' --region parent-region-code

Pour plus d’informations sur l’ID de zone locale et le code de la région parent, consultez Concepts relatifs aux compartiments de répertoires dans les zones locales. Pour plus d’informations sur la commande AWS CLI , consultez create-bucket dans la Référence des commandes de l’AWS CLI .

SDK for Go

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK pour Go.

var bucket = "amzn-s3-demo-bucket--usw2-az1--x-s3--zone-id--x-s3" // The full directory bucket name func runCreateBucket(c *s3.Client) { resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{ Bucket: &bucket, CreateBucketConfiguration: &types.CreateBucketConfiguration{ Location: &types.LocationInfo{ Name: aws.String("local-zone-id"), Type: types.LocationTypeLocalZone, }, Bucket: &types.BucketInfo{ DataRedundancy: types.DataRedundancySingleLocalZone, Type: types.BucketTypeDirectory, }, }, }) var terr *types.BucketAlreadyOwnedByYou if errors.As(err, &terr) { fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message)) fmt.Printf("noop...\n") // No operation performed, just printing a message return } if err != nil { log.Fatal(err) } fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location)) }
SDK for Java 2.x

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK for Java 2.x.

public static void createBucket(S3Client s3Client, String bucketName) { //Bucket name format is {base-bucket-name}--{local-zone-id}--x-s3 //example: doc-example-bucket--local-zone-id--x-s3 is a valid name for a directory bucket created in a Local Zone. CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder() .location(LocationInfo.builder() .type(LocationType.LOCAL_ZONE) .name("local-zone-id").build()) //this must match the Local Zone ID in your bucket name .bucket(BucketInfo.builder() .type(BucketType.DIRECTORY) .dataRedundancy(DataRedundancy.SINGLE_LOCAL_ZONE) .build()).build(); try { CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build(); CreateBucketResponse response = s3Client.createBucket(bucketRequest); System.out.println(response); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
AWS SDK for JavaScript

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK for JavaScript.

// file.mjs, run with Node.js v16 or higher // To use with the preview build, place this in a folder // inside the preview build directory, such as /aws-sdk-js-v3/workspace/ import { S3 } from "@aws-sdk/client-s3"; const region = "parent-region-code"; const zone = "local-zone-id"; const suffix = `${zone}--x-s3`; const s3 = new S3({ region }); const bucketName = `amzn-s3-demo-bucket--usw2-az1--x-s3--${suffix}`; // Full directory bucket name const createResponse = await s3.createBucket( { Bucket: bucketName, CreateBucketConfiguration: {Location: {Type: "LocalZone", Name: "local-zone-id"}, Bucket: { Type: "Directory", DataRedundancy: "SingleLocalZone" }} } );
AWS SDK for .NET

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK for .NET.

using (var amazonS3Client = new AmazonS3Client()) { var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest { BucketName = "DOC-EXAMPLE-BUCKET--local-zone-id--x-s3", PutBucketConfiguration = new PutBucketConfiguration { BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleLocalZone, Type = BucketType.Directory }, Location = new LocationInfo { Name = "local-zone-id", Type = LocationType.LocalZone } } }).ConfigureAwait(false); }
SDK for PHP

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK for PHP.

require 'vendor/autoload.php'; $s3Client = new S3Client([ 'region' => 'parent-region-code', ]); $result = $s3Client->createBucket([ 'Bucket' => 'doc-example-bucket--local-zone-id--x-s3', 'CreateBucketConfiguration' => [ 'Location' => ['Name'=> 'local-zone-id', 'Type'=> 'LocalZone'], 'Bucket' => ["DataRedundancy" => "SingleLocalZone" ,"Type" => "Directory"] ], ]);
SDK for Python

Cet exemple montre comment créer un compartiment de répertoires à l’aide de l’ AWS SDK for Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def create_bucket(s3_client, bucket_name, local_zone): ''' Create a directory bucket in a specified Local Zone :param s3_client: boto3 S3 client :param bucket_name: Bucket to create; for example, 'doc-example-bucket--local-zone-id--x-s3' :param local_zone: String; Local Zone ID to create the bucket in :return: True if bucket is created, else False ''' try: bucket_config = { 'Location': { 'Type': 'LocalZone', 'Name': local_zone }, 'Bucket': { 'Type': 'Directory', 'DataRedundancy': 'SingleLocalZone' } } s3_client.create_bucket( Bucket = bucket_name, CreateBucketConfiguration = bucket_config ) except ClientError as e: logging.error(e) return False return True if __name__ == '__main__': bucket_name = 'BUCKET_NAME' region = 'parent-region-code' local_zone = 'local-zone-id' s3_client = boto3.client('s3', region_name = region) create_bucket(s3_client, bucket_name, local_zone)
SDK for Ruby

Cet exemple montre comment créer un compartiment de répertoires dans une zone locale à l’aide du kit AWS SDK for Ruby.

s3 = Aws::S3::Client.new(region:'parent-region-code') s3.create_bucket( bucket: "bucket-base-name--local-zone-id--x-s3", create_bucket_configuration: { location: { name: 'local-zone-id', type: 'LocalZone' }, bucket: { data_redundancy: 'SingleLocalZone', type: 'Directory' } } )