View a markdown version of this page

Verwendung von Multi-Region Access Points mit unterstützten API-Vorgängen - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Multi-Region Access Points mit unterstützten API-Vorgängen

Amazon S3 bietet eine Reihe von Vorgängen zur Verwaltung von Multi-Region Access Points. Amazon S3 verarbeitet einige dieser Vorgänge synchron und einige asynchron. Wenn Sie einen asynchronen Vorgang aufrufen, autorisiert Amazon S3 den angeforderten Vorgang zunächst synchron. Wenn die Autorisierung erfolgreich ist, gibt Amazon S3 ein Token zurück, mit dem Sie den Fortschritt und die Ergebnisse des angeforderten Vorgangs verfolgen können.

Anmerkung

Anforderungen, die über die Amazon-S3-Konsole erfolgen, sind immer synchron. Die Konsole wartet, bis die Anforderung abgeschlossen ist, bevor Sie eine weitere Anforderung senden können.

Sie können den aktuellen Status und die Ergebnisse asynchroner Operationen mithilfe der Konsole oder DescribeMultiRegionAccessPointOperation in der AWS SDKs oder der AWS CLI REST-API einsehen. Amazon S3 stellt ein Tracking-Token in der Antwort auf einen asynchronen Vorgang bereit. Sie schließen dieses Tracking-Token als Argument für DescribeMultiRegionAccessPointOperation ein. Wenn Sie das Tracking-Token einschließen, gibt Amazon S3 den aktuellen Status und die Ergebnisse des angegebenen Vorgangs zurück, einschließlich etwaiger Fehler oder relevanter Ressourceninformationen. Amazon S3 führt DescribeMultiRegionAccessPointOperation-Vorgänge synchron durch.

Alle Anfragen der Steuerungsebene zur Erstellung oder Verwaltung von Multi-Region Access Points müssen an die Region weitergeleitet werden. US West (Oregon) Für Anfragen auf der Datenebene von Multi-Region Access Points müssen keine Regionen angegeben werden. Für die Multi-Region Access Point-Failover-Kontrollebene muss die Anfrage an eine der fünf unterstützten Regionen weitergeleitet werden. Weitere Informationen zu den von Multi-Region Access Point unterstützten Regionen finden Sie unter. Multi-Region Einschränkungen und Einschränkungen von Access Point

Darüber hinaus müssen Sie dem Benutzer, der Rolle oder einer anderen Entität AWS Identity and Access Management (IAM), die eine Anfrage zur Verwaltung eines Multi-Region Access Points stellt, die s3:ListAllMyBuckets Erlaubnis erteilen.

Die folgenden Beispiele zeigen, wie Multi-Region Access Points mit kompatiblen Vorgängen in Amazon S3 verwendet werden.

Multi-Region Access Point-Kompatibilität mit AWS-Services und AWS SDKs

Um einen Multi-Region Access Point mit Anwendungen zu verwenden, die einen Amazon S3-Bucket-Namen benötigen, verwenden Sie den Amazon-Ressourcennamen (ARN) des Multi-Region Access Points, wenn Sie Anfragen mithilfe eines AWS SDK stellen. Um zu überprüfen, welche AWS SDKs mit Multi-Region Access Points kompatibel sind, siehe Kompatibilität mit AWS SDKs.

Multi-Region Access Point-Kompatibilität mit S3-Vorgängen

Sie können die folgenden Amazon S3-API-Operationen für die Datenebene verwenden, um Aktionen an Objekten in Buckets auszuführen, die Ihrem Multi-Region Access Point zugeordnet sind. Die folgenden S3-Operationen können Multi-Region Access Point-ARNs akzeptieren:

Anmerkung

Multi-Region Access Points unterstützt Kopiervorgänge, bei denen Multi-Region Access Points nur als Ziel verwendet werden, wenn der Multi-Region Access Point-ARN verwendet wird.

Sie können die folgenden Amazon S3-Steuerungsebenenoperationen verwenden, um Ihre Multi-Region Access Points zu erstellen und zu verwalten:

Sehen Sie sich Ihre Multi-Region Access Point-Routing-Konfiguration an

AWS CLI

Mit dem folgenden Beispielbefehl wird Ihre Multi-Region Access Point-Routenkonfiguration abgerufen, sodass Sie den aktuellen Routing-Status für Ihre Buckets sehen können. Wenn Sie diese Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Der folgende SDK für Java-Code ruft Ihre Multi-Region Access Point-Routenkonfiguration ab, sodass Sie den aktuellen Routing-Status für Ihre Buckets sehen können. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Das folgende SDK für JavaScript Code ruft Ihre Multi-Region Access Point-Routenkonfiguration ab, sodass Sie den aktuellen Routing-Status für Ihre Buckets sehen können. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Der folgende SDK für Python-Code ruft Ihre Multi-Region Access Point-Routenkonfiguration ab, sodass Sie den aktuellen Routing-Status für Ihre Buckets sehen können. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Aktualisieren der zugrunde liegende Bucket-Richtlinie von Amazon S3

