Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Memverifikasi kepemilikan bucket dengan syarat pemilik bucket

Mode fokus
Memverifikasi kepemilikan bucket dengan syarat pemilik bucket - Amazon Simple Storage Service

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

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

Kondisi pemilik bucket Amazon S3 memastikan bahwa bucket yang Anda gunakan dalam operasi S3 adalah milik yang Anda harapkan. Akun AWS

Sebagian besar operasi S3 membaca atau menulis ke bucket S3 tertentu. Operasi ini meliputi pengunggahan, penyalinan, dan pengunduhan objek, pengambilan atau modifikasi konfigurasi bucket, dan pengambilan atau modifikasi konfigurasi objek. Saat Anda melakukan operasi ini, Anda menentukan bucket yang ingin Anda gunakan dengan menyertakan nama dengan permintaan. Misalnya, untuk mengambil objek dari S3, Anda membuat permintaan yang menentukan nama bucket dan kunci objek untuk diambil dari bucket tersebut.

Karena Amazon S3 mengidentifikasi bucket berdasarkan namanya, aplikasi yang menggunakan nama bucket yang salah dalam permintaan dapat secara tidak sengaja melakukan operasi terhadap bucket yang berbeda dari yang diharapkan. Untuk membantu menghindari interaksi bucket yang tidak disengaja dalam situasi seperti ini, Anda dapat menggunakan ketentuan pemilik bucket. Syarat pemilik bucket mengaktifkan Anda memverifikasi bahwa bucket target dimiliki oleh Akun AWS yang diharapkan, sehingga memberikan lapisan jaminan tambahan bahwa operasi S3 Anda memiliki efek yang Anda inginkan.

Kapan harus menggunakan ketentuan pemilik bucket

Kami merekomendasikan penggunaan ketentuan pemilik bucket setiap kali Anda melakukan operasi S3 yang didukung dan mengetahui ID akun pemilik bucket yang diharapkan. Ketentuan pemilik bucket tersedia untuk semua operasi S3 Object dan sebagian besar operasi bucket S3. Untuk daftar operasi S3 yang tidak mendukung ketentuan pemilik bucket, lihat Pembatasan dan batasan.

Untuk melihat manfaat menggunakan kondisi pemilik bucket, pertimbangkan skenario berikut yang melibatkan AWS pelanggan Bea:

  1. Bea mengembangkan aplikasi yang menggunakan Amazon S3. Selama pengembangan, Bea menggunakan pengujiannya hanya Akun AWS untuk membuat bucket bernamabea-data-test, dan mengonfigurasi aplikasinya untuk membuat permintaan. bea-data-test

  2. Bea men-deploy aplikasinya, tetapi lupa mengonfigurasi ulang aplikasi untuk menggunakan bucket dalam Akun AWS produksinya.

  3. Dalam produksi, aplikasi Bea membuat permintaan ke bea-data-test, yang berhasil. Hal ini menyebabkan data produksi ditulis ke bucket dalam akun pengujian Bea.

Bea dapat membantu melindungi dari situasi seperti ini dengan menggunakan ketentuan pemilik bucket. Dengan kondisi pemilik bucket, Bea dapat menyertakan Akun AWS ID pemilik bucket yang diharapkan dalam permintaannya. Amazon S3 kemudian memeriksa ID akun pemilik bucket sebelum memproses setiap permintaan. Apabila pemilik bucket yang sesungguhnya tidak sesuai dengan pemilik bucket yang diharapkan, permintaan gagal.

Jika Bea menggunakan ketentuan pemilik bucket, skenario yang dijelaskan sebelumnya tidak akan mengakibatkan aplikasi Bea secara tidak sengaja menulis ke bucket pengujian. Sebagai gantinya, permintaan yang dibuat aplikasinya pada langkah 3 akan gagal dengan pesan kesalahan Access Denied. Dengan menggunakan syarat pemilik bucket, Bea membantu menghilangkan risiko interaksi yang tidak disengaja dengan bucket dalam Akun AWS yang salah.

Memverifikasi pemilik bucket

Untuk menggunakan ketentuan pemilik bucket, Anda menyertakan parameter dengan permintaan Anda yang menentukan pemilik bucket yang diharapkan. Sebagian besar operasi S3 hanya melibatkan satu bucket, dan hanya memerlukan satu parameter ini untuk menggunakan ketentuan pemilik bucket. Untuk operasi CopyObject, parameter pertama ini menentukan pemilik bucket tujuan yang diharapkan, dan Anda menyertakan parameter kedua untuk menentukan pemilik bucket sumber yang diharapkan.

Saat Anda membuat permintaan yang menyertakan parameter ketentuan pemilik bucket, S3 memeriksa ID akun pemilik bucket terhadap parameter yang ditentukan sebelum memproses permintaan. Jika parameter cocok dengan ID akun pemilik bucket, S3 akan memproses permintaan. Jika parameter tidak cocok dengan ID akun pemilik bucket, permintaan akan gagal dengan pesan kesalahan Access Denied.

Anda dapat menggunakan kondisi pemilik bucket dengan AWS Command Line Interface (AWS CLI) AWS SDKs, dan Amazon S3 REST. APIs Saat menggunakan kondisi pemilik bucket dengan Amazon S3 REST AWS CLI dan Amazon S3 APIs, gunakan nama parameter berikut.

