Menggunakan Titik Akses Multi-Wilayah dengan operasi yang didukung API - 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 yang didukung API

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 menggunakan 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 AWS Identity and Access Management (IAM) lainnya 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 Amazon Resource Name ARN () dari Titik Akses Multi-Wilayah saat membuat permintaan menggunakan file. AWS SDK 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 API operasi bidang data Amazon S3 berikut ini 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-Wilayah mendukung operasi penyalinan menggunakan Titik Akses Multi-Wilayah hanya sebagai tujuan saat menggunakan Titik Akses Multi-Wilayah. ARN

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

Berikut ini SDK untuk kode Java mengambil konfigurasi rute Titik Akses Multi-Wilayah Anda 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

Berikut ini SDK 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

Berikut ini SDK untuk kode Python mengambil konfigurasi rute Titik Akses Multi-Wilayah Anda 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

Berikut ini SDK untuk kode Java memperbarui konfigurasi routing Multi-Region Access Point 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

Berikut ini SDK 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

Berikut ini SDK untuk kode Python 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 berikut upload permintaan bidang data example.txt ke Titik Akses Multi-Region yang ditentukan. Untuk menggunakan contoh ini, ganti placeholder masukan pengguna dengan 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 API operasi ini, Anda harus memiliki s3:GetObject izin untuk Titik Akses Multi-Wilayah. Untuk informasi selengkapnya tentang persyaratan izin Titik Akses Multi-Wilayah, lihat Izin.

AWS CLI

Contoh berikut permintaan bidang data mengambil example.txt dari Titik Akses Multi-Region yang ditentukan dan mengunduhnya sebagai downloaded_example.txt. Untuk menggunakan contoh ini, ganti placeholder masukan pengguna dengan 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-Region yang ditentukan terdaftar dengan menggunakan ARN untuk Titik Akses Multi-Region. Dalam hal ini, Titik Akses Multi-Region ARN adalah:

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

catatan

Untuk menggunakan API operasi ini, Anda harus memiliki s3:ListBucket izin 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 placeholder masukan pengguna dengan 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 presigned URL dengan Titik Akses Multi-Region

Anda dapat menggunakan presigned URL untuk menghasilkan a URL yang memungkinkan orang lain mengakses bucket Amazon S3 Anda melalui Titik Akses Multi-Wilayah Amazon S3. Saat membuat presignedURL, Anda mengaitkannya dengan tindakan objek tertentu, seperti upload S3 (PutObject) atau download S3 (). GetObject Anda dapat membagikan presignedURL, dan siapa pun yang memiliki akses ke sana dapat melakukan tindakan yang disematkan di URL seolah-olah mereka adalah pengguna penandatanganan asli.

Presigned URLs memiliki tanggal kedaluwarsa. Ketika waktu kedaluwarsa tercapai, surat URL wasiat tidak lagi berfungsi.

Sebelum Anda menggunakan S3 Multi-Region Access Points dengan presignedURLs, periksa AWS SDKkompatibilitasnya dengan algoritma Sigv4a. Verifikasi bahwa SDK versi 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-contoh ini, ganti placeholder masukan pengguna 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 IAM peran—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();