View a markdown version of this page

Utilisation de points Multi-Region d'accès avec des opérations d'API prises en charge - 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.

Utilisation de points Multi-Region d'accès avec des opérations d'API prises en charge

Amazon S3 fournit un ensemble d'opérations pour gérer les points Multi-Region d'accès. Amazon S3 traite certaines de ces opérations de manière synchrone et d’autres de manière asynchrone. Lorsque vous invoquez une opération asynchrone, Amazon S3 autorise d’abord l’opération demandée de manière synchrone. Si l’autorisation réussit, Amazon S3 renvoie un jeton que vous pourrez utiliser pour suivre la progression et les résultats de l’opération demandée.

Note

Les demandes effectuées via la console Amazon S3 sont toujours synchrones. La console attend que la demande soit terminée avant de vous autoriser à envoyer une autre demande.

Vous pouvez consulter l'état actuel et les résultats des opérations asynchrones à l'aide de la console, ou vous pouvez les utiliser DescribeMultiRegionAccessPointOperation dans les AWS CLI AWS SDK ou l'API REST. Amazon S3 fournit un jeton de suivi dans la réponse à une opération asynchrone. Vous devrez inclure ce jeton de suivi en tant qu’argument de DescribeMultiRegionAccessPointOperation. Quand vous incluez le jeton de suivi, Amazon S3 renvoie ensuite le statut actuel et les résultats de l’opération spécifiée, notamment les éventuelles erreurs ou informations pertinentes sur les ressources. Amazon S3 effectue les opérations DescribeMultiRegionAccessPointOperation de manière synchrone.

Toutes les demandes du plan de contrôle visant à créer ou à gérer des points Multi-Region d'accès doivent être acheminées vers la US West (Oregon) région. Pour les demandes de plan de données Multi-Region Access Point, il n'est pas nécessaire de spécifier les régions. Pour le plan de contrôle de basculement du point d' Multi-Region accès, la demande doit être acheminée vers l'une des cinq régions prises en charge. Pour plus d'informations sur les régions prises en charge par Multi-Region Access Point, consultezMulti-Region Restrictions et limites des points d'accès.

En outre, vous devez accorder l's3:ListAllMyBucketsautorisation à l'utilisateur, au rôle ou à toute autre entité Gestion des identités et des accès AWS (IAM) qui demande la gestion d'un point d' Multi-Region accès.

Les exemples suivants montrent comment utiliser les points Multi-Region d'accès avec des opérations compatibles dans Amazon S3.

Multi-Region Compatibilité des points d'accès avec Services AWS and AWS Kits SDK

Pour utiliser un point d' Multi-Region accès avec des applications qui nécessitent un nom de compartiment Amazon S3, utilisez l'Amazon Resource Name (ARN) du point d' Multi-Region accès lorsque vous effectuez des demandes à l'aide d'un AWS SDK. Pour vérifier quels AWS kits de développement sont compatibles avec les points Multi-Region d'accès, consultez la section Compatibilité avec les AWS kits de développement logiciel.

Multi-Region Compatibilité des points d'accès avec les opérations S3

Vous pouvez utiliser les opérations d'API de plan de données Amazon S3 suivantes pour effectuer des actions sur des objets dans des compartiments associés à votre point Multi-Region d'accès. Les opérations S3 suivantes peuvent accepter les ARN des points Multi-Region d'accès :

Note

Multi-Region Access Points prend en charge les opérations de copie en utilisant les points d' Multi-Region accès uniquement comme destination lors de l'utilisation de l'ARN du point Multi-Region d'accès.

Vous pouvez utiliser les opérations suivantes du plan de contrôle Amazon S3 pour créer et gérer vos points Multi-Region d'accès :

Afficher la configuration de routage de votre point d' Multi-Region accès

AWS CLI

