Menggunakan Titik Akses Multi-Wilayah dengan operasi API yang didukung - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Titik Akses Multi-Wilayah dengan operasi API yang didukung

Amazon S3 menyediakan serangkaian operasi untuk mengelola Titik Akses Multi-Wilayah. Amazon S3 memproses beberapa operasi ini secara sinkron dan beberapa secara asinkron. Saat Anda menginvoke operasi asinkron, Amazon S3 terlebih dahulu akan mengotorisasi operasi yang diminta secara sinkron. Jika otorisasi berhasil, Amazon S3 akan memberikan token yang dapat Anda gunakan untuk melacak kemajuan dan hasil operasi yang diminta.

catatan

Permintaan yang dibuat melalui konsol Amazon S3 selalu sinkron. Konsol menunggu hingga permintaan selesai sebelum memperbolehkan Anda mengirimkan permintaan lain.

Anda dapat melihat status saat ini dan hasil operasi asinkron dengan menggunakan konsol, atau Anda dapat menggunakannya DescribeMultiRegionAccessPointOperation di, AWS CLI AWS SDKs, atau REST API. Amazon S3 memberikan token pelacakan untuk merespons operasi asinkron. Anda menyertakan token pelacakan itu sebagai argumen untuk DescribeMultiRegionAccessPointOperation. Saat Anda menyertakan token pelacakan, Amazon S3 kemudian memberikan status saat ini dan hasil operasi yang ditentukan, termasuk kesalahan atau informasi sumber daya yang relevan. Amazon S3 melakukan operasi DescribeMultiRegionAccessPointOperation secara sinkron.

Semua permintaan bidang kontrol untuk membuat atau mengelola Titik Akses Multi-Wilayah harus dirutekan ke Wilayah US West (Oregon). Untuk permintaan bidang data Titik Akses Multi-Wilayah, tidak perlu menentukan Wilayah secara khusus. Untuk bidang kontrol failover Titik Akses Multi-Wilayah, permintaan harus dirutekan ke salah satu dari lima Wilayah yang didukung. Untuk informasi selengkapnya tentang Wilayah yang didukung Titik Akses Multi-Wilayah, lihatPembatasan dan batasan Titik Akses Multi-Wilayah.

Selain itu, Anda harus memberikan s3:ListAllMyBuckets izin kepada pengguna, peran, atau entitas lain AWS Identity and Access Management (IAM) yang membuat permintaan untuk mengelola Titik Akses Multi-Wilayah.

Berikut ini adalah contoh cara menggunakan Titik Akses Multi-Wilayah dengan operasi yang kompatibel di Amazon S3.

Kompatibilitas Titik Akses Multi-Wilayah dengan Layanan AWS dan AWS SDKs

Untuk menggunakan Titik Akses Multi-Wilayah dengan aplikasi yang memerlukan nama bucket Amazon S3, gunakan Nama Sumber Daya Amazon (ARN) dari Titik Akses Multi-Wilayah saat membuat permintaan menggunakan SDK. AWS Untuk memeriksa mana yang AWS SDKs kompatibel dengan Titik Akses Multi-Wilayah, lihat Kompatibilitas dengan AWS SDKs.

Kompatibilitas Titik Akses Multi-Wilayah dengan operasi S3

Anda dapat menggunakan operasi API bidang data Amazon S3 berikut untuk melakukan tindakan pada objek dalam bucket yang terkait dengan Titik Akses Multi-Wilayah Anda. Operasi S3 berikut dapat menerima Titik Akses Multi-Wilayah: ARNs

catatan

Titik Akses Multi-Region mendukung operasi penyalinan menggunakan Titik Akses Multi-Wilayah hanya sebagai tujuan saat menggunakan ARN Titik Akses Multi-Wilayah.

Anda dapat menggunakan operasi bidang kontrol Amazon S3 berikut untuk membuat dan mengelola Titik Akses Multi-Wilayah:

Lihat konfigurasi perutean Titik Akses Multi-Wilayah

AWS CLI

Contoh perintah berikut mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh perintah ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Kode SDK for Java berikut mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

SDK berikut untuk JavaScript kode mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

