Halaman ini membahas akses level bucket yang seragam, yang memungkinkan Anda mengontrol akses ke resource Cloud Storage secara seragam. Jika Anda mengaktifkan akses level bucket yang seragam di bucket, Daftar Kontrol Akses (ACL) akan dinonaktifkan, dan hanya izin Identity and Access Management (IAM) level bucket yang memberikan akses ke bucket tersebut dan objek di dalamnya. Anda mencabut semua akses yang diberikan oleh ACL objek dan kemampuan untuk mengelola izin menggunakan ACL bucket.
Ringkasan
Cloud Storage menawarkan dua sistem untuk memberi pengguna izin agar dapat mengakses bucket dan objek Anda: IAM dan Daftar Kontrol Akses (ACL). Sistem ini bertindak secara paralel - agar pengguna dapat mengakses resource Cloud Storage, hanya salah satu sistem yang perlu memberikan izin kepada pengguna. IAM digunakan di seluruh Google Cloud dan memungkinkan Anda memberikan berbagai izin di level bucket dan project. ACL hanya digunakan oleh Cloud Storage dan memiliki opsi izin terbatas, tetapi memungkinkan Anda untuk memberikan izin per objek.
Untuk mendukung sistem pemberian izin yang seragam, Cloud Storage memiliki akses level bucket yang seragam. Menggunakan fitur ini pada bucket akan menonaktifkan ACL untuk semua resource Cloud Storage di bucket; akses ke resource Cloud Storage kemudian diberikan secara eksklusif melalui IAM. Akses level bucket yang seragam tidak dapat dinonaktifkan setelah aktif di bucket selama 90 hari berturut-turut.
Haruskah menggunakan akses level bucket yang seragam?
Secara umum, sebaiknya gunakan akses level bucket yang seragam:
Akses level bucket yang seragam menyatukan dan menyederhanakan cara Anda memberikan akses ke resource Cloud Storage.
Akses level bucket seragam mencegah eksposur data yang tidak diinginkan dari ACL.
Akses level bucket yang seragam harus diaktifkan untuk menggunakan fitur berikut:
- Namespace hierarkis
- Folder terkelola
- Kondisi IAM yang ditetapkan langsung di bucket
Akses level bucket yang seragam harus diaktifkan untuk memberikan akses ke resource Cloud Storage kepada entity Workforce Identity Federation atau Workload Identity Federation.
Anda tidak boleh menggunakan akses level bucket yang seragam jika ingin menggunakan sistem ACL untuk bucket Anda.
Perilaku saat diaktifkan
Anda dapat mengaktifkan akses level bucket yang seragam saat membuat bucket baru, maupun saat mengaktifkan akses level bucket yang seragam secara eksplisit pada bucket yang ada.
Setelah diaktifkan, bucket memiliki perilaku berikut:
Permintaan untuk menetapkan, membaca, atau mengubah ACL bucket dan objek gagal dengan
400 Bad Request
error.- Ini mencakup permintaan JSON API yang menggunakan metode
BucketAccessControls
,DefaultObjectAccessControls
, atauObjectAccessControls
ini.
- Ini mencakup permintaan JSON API yang menggunakan metode
Permintaan JSON API untuk proyeksi lengkap metadata bucket atau objek menyertakan daftar ACL kosong sebagai bagian dari respons.
Kepemilikan objek individual sudah tidak ada lagi; akses yang diberikan dari kepemilikan tersebut akan dicabut, dan permintaan untuk metadata bucket dan objek tidak lagi berisi kolom
owner
.Pada waktu pembuatan, bucket menerima peran IAM khusus. Jika Anda mengaktifkan akses level bucket yang seragam sebagai bagian dari pembuatan bucket baru, bucket tersebut akan mendapatkan peran IAM tambahan.
Perilaku ini mempertahankan pemberian izin yang akan diwarisi oleh objek dari ACL objek default standar untuk bucket.
Jika mengaktifkan akses level bucket yang seragam pada bucket yang ada, Anda harus menerapkan peran tersebut secara manual; jika sebelumnya Anda telah mengubah ACL objek default bucket, sebaiknya terapkan set peran IAM yang berbeda.
Perilaku jika dikembalikan
Untuk mendukung kemampuan untuk menonaktifkan akses level bucket yang seragam dan kembali menggunakan ACL, Cloud Storage menyimpan ACL yang ada. Jika Anda menonaktifkan akses level bucket yang seragam:
Objek akan mendapatkan kembali ACL yang tersimpan.
Setiap objek yang ditambahkan ke bucket setelah akses level bucket yang seragam diaktifkan, mendapatkan ACL sesuai dengan ACL objek default yang digunakan oleh bucket.
Pertimbangan saat memigrasikan bucket yang ada
Saat mengaktifkan akses level bucket yang seragam pada bucket yang ada, Anda harus memastikan bahwa izin pengguna dan layanan yang sebelumnya mengandalkan ACL untuk akses dimigrasikan ke IAM. Bagian ini menguraikan beberapa langkah yang harus Anda lakukan saat memigrasikan bucket ke akses level bucket yang seragam. Perlu diperhatikan bahwa karena ACL dan IAM disinkronkan untuk izin bucket, pertimbangan Anda secara khusus berfokus pada akses ke objek dalam bucket Anda, bukan pada akses ke bucket.
Pertimbangkan apakah izin IAM level bucket mengekspos data secara berlebihan
Sebelum menetapkan IAM yang setara ke ACL Anda, pertimbangkan hal berikut:
- Izin IAM yang diterapkan pada level bucket berlaku untuk semua objek di bucket, sedangkan ACL objek dapat bervariasi dari satu objek ke objek lainnya.
Jika ada akses yang ingin diterapkan ke beberapa objek tetapi tidak untuk yang lainnya, Anda harus mengelompokkan objek ke dalam bucket terpisah. Setiap pengelompokan harus berisi objek-objek yang memiliki izin yang sama.
Memeriksa penggunaan ACL objek
Saat bermigrasi ke akses level bucket yang seragam, Anda harus memeriksa apakah objek dalam bucket diakses melalui ACL yang diterapkan ke objek tersebut. Untuk memeriksanya, Cloud Monitoring memiliki metrik yang dapat melacak penggunaan ACL. Jika metrik ini menunjukkan bahwa pengguna atau layanan mengandalkan ACL untuk akses ke objek, Anda harus menetapkan IAM yang setara ke bucket sebelum mengaktifkan akses level bucket yang seragam. Untuk panduan memeriksa penggunaan ACL di Monitoring, lihat Memeriksa penggunaan ACL.
Gunakan metrik ini untuk menentukan apakah mengaktifkan akses level bucket yang seragam akan merusak alur kerja Anda:
Metrik | Deskripsi |
---|---|
storage.googleapis.com/authz/acl_operations_count |
Jumlah operasi ACL yang akan dinonaktifkan setelah akses level bucket yang seragam diaktifkan, yang diperinci berdasarkan bucket dan jenis operasi ACL. |
Operasi ACL yang penting untuk diperiksa adalah OBJECT_ACCESS_REQUIRED_OBJECT_ACL
:
Jika angka ini nol, tidak ada ACL tingkat objek yang diperlukan untuk mengakses objek dalam 6 minggu terakhir. Kebijakan IAM mencakup izin yang diperlukan di level bucket atau project.
Jika jumlah ini lebih besar dari nol, ada permintaan untuk mengakses objek dalam 6 minggu terakhir yang memerlukan izin ACL objek. Anda harus menetapkan kebijakan IAM yang setara sebelum mengaktifkan akses level bucket yang seragam.
Untuk informasi selengkapnya tentang metrik Monitoring, lihat Metrik, Deret Waktu, dan Resource.
Periksa ACL objek default bucket
Bucket tanpa akses level bucket yang seragam memiliki ACL objek default yang terkait dengannya. Objek baru yang ditambahkan ke bucket memiliki ACL objek default yang diterapkan ke objek tersebut kecuali jika ACL disediakan secara eksplisit pada saat objek ditambahkan ke bucket.
Misalnya, bucket biasanya menggunakan ACL yang telah ditetapkan projectPrivate
sebagai
ACL objek defaultnya. projectPrivate
memberikan izin READER
objek kepada
pelihat project yang terkait dengan bucket, dan memberikan izin
OWNER
objek kepada editor dan pemilik project yang terkait dengan bucket.
Sebelum mengaktifkan akses level bucket yang seragam, periksa ACL objek default yang dimiliki bucket Anda. Pertimbangkan apakah Anda ingin memberikan izin yang terkait dengan ACL objek default setelah mengaktifkan akses level bucket yang seragam. Jika demikian, tetapkan IAM yang setara ke bucket.
Menetapkan IAM yang setara ke ACL objek
ACL objek dapat memberikan akses yang saat ini tidak dimiliki IAM. Untuk memastikan pengguna yang ada tidak kehilangan akses ke objek saat Anda mengaktifkan akses level bucket yang seragam, gunakan tabel berikut dan tetapkan peran IAM yang sesuai kepada pengguna yang terpengaruh.
Izin ACL objek | Peran IAM yang setara |
---|---|
READER |
Pembaca Objek Lama Penyimpanan (roles/storage.legacyObjectReader ) |
OWNER |
Pemilik Objek Lama Penyimpanan (roles/storage.legacyObjectOwner ) |
Pertimbangan saat menggunakan IAM Conditions
Untuk mencegah konflik antara kebijakan IAM bucket dan ACL objek, IAM Conditions hanya dapat digunakan pada bucket dengan akses level bucket yang seragam diaktifkan. Artinya:
Untuk menetapkan IAM Conditions pada bucket, Anda harus mengaktifkan akses level bucket yang seragam terlebih dahulu di bucket tersebut.
Sebelum dapat menonaktifkan akses level bucket yang seragam pada bucket, Anda harus menghapus semua IAM Conditions terlebih dahulu dari kebijakan bucket tersebut. Untuk informasi tentang cara melihat dan menghapus kondisi dari kebijakan bucket, lihat Menggunakan IAM Conditions pada bucket.
Langkah berikutnya
- Pelajari cara menggunakan akses level bucket yang seragam.
- Pelajari menerapkan batasan akses level bucket yang seragam, yang dapat ditetapkan dalam organisasi, folder, atau project Google Cloud Anda.
- Menetapkan izin IAM pada bucket dan project.