Verwenden von Multi-Region Access Points mit unterstützten API-Operationen - 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.

Verwenden von Multi-Region Access Points mit unterstützten API-Operationen

Amazon S3 unterstützt verschiedene Vorgänge, mit denen Sie Multi-Region Access Points verwalten können. 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 von asynchronen Vorgängen über die Konsole anzeigen, oder Sie können DescribeMultiRegionAccessPointOperation in der AWS CLI, in AWS SDKs oder in der REST-API verwenden. 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 Anforderungen auf Steuerebene zum Erstellen oder Verwalten von Multi-Region Access Points müssen an die Region US West (Oregon) weitergeleitet werden. Für Anforderungen von Multi-Region Access Point auf Steuerebene müssen keine Regionen angegeben werden. Für die Failover-Steuerebene von Multi-Region Access Points muss die Anforderung an eine der fünf unterstützten Regionen weitergeleitet werden. Weitere Informationen zu unterstützten Regionen von Multi-Regions-Zugangspunkten finden Sie unter Einschränkungen und Beschränkungen des Multi-Regions-Zugriffspunkts.

Außerdem müssen Sie die dem Benutzer, der Rolle oder anderen AWS Identity and Access Management (IAM)-Entität, der/die eine Anforderung zum Verwalten eines Multi-Region Access Point stellt, die Berechtigung s3:ListAllMyBuckets erteilen.

Die folgenden Beispiele veranschaulichen, wie Multi-Region Access Points mit kompatiblen Operationen in Amazon S3 verwendet werden.

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

Wenn Sie einen Multi-Region Access Point mit Anwendungen verwenden möchten, die einen Amazon-S3-Bucket-Namen erfordern, verwenden Sie den Amazon-Ressourcennamen (ARN) des Multi-Region Access Point, wenn Sie Anforderungen mithilfe eines AWS SDK stellen. Informationen dazu, welche AWS SDKs mit Multi-Region Access Points kompatibel sind, finden Sie im Kompatibilität mit AWS SDKs.

Kompatibilität von Multi-Region Access Points mit S3-Operationen

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

Anmerkung

Multi-Region Access Points unterstützen Kopiervorgänge unter Verwendung von Multi-Region Access Points nur als Ziel, wenn der ARN des Multi-Region Access Point verwendet wird.

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

Anzeigen Ihrer Weiterleitungskonfiguration für Multi-Region Access Points

AWS CLI

Mit dem folgenden Beispielbefehl wird Ihre Routenkonfiguration für Multi-Region Access Points abgerufen, sodass Sie die aktuellen Weiterleitungstatus für Ihre Buckets sehen können. Wenn Sie diesen 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

Mit dem folgenden Code von SDK für Java wird Ihre Routenkonfiguration für Multi-Region Access Points abgerufen, sodass Sie die aktuellen Weiterleitungstatus 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

Mit dem folgenden Code von SDK für JavaScript wird Ihre Routenkonfiguration für Multi-Region Access Points abgerufen, sodass Sie die aktuellen Weiterleitungstatus 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

Mit dem folgenden Code von SDK für Python wird Ihre Routenkonfiguration für Multi-Region Access Points abgerufen, sodass Sie die aktuellen Weiterleitungstatus 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 Richtlinie für Multi-Region Access Points delegiert. Nachdem Sie die Zugriffskontrolle an die Richtlinie für Multi-Region Access Points delegiert haben, wird die Bucket-Richtlinie nicht mehr für die Zugriffskontrolle verwendet, wenn Anforderungen über den Multi-Region Access Point gestellt werden.

Hier ist ein Beispiel für eine Bucket-Richtlinie, die die Zugriffskontrolle an die Richtlinie der Multi-Region Access Points delegiert. Wenn Sie diese Bucket-Beispielrichtlinie verwenden möchten, ersetzen Sie user input placeholders durch Ihre eigenen Informationen. Damit Sie diese Richtlinie mit dem AWS CLI-Befehl put-bucket-policy anwenden können, wie im nächsten Beispiel gezeigt, speichern Sie die Richtlinie in einer Datei, z. B. policy.json.