Metode akses Parameter untuk operasi non penyalinan Parameter sumber operasi penyalinan Parameter tujuan operasi penyalinan
AWS CLI --expected-bucket-owner --expected-source-bucket-owner --expected-bucket-owner
Amazon S3 REST APIs Header x-amz-expected-bucket-owner Header x-amz-source-expected-bucket-owner Header x-amz-expected-bucket-owner

Nama parameter yang diperlukan untuk menggunakan kondisi pemilik bucket dengan AWS SDKs bervariasi tergantung pada bahasa. Untuk menentukan parameter yang diperlukan, lihat dokumentasi SDK untuk bahasa yang Anda inginkan. Anda dapat menemukan dokumentasi SDK di Alat untuk Membangun di AWS.

Contoh

Contoh berikut menunjukkan bagaimana Anda dapat menerapkan kondisi pemilik bucket di Amazon S3 menggunakan AWS CLI atau. AWS SDK for Java 2.x

Contoh: Mengunggah sebuah objek

Contoh berikut menunjukkan cara unggah sebuah objek ke bucket S3 amzn-s3-demo-bucket1, menggunakan syarat pemilik bucket untuk memastikan bahwa amzn-s3-demo-bucket1 dimiliki oleh Akun AWS 111122223333.

AWS CLI
aws s3api put-object \ --bucket amzn-s3-demo-bucket1 --key exampleobject --body example_file.txt \ --expected-bucket-owner 111122223333
AWS SDK for Java 2.x
public void putObjectExample() { S3Client s3Client = S3Client.create();; PutObjectRequest request = PutObjectRequest.builder() .bucket("amzn-s3-demo-bucket1") .key("exampleobject") .expectedBucketOwner("111122223333") .build(); Path path = Paths.get("example_file.txt"); s3Client.putObject(request, path); }
aws s3api put-object \ --bucket amzn-s3-demo-bucket1 --key exampleobject --body example_file.txt \ --expected-bucket-owner 111122223333

Contoh: Menyalin sebuah objek

Contoh berikut menyalin objek object1 dari bucket S3 amzn-s3-demo-bucket1 ke bucket S3 amzn-s3-demo-bucket2. Itu menggunakan syarat pemilik bucket untuk memastikan bahwa bucket dimiliki oleh akun yang diharapkan sesuai dengan tabel berikut.

Bucket Pemilik yang diharapkan
amzn-s3-demo-bucket1 111122223333
amzn-s3-demo-bucket2 444455556666
AWS CLI
aws s3api copy-object --copy-source amzn-s3-demo-bucket1/object1 \ --bucket amzn-s3-demo-bucket2 --key object1copy \ --expected-source-bucket-owner 111122223333 --expected-bucket-owner 444455556666
AWS SDK for Java 2.x
public void copyObjectExample() { S3Client s3Client = S3Client.create(); CopyObjectRequest request = CopyObjectRequest.builder() .copySource("amzn-s3-demo-bucket1/object1") .destinationBucket("amzn-s3-demo-bucket2") .destinationKey("object1copy") .expectedSourceBucketOwner("111122223333") .expectedBucketOwner("444455556666") .build(); s3Client.copyObject(request); }
aws s3api copy-object --copy-source amzn-s3-demo-bucket1/object1 \ --bucket amzn-s3-demo-bucket2 --key object1copy \ --expected-source-bucket-owner 111122223333 --expected-bucket-owner 444455556666

Contoh: Mengambil kebijakan bucket

Contoh berikut ini mengambil kebijakan akses untuk bucket S3 amzn-s3-demo-bucket1, menggunakan syarat pemilik bucket untuk memastikan bahwa amzn-s3-demo-bucket1 dimiliki oleh Akun AWS 111122223333.

AWS CLI
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket1 --expected-bucket-owner 111122223333
AWS SDK for Java 2.x
public void getBucketPolicyExample() { S3Client s3Client = S3Client.create(); GetBucketPolicyRequest request = GetBucketPolicyRequest.builder() .bucket("amzn-s3-demo-bucket1") .expectedBucketOwner("111122223333") .build(); try { GetBucketPolicyResponse response = s3Client.getBucketPolicy(request); } catch (S3Exception e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } }
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket1 --expected-bucket-owner 111122223333

Pembatasan dan batasan

Ketentuan pemilik bucket Amazon S3 memiliki pembatasan dan batasan berikut:

  • Nilai parameter kondisi pemilik bucket harus berupa Akun AWS ID (nilai numerik 12 digit). Pengguna utama layanan tidak didukung.

  • Kondisi pemilik bucket tidak tersedia untuk CreateBucket, ListBuckets, atau operasi apa pun yang termasuk dalam Kontrol AWS S3. Amazon S3 mengabaikan parameter ketentuan pemilik bucket yang disertakan dengan permintaan ke operasi ini.

  • Ketentuan pemilik bucket hanya memverifikasi bahwa akun yang ditentukan dalam parameter verifikasi memiliki bucket. Ketentuan pemilik bucket tidak memeriksa konfigurasi bucket. Ini juga tidak menjamin bahwa konfigurasi bucket memenuhi ketentuan tertentu atau sesuai untuk status sebelumnya.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.