Damit ein ordnungsgemäßer Zugriff gewährt wird, müssen Sie auch die zugrunde liegende Bucket-Richtlinie von Amazon S3 aktualisieren. In den folgenden Beispielen wird die Zugriffskontrolle an die Access Point-Richtlinie delegiert. Multi-Region Nachdem Sie die Zugriffskontrolle an die Multi-Region Access Point-Richtlinie delegiert haben, wird die Bucket-Richtlinie nicht mehr für die Zugriffskontrolle verwendet, wenn Anfragen über den Multi-Region Access Point gestellt werden.

Hier ist ein Beispiel für eine Bucket-Richtlinie, die die Zugriffskontrolle an die Multi-Region Access Point-Richtlinie delegiert. Wenn Sie diese Bucket-Beispielrichtlinie verwenden möchten, ersetzen Sie user input placeholders durch Ihre eigenen Informationen. Um diese Richtlinie über den AWS CLI put-bucket-policy Befehl anzuwenden, wie im nächsten Beispiel gezeigt, speichern Sie die Richtlinie in einer Datei, z. B. policy.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" } } } ] }

Der folgende Beispielbefehl put-bucket-policy verknüpft die aktualisierte S3-Bucket-Richtlinie mit Ihrem S3-Bucket:

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

Aktualisieren Sie eine Multi-Region Access Point-Routenkonfiguration

Der folgende Beispielbefehl aktualisiert die Multi-Region Access Point-Routenkonfiguration. Multi-Region Access Point-Routenbefehle können für die folgenden fünf Regionen ausgeführt werden:

  • ap-southeast-2

  • ap-northeast-1

  • us-east-1

  • us-west-2

  • eu-west-1

In einer Multi-Region Access Point-Routing-Konfiguration können Sie Buckets auf einen aktiven oder passiven Routing-Status setzen. Aktive Buckets empfangen Traffic, passive Buckets nicht. Sie können den Weiterleitungsstatus eines Buckets festlegen, indem Sie den Wert TrafficDialPercentage für den Bucket auf 100 für aktiv oder 0 für passiv einstellen.

AWS CLI

Der folgende Beispielbefehl aktualisiert Ihre Multi-Region Access Point-Routing-Konfiguration. In diesem Beispiel ist amzn-s3-demo-bucket1 auf den aktiven Status und amzn-s3-demo-bucket2 auf den passiven Status eingestellt. Wenn Sie diese Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Das folgende SDK für Java-Code aktualisiert Ihre Multi-Region Access Point-Routing-Konfiguration. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Das folgende SDK für JavaScript Code aktualisiert Ihre Multi-Region Access Point-Routenkonfiguration. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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

Der folgende SDK für Python-Code aktualisiert Ihre Multi-Region Access Point-Routenkonfiguration. Wenn Sie diese Beispielsyntax verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

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 }])

Fügen Sie einem Bucket in Ihrem Multi-Region Access Point ein Objekt hinzu

Um dem Bucket, der dem Multi-Region Access Point zugeordnet ist, ein Objekt hinzuzufügen, können Sie den PutObject Vorgang verwenden. Um alle Buckets im Multi-Region Access Point synchron zu halten, aktivieren Sie Cross-Region Replikation.

Anmerkung

Um diesen Vorgang verwenden zu können, benötigen Sie die s3:PutObject Berechtigung für den Multi-Region Access Point. Weitere Informationen zu Multi-Region den Zugriffspunkt-Berechtigungsanforderungen finden Sie unterBerechtigungen.

AWS CLI

Das folgende Beispiel für eine Datenebenenanforderung wird example.txt auf den angegebenen Multi-Region Access Point hochgeladen. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

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!' )

Rufen Sie Objekte von Ihrem Multi-Region Access Point ab

Um Objekte vom Multi-Region Access Point abzurufen, können Sie die GetObject Operation verwenden.

Anmerkung

Um diesen API-Vorgang verwenden zu können, benötigen Sie die s3:GetObject Berechtigung für den Multi-Region Access Point. Weitere Informationen zu Multi-Region den Zugriffspunkt-Berechtigungsanforderungen finden Sie unterBerechtigungen.

AWS CLI

Das folgende Beispiel für eine Datenebenenanforderung ruft den angegebenen Multi-Region Access Point example.txt ab und lädt ihn als downloaded_example.txt herunter. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

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' )

Listet Objekte auf, die in einem Bucket gespeichert sind, der Ihrem Multi-Region Access Point zugrunde liegt