{ "Version": "2012-10-17", "Statement": { "Principal": { "AWS": "*" }, "Effect": "Allow", "Action": ["s3:*"], "Resource": ["arn:aws:s3:::111122223333/*", "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 einer Weiterleitungskonfiguration von Multi-Region Access Points

Mit dem folgenden Beispielbefehl wird die Weiterleitungskonfiguration des Multi-Region Access Points aktualisiert. Weiterleitungsbefehle für den Multi-Region Access Point können in einer dieser fünf Regionen ausgeführt werden:

  • ap-southeast-2

  • ap-northeast-1

  • us-east-1

  • us-west-2

  • eu-west-1

In einer Weiterleitungskonfiguration für den Multi-Region Access Point können Sie Buckets auf einen aktiven oder passiven Weiterleitungsstatus festlegen. 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

Mit dem folgenden Beispielbefehl wird die Weiterleitungskonfiguration Ihres Multi-Region Access Points aktualisiert. 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

Mit dem folgenden Code von SDK für Java wird die Weiterleitungskonfiguration Ihres Multi-Region Access Points aktualisiert. 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

Mit dem folgenden Code von SDK für JavaScript wird die Weiterleitungskonfiguration Ihres Multi-Region Access Points aktualisiert. 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

Mit dem folgenden Code von SDK für Python wird die Weiterleitungskonfiguration Ihres Multi-Region Access Points aktualisiert. 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 }])

Hinzufügen eines Objekts zu einem Bucket in Ihrem Multi-Region Access Point

Verwenden Sie die Operation PutObject, um ein Objekt zu dem Bucket hinzuzufügen, der dem Multi-Region Access Point zugeordnet ist. Aktivieren Sie die regionsübergreifende Replikation, um alle Buckets im Multi-Region Access Point synchron zu halten.

Anmerkung

Für diese Operation müssen Sie über die s3:PutObject-Berechtigung für den Multi-Region Access Point verfügen. Weitere Informationen zu den Berechtigungsanforderungen für Multi-Region Access Points finden Sie unter Berechtigungen.

AWS CLI

Das folgende Beispiel für eine Anforderung auf Datenebene lädt example.txt auf den angegebenen Multi-Region Access Point hoch. 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!' )

Abrufen von Objekten von Ihrem Multi-Region Access Point

Verwenden Sie die Operation GetObject, um Objekte aus dem Multi-Region Access Point abzurufen.

Anmerkung

Für diese API-Operation müssen Sie über die s3:GetObject-Berechtigung für den Multi-Region Access Point verfügen. Weitere Informationen zu den Berechtigungsanforderungen für Multi-Region Access Points finden Sie unter Berechtigungen.

AWS CLI

Das folgende Beispiel für eine Anforderung auf Datenebene ruft die Datei example.txt vom angegebenen Multi-Region Access Point ab und lädt sie mit dem Namen 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' )

Auflisten von Objekten, die in einem Bucket gespeichert sind, der Ihrem Multi-Region Access Point zugrunde liegt

Verwenden Sie die Operation ListObjectsV2, um eine Liste von Objekten zurückzugeben, die in einem Bucket gespeichert sind, der Ihrem Multi-Region Access Point zugrunde liegt. Mit dem folgenden Beispielbefehl werden alle Objekte für den angegebenen Multi-Region Access Point aufgeführt, indem der ARN für den Multi-Region Access Point verwendet wird. In diesem Fall lautet der ARN für den Multi-Region Access Point:

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

Anmerkung

Für diese API-Operation müssen Sie über die s3:ListBucket-Berechtigung für den Multi-Region Access Point und den zugrunde liegenden Bucket verfügen. Weitere Informationen zu den Berechtigungsanforderungen für Multi-Region Access Points finden Sie unter Berechtigungen.

AWS CLI

In der folgenden Beispielanforderung auf Datenebene werden die Objekte in dem Bucket aufgeführt, der dem vom 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 einer vorsignierte URL mit Multi-Region Access Points

Sie können eine vorsignierte URL verwenden, um eine URL zu generieren, die es anderen ermöglicht, über einen Amazon S3 Multi-Region Access Point auf Ihre Amazon-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

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

Verwenden eines Buckets, der mit „Zahlung durch den Anforderer“ konfiguriert ist, mit Multi-Region Access Points

Wenn ein S3-Bucket, der Ihren Multi-Region Access Points zugeordnet ist, für die Verwendung von „Zahlung durch den Anforderer“ konfiguriert ist, trägt der Anforderer die Kosten für die Bucket-Anforderung, den Download und alle mit Multi-Region Access Points verbundenen Kosten. Weitere Informationen finden Sie unter Amazon S3 – Preise.

Hier sehen Sie ein Beispiel für eine Anforderung auf Datenebene an einen Multi-Region Access Point, der mit einem Bucket mit Zahlung durch den Anforderer verbunden ist.

AWS CLI

Wenn Sie Objekte von einem Multi-Region Access Point herunterladen möchten, der mit einem Bucket mit Zahlung durch den Anforderer verbunden ist, müssen Sie --request-payer requester als Teil Ihrer Anforderung get-object 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

Wenn Sie Objekte von einem Multi-Region Access Point herunterladen möchten, der mit einem Bucket mit Zahlung durch den Anforderer verbunden ist, müssen Sie RequestPayer.REQUESTER als Teil Ihrer Anforderung GetObject 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();