Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memverifikasi kepemilikan bucket dengan syarat pemilik bucket
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.
Topik
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:
-
Bea mengembangkan aplikasi yang menggunakan Amazon S3. Selama pengembangan, Bea menggunakan pengujiannya hanya Akun AWS untuk membuat bucket bernama
bea-data-test
, dan mengonfigurasi aplikasinya untuk membuat permintaan.bea-data-test
-
Bea men-deploy aplikasinya, tetapi lupa mengonfigurasi ulang aplikasi untuk menggunakan bucket dalam Akun AWS produksinya.
-
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 RESTAPIs. Saat menggunakan kondisi pemilik bucket dengan Amazon S3 AWS CLI dan Amazon RESTAPIs, 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 SDK dokumentasi untuk bahasa yang Anda inginkan. Anda dapat menemukan SDK dokumentasi di Tools to Build on 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
, menggunakan syarat pemilik bucket untuk memastikan bahwa amzn-s3-demo-bucket1
dimiliki oleh Akun AWS
amzn-s3-demo-bucket1
111122223333
.
Contoh: Menyalin sebuah objek
Contoh berikut menyalin objek object1
dari bucket S3
ke bucket S3 amzn-s3-demo-bucket1
. Itu menggunakan syarat pemilik bucket untuk memastikan bahwa bucket dimiliki oleh akun yang diharapkan sesuai dengan tabel berikut. amzn-s3-demo-bucket2
Bucket | Pemilik yang diharapkan |
---|---|
|
111122223333 |
|
444455556666 |
Contoh: Mengambil kebijakan bucket
Contoh berikut ini mengambil kebijakan akses untuk bucket S3
, menggunakan syarat pemilik bucket untuk memastikan bahwa amzn-s3-demo-bucket1
dimiliki oleh Akun AWS
amzn-s3-demo-bucket1
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.