Verwendung von Access Points mit mehreren Regionen mit unterstützten Vorgängen API - 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 Access Points mit mehreren Regionen mit unterstützten Vorgängen API

Amazon S3 unterstützt verschiedene Vorgänge, mit denen Sie Multi-Regions-Zugriffspunkte 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 asynchroner Operationen über die Konsole oder über AWS CLI AWS SDKs, oder einsehen. DescribeMultiRegionAccessPointOperation REST API 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 Regionen, die von Access Points in mehreren Regionen unterstützt werden, finden Sie unter. Einschränkungen und Beschränkungen des Multi-Regions-Zugriffspunkts

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

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

Kompatibilität von Access Points für mehrere Regionen mit und AWS-ServicesAWS SDKs

Um einen Multi-Region-Access Point mit Anwendungen zu verwenden, die einen Amazon S3 S3-Bucket-Namen benötigen, verwenden Sie den Amazon-Ressourcennamen (ARN) des Multi-Region-Access Points, wenn Sie Anfragen mit einem stellen. AWS SDK Informationen darüber, welche mit Access Points in mehreren Regionen kompatibel AWS SDKs sind, finden Sie unter Kompatibilität mit. AWS SDKs

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

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

Anmerkung

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

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 dieses 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

Im Folgenden wird SDK für Java-Code die Routenkonfiguration Ihres Access Points mit mehreren Regionen abgerufen, sodass Sie den aktuellen Routing-Status für Ihre Buckets einsehen 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

Der folgende JavaScript Code ruft Ihre Routenkonfiguration SDK für Multi-Region Access Point 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 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 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. Um diese Richtlinie mithilfe des AWS CLI put-bucket-policy Befehls anzuwenden, wie im nächsten Beispiel gezeigt, speichern Sie die Richtlinie beispielsweise in einer Datei. 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 dieses 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

Im Folgenden SDK für Java-Code wird Ihre Routing-Konfiguration für multiregionale 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

Der folgende JavaScript Code aktualisiert Ihre Routenkonfiguration SDK für multiregionale Access Points. 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 Python-Code aktualisiert Ihre Routenkonfiguration SDK für Multi-Region Access Point. 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': DOC-EXAMPLE-BUCKET, 'Region': ap-southeast-2, 'TrafficDialPercentage': 10 }])

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

Verwenden Sie die Operaton 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 Uploads von Anfragen auf Datenebene example.txt zum angegebenen multiregionalen Access Point. Um dieses Beispiel zu verwenden, ersetzen Sie das Platzhalter für Benutzereingaben mit Ihren eigenen 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

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

AWS CLI

Im folgenden Beispiel wird eine Datenebenenanforderung abgerufen example.txt vom angegebenen Multi-Region-Access Point und lädt ihn herunter als downloaded_example.txt. Um dieses Beispiel zu verwenden, ersetzen Sie das Platzhalter für Benutzereingaben mit Ihren eigenen 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. Im folgenden Beispielbefehl werden alle Objekte für den angegebenen Multi-Region-Access Point mithilfe von ARN für den Multi-Region-Access Point aufgelistet. In diesem Fall ist der Multi-Region-Zugriffspunkt: ARN

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 den Berechtigungsanforderungen für Multi-Region Access Points finden Sie unter Berechtigungen.

AWS CLI

Das folgende Beispiel für eine Datenebenenanforderung listet die Objekte in dem Bucket auf, der dem Multi-Region Access Point zugrunde liegt, der durch den spezifiziert wurde. ARN Um dieses Beispiel zu verwenden, ersetzen Sie den Platzhalter für Benutzereingaben mit Ihren eigenen 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 einen URL mit mehreren Regionen vorsignierten Access Points

Sie können einen vorsignierten verwenden, um einen URL zu generieren, der es anderen ermöglichtURL, über einen Amazon S3 S3-Zugriffspunkt für mehrere Regionen auf Ihre Amazon S3 S3-Buckets zuzugreifen. Wenn Sie ein vorsigniertes Objekt erstellenURL, verknüpfen Sie es mit einer bestimmten Objektaktion, z. B. einem S3-Upload (PutObject) oder einem S3-Download (). GetObject Sie können das vorsignierte Objekt teilenURL, und jeder, der Zugriff darauf hat, kann die darin eingebettete Aktion so ausführen, URL als wäre es der ursprüngliche signierende Benutzer.

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

Bevor Sie S3 Multi-Region Access Points mit vorsignierter Version verwendenURLs, überprüfen Sie die AWS SDKKompatibilität mit dem SigV4A-Algorithmus. Stellen Sie sicher, dass Ihre SDK Version SigV4a als Signaturimplementierung unterstützt, die zum Signieren der globalen Anfragen verwendet wird. AWS-Region Weitere Informationen zur Verwendung von presigned URLs with Amazon S3 finden Sie unter Sharing objects by using URLs presigned.

Die folgenden Beispiele zeigen, wie Sie multiregionale Access Points mit vorsignierten Geräten verwenden können. URLs Um diese Beispiele zu verwenden, ersetzen Sie das Platzhalter für Benutzereingaben mit Ihren eigenen 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 Sicherheitsanmeldedaten zu verwenden — zum Beispiel bei der Verwendung von IAM Rollen — stellen Sie sicher, dass Sie die temporären Anmeldeinformationen von einem regionalen Endpunkt in AWS Security Token Service ()AWS STS und nicht von einem globalen Endpunkt anfordern. Wenn Sie den globalen Endpunkt für AWS STS (sts.amazonaws.com) verwenden, AWS STS werden temporäre Anmeldeinformationen von einem globalen Endpunkt generiert, was von Sig4A nicht unterstützt 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 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();