Verwenden Sie den ListObjectsV2 Vorgang, um eine Liste von Objekten zurückzugeben, die in einem Bucket gespeichert sind, der Ihrem Multi-Region Access Point zugrunde liegt. Im folgenden Beispielbefehl werden alle Objekte für den angegebenen Multi-Region Access Point unter Verwendung des ARN für den Multi-Region Access Point aufgelistet. In diesem Fall lautet der ARN des Multi-Region Access Points:

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

Anmerkung

Um diesen API-Vorgang verwenden zu können, benötigen Sie die s3:ListBucket Berechtigung für den Multi-Region Access Point und den zugrunde liegenden Bucket. Weitere Informationen zu Multi-Region den Zugriffspunkt-Berechtigungsanforderungen finden Sie unterBerechtigungen.

AWS CLI

Das folgende Beispiel für eine Datenebenenanforderung listet die Objekte in dem Bucket auf, der dem durch den ARN angegebenen Multi-Region Access Point zugrunde liegt. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

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' )

Verwenden Sie eine vorsignierte URL mit Access Points Multi-Region

Sie können eine vorsignierte URL verwenden, um eine URL zu generieren, die es anderen ermöglicht, über einen Amazon S3 Access Point auf Ihre Amazon Multi-Region S3-Buckets zuzugreifen. Wenn Sie eine vorsignierte URL erstellen, verknüpfen Sie diese mit einer bestimmten Objektaktion, z. B. einem S3-Upload (PutObject) oder einem S3-Download (GetObject). Sie können die vorsignierte URL freigeben und jeder, der Zugriff darauf hat, kann die in die URL eingebettete Aktion so ausführen, als wäre er der ursprüngliche signierende Benutzer.

Vorsignierte URLs haben ein Ablaufdatum. Wenn das Ablaufdatum erreicht ist, funktioniert die URL nicht mehr.

Bevor Sie S3 Multi-Region Access Points mit vorsignierten URLs verwenden, überprüfen Sie die AWS SDK-Kompatibilität mit dem SigV4A-Algorithmus. Stellen Sie sicher, dass Ihre SDK-Version SigV4A als Signaturimplementierung unterstützt, die zum Signieren der globalen Anforderungen von AWS-Region verwendet wird. Weitere Informationen über die Verwendung vorsignierter URLs in Amazon S3 finden Sie unter Gemeinsame Nutzung von Objekten unter Verwendung vorsignierter URLs.

Die folgenden Beispiele zeigen, wie Sie Multi-Region Access Points mit vorsignierten URLs verwenden können. Wenn Sie diese Beispiele verwenden möchten, ersetzen Sie die user input placeholders durch Ihre Informationen.

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);
Anmerkung

Um SigV4A mit temporären Sicherheitsanmeldeinformationen zu verwenden, z. B. bei der Verwendung von IAM-Rollen, stellen Sie sicher, dass Sie die temporären Anmeldeinformationen von einem regionalen Endpunkt in () und nicht von einem globalen Endpunkt anfordern. AWS -Security-Token-Service AWS STS Wenn Sie den globalen Endpunkt für AWS STS (sts.amazonaws.com) verwenden, generiert er temporäre Anmeldeinformationen von einem globalen Endpunkt, der von Sig4A nicht unterstützt AWS STS wird. Aus diesem Grund erhalten Sie eine Fehlermeldung. Um dieses Problem zu beheben, verwenden Sie einen der aufgelisteten regionalen Endpunkte für. AWS STS

Verwenden Sie einen Bucket, der mit der Option „Anforderer bezahlt mit Multi-Region Access Points“ konfiguriert ist

Wenn ein S3-Bucket, der mit Ihren Multi-Region Access Points verknüpft ist, für die Verwendung von Requester Pays konfiguriert ist, zahlt der Anforderer für die Bucket-Anfrage, den Download und alle mit Multi-Region Access Points verbundenen Kosten. Weitere Informationen finden Sie unter Amazon S3 – Preise.

Hier ist ein Beispiel für eine Anfrage auf Datenebene an einen Multi-Region Access Point, der mit einem Requester Pays-Bucket verbunden ist.

AWS CLI

Um Objekte von einem Multi-Region Access Point herunterzuladen, der mit einem Bucket von Requester Pays verbunden ist, müssen Sie dies --request-payer requester als Teil Ihrer get-object Anfrage angeben. Sie müssen auch den Namen der Datei im Bucket sowie den Ort angeben, an dem sie gespeichert werden soll.

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

Um Objekte von einem Multi-Region Access Point herunterzuladen, der mit einem Bucket von Requester Pays verbunden ist, müssen Sie dies RequestPayer.REQUESTER als Teil Ihrer GetObject Anfrage angeben. Sie müssen auch den Namen der Datei in dem Bucket sowie den Ort angeben, an dem sie gespeichert werden soll.

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