Akses level bucket yang seragam

Penyiapan

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, karena dapat menyatukan dan menyederhanakan cara Anda memberikan akses ke resource Cloud Storage.

Menggunakan akses level bucket yang seragam juga memungkinkan Anda menggunakan fitur keamanan Google Cloud lainnya seperti berbagi yang dibatasi domain, workforce identity federation, dan IAM Conditions.

Anda mungkin tidak ingin menggunakan akses level bucket yang seragam dan mempertahankan ACL terperinci jika:

  • Anda ingin mengontrol akses ke objek tertentu dalam bucket melalui ACL lama.

  • Anda ingin uploader objek memiliki kontrol penuh atas objek tersebut, tetapi memiliki akses yang lebih kecil ke objek lain di bucket Anda.

  • Anda dapat menggunakan XML API untuk melihat atau menetapkan izin bucket.

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.

  • 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:

Langkah selanjutnya