SDK berikut untuk kode Python mengambil konfigurasi rute Titik Akses Multi-Wilayah sehingga Anda dapat melihat status perutean saat ini untuk bucket Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Perbarui kebijakan bucket Amazon S3

Untuk memberikan akses yang tepat, Anda juga harus memperbarui kebijakan bucket Amazon S3 yang mendasarinya. Contoh berikut mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah. Setelah Anda mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah, kebijakan bucket tidak lagi digunakan untuk kontrol akses saat permintaan dibuat melalui Titik Akses Multi-Wilayah.

Berikut adalah contoh kebijakan bucket yang mendelegasikan kontrol akses ke kebijakan Titik Akses Multi-Wilayah. Untuk menggunakan contoh kebijakan bucket ini, ganti user input placeholders dengan informasi Anda sendiri. Untuk menerapkan kebijakan ini melalui AWS CLI put-bucket-policy perintah, seperti yang ditunjukkan pada contoh berikutnya, simpan kebijakan dalam file, misalnya,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" } } } }

Contoh perintah put-bucket-policy berikut mengaitkan kebijakan bucket S3 yang diperbarui dengan bucket S3 Anda:

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

Memperbarui konfigurasi rute Titik Akses Multi-Wilayah

Contoh perintah berikut memperbarui konfigurasi rute Titik Akses Multi-Wilayah. Perintah rute Titik Akses Multi-Wilayah dapat dijalankan terhadap lima Wilayah berikut:

  • ap-southeast-2

  • ap-northeast-1

  • us-east-1

  • us-west-2

  • eu-west-1

Dalam konfigurasi perutean Titik Akses Multi-Wilayah, Anda dapat mengatur bucket ke status perutean aktif atau pasif. Bucket aktif menerima lalu lintas, sedangkan bucket pasif tidak. Anda dapat menyetel status perutean bucket dengan mengatur nilai TrafficDialPercentage bucket ke 100 untuk aktif atau 0 untuk pasif.

AWS CLI

Contoh perintah berikut ini memperbarui konfigurasi perutean Titik Akses Multi-Wilayah Anda. Dalam contoh ini, amzn-s3-demo-bucket1 diatur ke status aktif dan amzn-s3-demo-bucket2 diatur ke pasif. Untuk menggunakan contoh perintah ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Kode SDK for Java berikut memperbarui konfigurasi perutean Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

SDK berikut untuk JavaScript kode memperbarui konfigurasi rute Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Kode SDK untuk Python berikut ini memperbarui konfigurasi rute Titik Akses Multi-Wilayah Anda. Untuk menggunakan contoh sintaks ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Tambahkan objek ke bucket di Titik Akses Multi-Wilayah

Untuk menambahkan objek ke bucket yang terkait dengan Titik Akses Multi-Wilayah, Anda dapat menggunakan PutObjectoperasi. Agar semua bucket di Titik Akses Multi-Wilayah tetap sinkron, aktifkan Replikasi Lintas Wilayah.

catatan

Untuk menggunakan operasi ini, Anda harus memiliki izin s3:PutObject untuk Titik Akses Multi-Wilayah. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.

AWS CLI

Contoh permintaan bidang data berikut mengunggah example.txt ke Titik Akses Multi-Wilayah yang ditentukan. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.

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

Mengambil objek dari Titik Akses Multi-Wilayah

Untuk mengambil objek dari Multi-Region Access Point, Anda dapat menggunakan GetObjectoperasi.

catatan

Untuk menggunakan operasi API ini, Anda harus memiliki izin s3:GetObject untuk Titik Akses Multi-Wiayah. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.

AWS CLI

Contoh permintaan bidang data berikut mengambil example.txt dari Titik Akses Multi-Wilayah yang ditentukan dan mengunduhnya sebagai downloaded_example.txt. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.

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

Buat daftar objek yang disimpan dalam bucket yang mendasari Titik Akses Multi-Wilayah Anda