L'exemple de commande suivant récupère la configuration de l'itinéraire de votre point d' Multi-Region accès afin que vous puissiez voir les états de routage actuels de vos compartiments. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3control get-multi-region-access-point-routes --region eu-west-1 --account-id 111122223333 --mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap
SDK for Java

Le code SDK pour Java suivant récupère la configuration de routage de votre point d' Multi-Region accès afin que vous puissiez voir les états de routage actuels de vos compartiments. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

S3ControlClient s3ControlClient = S3ControlClient.builder() .region(Region.US_EAST_1) .credentialsProvider(credentialsProvider) .build(); GetMultiRegionAccessPointRoutesRequest request = GetMultiRegionAccessPointRoutesRequest.builder() .accountId("111122223333") .mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap") .build(); GetMultiRegionAccessPointRoutesResponse response = s3ControlClient.getMultiRegionAccessPointRoutes(request);
SDK for JavaScript

Le SDK de JavaScript code suivant récupère la configuration de routage de votre point d' Multi-Region accès afin que vous puissiez voir les états de routage actuels de vos compartiments. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

const REGION = 'us-east-1' const s3ControlClient = new S3ControlClient({ region: REGION }) export const run = async () => { try { const data = await s3ControlClient.send( new GetMultiRegionAccessPointRoutesCommand({ AccountId: '111122223333', Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap', }) ) console.log('Success', data) return data } catch (err) { console.log('Error', err) } } run()
SDK for Python

Le code SDK pour Python suivant récupère la configuration de routage de votre point d' Multi-Region accès afin que vous puissiez voir les états de routage actuels de vos compartiments. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

s3.get_multi_region_access_point_routes( AccountId=111122223333, Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap)['Routes']

Mettez à jour votre politique de compartiment Amazon S3 sous-jacente.

Pour accorder un accès approprié, vous devez également mettre à jour la politique sous-jacente du compartiment Amazon S3. Les exemples suivants délèguent le contrôle d'accès à la politique de point Multi-Region d'accès. Une fois que vous avez délégué le contrôle d' Multi-Region accès à la politique de point d'accès, la politique de compartiment n'est plus utilisée pour le contrôle d'accès lorsque les demandes sont effectuées via le point Multi-Region d'accès.

Voici un exemple de politique de compartiment qui délègue le contrôle d'accès à la politique de point Multi-Region d'accès. Pour utiliser cet exemple de politique de compartiment, remplacez user input placeholders par vos propres informations. Pour appliquer cette stratégie via la AWS CLI put-bucket-policy commande, comme indiqué dans l'exemple suivant, enregistrez la stratégie dans un fichier, par exemplepolicy.json.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "444455556666" } } } ] }

L’exemple de commande put-bucket-policy suivant associe la politique de compartiment S3 mise à jour à votre compartiment S3 :

aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file:///tmp/policy.json

Mettre à jour la configuration Multi-Region d'un itinéraire de point d'accès

L'exemple de commande suivant met à jour la configuration de route du point d' Multi-Region accès. Multi-Region Les commandes d'itinéraire Access Point peuvent être exécutées dans les cinq régions suivantes :

  • ap-southeast-2

  • ap-northeast-1

  • us-east-1

  • us-west-2

  • eu-west-1

Dans une configuration de routage de point d' Multi-Region accès, vous pouvez définir un état de routage actif ou passif pour les buckets. Les compartiments actifs reçoivent du trafic, tandis que les compartiments passifs n’en reçoivent pas. Vous pouvez définir le statut de routage d’un compartiment en définissant la valeur TrafficDialPercentage de ce dernier sur 100 pour actif ou 0 pour passif.

AWS CLI

L'exemple de commande suivant met à jour la configuration de routage de votre point d' Multi-Region accès. Dans cet exemple, la valeur amzn-s3-demo-bucket1 est réglée sur le statut actif et amzn-s3-demo-bucket2 est réglée sur le statut passif. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3control submit-multi-region-access-point-routes --region ap-southeast-2 --account-id 111122223333 --mrap arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap --route-updates Bucket=amzn-s3-demo-bucket1,TrafficDialPercentage=100 Bucket=amzn-s3-demo-bucket2,TrafficDialPercentage=0
SDK for Java

Le code SDK pour Java suivant met à jour la configuration de routage de votre point Multi-Region d'accès. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

S3ControlClient s3ControlClient = S3ControlClient.builder() .region(Region.ap-southeast-2) .credentialsProvider(credentialsProvider) .build(); SubmitMultiRegionAccessPointRoutesRequest request = SubmitMultiRegionAccessPointRoutesRequest.builder() .accountId("111122223333") .mrap("arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap") .routeUpdates( MultiRegionAccessPointRoute.builder() .region("eu-west-1") .trafficDialPercentage(100) .build(), MultiRegionAccessPointRoute.builder() .region("ca-central-1") .bucket("111122223333") .trafficDialPercentage(0) .build() ) .build(); SubmitMultiRegionAccessPointRoutesResponse response = s3ControlClient.submitMultiRegionAccessPointRoutes(request);
SDK for JavaScript

Le SDK de JavaScript code suivant met à jour la configuration de l'itinéraire de votre point Multi-Region d'accès. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

const REGION = 'ap-southeast-2' const s3ControlClient = new S3ControlClient({ region: REGION }) export const run = async () => { try { const data = await s3ControlClient.send( new SubmitMultiRegionAccessPointRoutesCommand({ AccountId: '111122223333', Mrap: 'arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap', RouteUpdates: [ { Region: 'eu-west-1', TrafficDialPercentage: 100, }, { Region: 'ca-central-1', Bucket: 'amzn-s3-demo-bucket1', TrafficDialPercentage: 0, }, ], }) ) console.log('Success', data) return data } catch (err) { console.log('Error', err) } } run()
SDK for Python

Le code SDK pour Python suivant met à jour la configuration de l'itinéraire de votre point Multi-Region d'accès. Pour utiliser cet exemple de syntaxe, remplacez user input placeholders par vos propres informations.

s3.submit_multi_region_access_point_routes( AccountId=111122223333, Mrap=arn:aws:s3::111122223333:accesspoint/abcdef0123456.mrap, RouteUpdates= [{ 'Bucket': amzn-s3-demo-bucket, 'Region': ap-southeast-2, 'TrafficDialPercentage': 10 }])

Ajouter un objet à un compartiment de votre point Multi-Region d'accès

Pour ajouter un objet au compartiment associé au point Multi-Region d'accès, vous pouvez utiliser cette PutObject opération. Pour synchroniser tous les compartiments du point Multi-Region d'accès, activez la Cross-Region réplication.

Note

Pour utiliser cette opération, vous devez disposer de l's3:PutObjectautorisation du point Multi-Region d'accès. Pour plus d'informations sur les exigences d'autorisation des points d' Multi-Region accès, consultezPermissions.

AWS CLI

L'exemple de demande de plan de données suivant est chargé example.txt vers le point Multi-Region d'accès spécifié. Pour utiliser cet exemple, remplacez les user input placeholders par vos propres informations.

aws s3api put-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt --body example.txt
SDK for Java
S3Client s3Client = S3Client.builder() .build(); PutObjectRequest objectRequest = PutObjectRequest.builder() .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap") .key("example.txt") .build(); s3Client.putObject(objectRequest, RequestBody.fromString("Hello S3!"));
SDK for JavaScript
const client = new S3Client({}); async function putObjectExample() { const command = new PutObjectCommand({ Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap", Key: "example.txt", Body: "Hello S3!", }); try { const response = await client.send(command); console.log(response); } catch (err) { console.error(err); } }
SDK for Python
import boto3 client = boto3.client('s3') client.put_object( Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap', Key='example.txt', Body='Hello S3!' )

Récupérez des objets depuis votre point Multi-Region d'accès

Pour récupérer des objets depuis le point Multi-Region d'accès, vous pouvez utiliser cette GetObject opération.

Note

Pour utiliser cette opération d'API, vous devez disposer de l's3:GetObjectautorisation pour le point Multi-Region d'accès. Pour plus d'informations sur les exigences relatives aux autorisations des points d' Multi-Region accès, consultezPermissions.

AWS CLI

L'exemple de demande de plan de données suivant example.txt extrait le point d' Multi-Region accès spécifié et le télécharge en tant downloaded_example.txt que. Pour utiliser cet exemple, remplacez les user input placeholders par vos propres informations.

aws s3api get-object --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap --key example.txt downloaded_example.txt
SDK for Java
S3Client s3 = S3Client .builder() .build(); GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap") .key("example.txt") .build(); s3Client.getObject(getObjectRequest);
SDK for JavaScript
const client = new S3Client({}) async function getObjectExample() { const command = new GetObjectCommand({ Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap", Key: "example.txt" }); try { const response = await client.send(command); console.log(response); } catch (err) { console.error(err); } }
SDK for Python
import boto3 client = boto3.client('s3') client.get_object( Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap', Key='example.txt' )

Répertorier les objets stockés dans un compartiment situé sous votre point Multi-Region d'accès

Pour renvoyer une liste d'objets stockés dans un compartiment sous-jacent à votre point Multi-Region d'accès, utilisez l'ListObjectsV2opération. Dans l'exemple de commande suivant, tous les objets du point Multi-Region d'accès spécifié sont répertoriés à l'aide de l'ARN du point Multi-Region d'accès. Dans ce cas, l'ARN du point Multi-Region d'accès est le suivant :

arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap

Note

Pour utiliser cette opération d'API, vous devez disposer de l's3:ListBucketautorisation pour le point Multi-Region d'accès et le compartiment sous-jacent. Pour plus d'informations sur les exigences relatives aux autorisations des points d' Multi-Region accès, consultezPermissions.

AWS CLI

L'exemple de demande de plan de données suivant répertorie les objets du compartiment qui sous-tend le point Multi-Region d'accès spécifié par l'ARN. Pour utiliser cet exemple, remplacez les user input placeholders par vos propres informations.

aws s3api list-objects-v2 --bucket arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap
SDK for Java
S3Client s3Client = S3Client.builder() .build(); String bucketName = "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap"; ListObjectsV2Request listObjectsRequest = ListObjectsV2Request .builder() .bucket(bucketName) .build(); s3Client.listObjectsV2(listObjectsRequest);
SDK for JavaScript
const client = new S3Client({}); async function listObjectsExample() { const command = new ListObjectsV2Command({ Bucket: "arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap", }); try { const response = await client.send(command); console.log(response); } catch (err) { console.error(err); } }
SDK for Python
import boto3 client = boto3.client('s3') client.list_objects_v2( Bucket='arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap' )

Utiliser une URL présignée avec des points Multi-Region d'accès

Vous pouvez utiliser une URL présignée pour générer une URL qui permet à d'autres personnes d'accéder à vos compartiments Amazon S3 via un point d' Multi-Region accès Amazon S3. Lorsque vous créez une URL présignée, vous l’associez à une action d’objet spécifique, telle qu’un chargement S3 (PutObject) ou un téléchargement S3 (GetObject). Vous pouvez partager l’URL présignée, et toute personne y ayant accès peut effectuer l’action intégrée dans l’URL comme s’il s’agissait de l’utilisateur connecté d’origine.

Les URL présignées ont une date d’expiration. Lorsque le délai d’expiration est atteint, l’URL ne fonctionne plus.

Avant d'utiliser des points Multi-Region d'accès S3 avec des URL présignées, vérifiez la compatibilité du AWS SDK avec l'algorithme SigV4a. Vérifiez que la version de votre kit SDK prend en charge SigV4A comme mise en œuvre de la signature qui est utilisée pour signer les requêtes globales Région AWS . Pour plus d’informations sur l’utilisation d’URL présignées avec Amazon S3, consultez Partage d’objets à l’aide d’URL présignées.

Les exemples suivants montrent comment utiliser des points d' Multi-Region accès avec des URL présignées. Pour utiliser ces exemples, remplacez les user input placeholders par vos propres informations.

AWS CLI
aws s3 presign arn:aws:s3::123456789012:accesspoint/MultiRegionAccessPoint_alias/example-file.txt
SDK for Python
import logging import boto3 from botocore.exceptions import ClientError s3_client = boto3.client('s3',aws_access_key_id='xxx',aws_secret_access_key='xxx') s3_client.generate_presigned_url(HttpMethod='PUT',ClientMethod="put_object", Params={'Bucket':'arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap','Key':'example-file'})
SDK for Java
S3Presigner s3Presigner = S3Presigner.builder() .credentialsProvider(StsAssumeRoleCredentialsProvider.builder() .refreshRequest(assumeRole) .stsClient(stsClient) .build()) .build(); GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("arn:aws:s3::123456789012:accesspoint/abcdef0123456.mrap") .key("example-file") .build(); GetObjectPresignRequest preSignedReq = GetObjectPresignRequest.builder() .getObjectRequest(getObjectRequest) .signatureDuration(Duration.ofMinutes(10)) .build(); PresignedGetObjectRequest presignedGetObjectRequest = s3Presigner.presignGetObject(preSignedReq);
Note

Pour utiliser SigV4a avec des informations d'identification de sécurité temporaires, par exemple, lorsque vous utilisez des rôles IAM, assurez-vous de demander les informations d'identification temporaires à un point de terminaison régional dans AWS Security Token Service (), plutôt qu'à un point de terminaison global.AWS STS Si vous utilisez le point de terminaison global pour AWS STS (sts.amazonaws.com), des informations d'identification temporaires AWS STS seront générées à partir d'un point de terminaison global, qui n'est pas pris en charge par Sig4A. Par conséquent, vous obtenez une erreur. Pour résoudre ce problème, utilisez l'un des points de terminaison régionaux répertoriés pour AWS STS.

Utilisez un compartiment configuré avec Requester Pays with Multi-Region Access Points

Si un compartiment S3 associé à vos points d' Multi-Region accès est configuré pour utiliser Requester Pays, le demandeur paiera la demande de bucket, le téléchargement et tous les coûts liés Multi-Region aux points d'accès. Pour plus d’informations, consultez Tarification Amazon S3.

Voici un exemple de demande de plan de données à un point d' Multi-Region accès connecté à un bucket Requester Pays.

AWS CLI

Pour télécharger des objets depuis un point d' Multi-Region accès connecté à un bucket Requester Pays, vous devez les spécifier dans --request-payer requester le cadre de votre get-object demande. Vous devez également spécifier le nom du fichier dans le compartiment, ainsi que l’emplacement où le fichier téléchargé doit être stocké.

aws s3api get-object --bucket MultiRegionAccessPoint_ARN --request-payer requester --key example-file-in-bucket.txt example-location-of-downloaded-file.txt
SDK for Java

Pour télécharger des objets depuis un point d' Multi-Region accès connecté à un bucket Requester Pays, vous devez le spécifier dans le RequestPayer.REQUESTER cadre de votre GetObject demande. Vous devez également spécifier le nom du fichier dans le compartiment, ainsi que l’emplacement où il doit être stocké.

GetObjectResponse getObjectResponse = s3Client.getObject(GetObjectRequest.builder() .key("example-file.txt") .bucket("arn:aws:s3:: 123456789012:accesspoint/abcdef0123456.mrap") .requestPayer(RequestPayer.REQUESTER) .build() ).response();