Untuk mengembalikan daftar objek yang disimpan dalam bucket yang mendasari Titik Akses Multi-Wilayah Anda, gunakan ListObjectsV2operasi. Dalam contoh perintah berikut, semua objek untuk Titik Akses Multi-Wilayah yang ditentukan dicantumkan dengan menggunakan ARN untuk Titik Akses Multi-Wilayah. Dalam hal ini, ARN Titik Akses Multi-Wilayah adalah:

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

catatan

Untuk menggunakan operasi API ini, Anda harus memiliki izin s3:ListBucket untuk Titik Akses Multi-Wilayah dan bucket yang mendasarinya. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.

AWS CLI

Contoh permintaan bidang data berikut mencantumkan objek dalam bucket yang mendasari Titik Akses Multi-Wilayah yang ditentukan oleh ARN. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.

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

Gunakan URL yang telah ditetapkan sebelumnya dengan Titik Akses Multi-Wilayah

Anda dapat menggunakan URL yang telah ditetapkan sebelumnya untuk membuat URL sehingga orang lain dapat mengakses bucket Amazon S3 Anda melalui Titik Akses Multi-Wilayah Amazon S3. Saat membuat URL yang telah ditetapkan sebelumnya, kaitkan dengan tindakan objek tertentu, seperti unggah S3 (PutObject) atau unduhan S3 (GetObject). Anda dapat membagikan URL yang telah ditetapkan sebelumnya, dan siapa pun yang memiliki akses ke URL dapat melakukan tindakan yang disertakan dalam URL seolah-olah mereka adalah pengguna yang membuat URL sendiri.

Presigned URLs memiliki tanggal kedaluwarsa. Ketika masa berlaku habis, URL tidak akan berfungsi lagi.

Sebelum Anda menggunakan S3 Multi-Region Access Points dengan presigned URLs, periksa kompatibilitas AWS SDK dengan algoritma Sigv4a. Verifikasi bahwa versi SDK Anda mendukung Sigv4A sebagai implementasi penandatanganan yang digunakan untuk menandatangani permintaan global Wilayah AWS . Untuk informasi selengkapnya tentang penggunaan presigned URLs dengan Amazon S3, lihat Berbagi objek menggunakan presigned. URLs

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan Titik Akses Multi-Region dengan URLs presigned. Untuk menggunakan contoh ini, ganti user input placeholders dengan informasi Anda sendiri.

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

Untuk menggunakan Sigv4a dengan kredensi keamanan sementara—misalnya, saat menggunakan peran IAM—pastikan Anda meminta kredensi sementara dari titik akhir Regional di (), bukan titik akhir global. AWS Security Token Service AWS STS Jika Anda menggunakan endpoint global for AWS STS (sts.amazonaws.com), AWS STS akan menghasilkan kredensi sementara dari titik akhir global, yang tidak didukung oleh Sig4A. Akibatnya, akan terjadi kesalahan. Untuk mengatasi masalah ini, gunakan salah satu titik akhir Regional yang terdaftar untuk AWS STS.

Gunakan bucket yang dikonfigurasi dengan Pembayaran Pemohon dengan Titik Akses Multi-Wilayah

Jika bucket S3 yang terkait dengan Titik Akses Multi-Wilayah Anda dikonfigurasi untuk menggunakan Pembayaran Pemohon, pemohon akan membayar permintaan bucket, unduhan, dan biaya terkait Titik Akses Multi-Wilayah. Untuk informasi selengkapnya, lihat Harga Amazon S3.

Berikut adalah contoh permintaan bidang data ke Titik Akses Multi-Wilayah yang terhubung ke bucket Pembayaran Pemohon.

AWS CLI

Untuk mengunduh objek dari Titik Akses Multi-Wilayah yang terhubung ke bucket Requester Pays, Anda harus menentukan --request-payer requester sebagai bagian dari get-objectpermintaan. Anda juga harus menentukan nama file di dalam bucket dan lokasi penyimpanan file yang diunduh.

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

Untuk mengunduh objek dari Titik Akses Multi-Wilayah yang terhubung ke bucket Pembayaran Pemohon, Anda harus menentukan RequestPayer.REQUESTER sebagai bagian dari permintaan GetObject Anda. Anda juga harus menentukan nama file dalam bucket, serta lokasi penyimpanannya.

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