Halaman ini membahas setelan bucket pencegahan akses publik dan batasan kebijakan organisasi pencegahan akses publik terkait. Menggunakan setelan atau batasan akan membatasi entity, seperti pengguna anonim melalui internet, yang dapat diberi akses ke data Anda. Untuk mengetahui ringkasan opsi kontrol akses, lihat Ringkasan kontrol akses.
Ringkasan
Pencegahan akses publik melindungi bucket dan objek Cloud Storage agar tidak terekspos ke publik secara tidak sengaja. Saat Anda menerapkan pencegahan akses publik, tidak ada seorang pun yang dapat membuat data di bucket yang berlaku menjadi publik melalui kebijakan IAM atau ACL. Ada dua cara untuk menerapkan pencegahan akses publik:
Anda dapat menerapkan pencegahan akses publik pada setiap bucket.
Jika bucket Anda berada dalam organisasi, Anda dapat menerapkan pencegahan akses publik menggunakan batasan kebijakan organisasi
storage.publicAccessPrevention
di bagian tingkat project, folder, atau organisasi.
Haruskah Anda menggunakan pencegahan akses publik?
Gunakan pencegahan akses publik jika data Anda tidak boleh terekspos di internet publik. Untuk memberikan keamanan terbaik ke resource Anda, terapkan pencegahan akses publik di tingkat tertinggi di organisasi Anda.
Perilaku saat diterapkan
Resource yang tunduk pada pencegahan akses publik memiliki perilaku berikut:
Permintaan ke bucket dan objek yang diberi otorisasi menggunakan
allUsers
danallAuthenticatedUsers
akan gagal dengan kode status HTTP401
atau403
.Kebijakan IAM dan ACL yang memberikan akses ke
allUsers
danallAuthenticatedUsers
akan tetap berlaku, tetapi diganti oleh pencegahan akses publik.Permintaan untuk membuat bucket atau objek dengan
allUsers
danallAuthenticatedUsers
dalam kebijakan IAM atau ACL-nya akan gagal, dengan pengecualian berikut:- Jika bucket memiliki ACL objek default yang berisi
allUsers
, permintaan untuk membuat objek dalam bucket tersebut akan berhasil. ACL untuk objek tersebut berisiallUsers
, tetapiallUsers
diganti oleh pencegahan akses publik.
- Jika bucket memiliki ACL objek default yang berisi
Permintaan untuk menambahkan
allUsers
danallAuthenticatedUsers
ke kebijakan IAM atau ACL akan gagal dengan412 Precondition Failed
.
Pewarisan
Meskipun bucket tidak memiliki pencegahan akses publik yang diterapkan secara eksplisit di setelannya, pencegahan tersebut mungkin masihmewarisi pencegahan akses publik, yang terjadi jika batasan kebijakan organisasi storage.publicAccessPrevention
ditetapkan di project, folder, atau organisasi tempat bucket berada. Karena
alasan ini, status bucket hanya dapat ditetapkan ke enforced
atau inherited
.
Jika metadata pencegahan akses publik bucket ditetapkan ke
enforced
, pencegahan akses publik akan berlaku untuk bucket tersebut.Jika metadata pencegahan akses publik bucket ditetapkan ke
inherited
, pencegahan akses publik ditentukan oleh batasan kebijakan organisasistorage.publicAccessPrevention
:Jika
storage.publicAccessPrevention
ditetapkan keTrue
untuk project yang berisi bucket, pencegahan akses publik akan berlaku untuk bucket.Jika
storage.publicAccessPrevention
ditetapkan keFalse
untuk project yang berisi bucket, pencegahan akses publik tidak akan berlaku untuk bucket.Jika
storage.publicAccessPrevention
tidak ditetapkan untuk project yang berisi bucket, pencegahan akses publik ditentukan oleh nilaistorage.publicAccessPrevention
yang ditetapkan oleh folder, jika ada, yang berisi project tersebut.Demikian pula, jika folder yang berisi bucket juga tidak menetapkan nilai apa pun untuk
storage.publicAccessPrevention
, pencegahan akses publik ditentukan oleh nilaistorage.publicAccessPrevention
yang ditetapkan oleh organisasi yang berisi project tersebut.Jika
storage.publicAccessPrevention
tidak ditetapkan untuk resource apa pun, pencegahan akses publik tidak berlaku untuk bucket.
Perilaku jika dinonaktifkan
Jika pencegahan akses publik tidak lagi berlaku untuk resource, hal berikut akan terjadi:
Kebijakan IAM dan ACL yang memberikan akses ke
allUsers
danallAuthenticatedUsers
akan berlaku dan membuat data dapat diakses oleh publik.Permintaan untuk membuat kebijakan IAM atau ACL yang mengizinkan akses ke
allUsers
danallAuthenticatedUsers
akan berhasil.Objek yang dibuat dalam pencegahan akses publik tanpa ACL publik dapat diakses oleh publik jika dibuat di bucket yang dapat diakses publik.
Anda dapat menonaktifkan pencegahan akses publik untuk project, folder, atau organisasi kapan saja. Pencegahan akses publik pada bucket dengan setelan enforced
akan tetap diterapkan, meskipun Anda menonaktifkannya untuk project, folder, atau organisasi yang berisi bucket.
Pertimbangan
Saat Anda menerapkan pencegahan akses publik pada resource yang ada, semua otorisasi yang ada dan penambahan baru
allUsers
danallAuthenticatedUsers
akan diblokir. Hal ini dapat memengaruhi bucket Anda sebagai berikut:Jika aplikasi bergantung pada
allUsers
danallAuthenticatedUsers
untuk mengakses data Anda atau membuat resource publik, mengaktifkan pencegahan akses publik dapat merusak aplikasi. Untuk informasi tentang cara mengidentifikasi resource publik yang mungkin menjadi dependensi aplikasi lain, luaskan konten berikut:Cara mengidentifikasi resource publik
Sebelum menerapkan pencegahan akses publik, sebaiknya Anda membuat inventaris resource publik untuk memastikan Anda tidak merusak beban kerja lain yang memiliki dependensi pada data Anda yang bersifat publik. Anda dapat menemukan bucket, objek, dan folder terkelola yang bersifat publik menggunakan metode berikut:
-
Untuk menentukan apakah bucket dapat diakses oleh publik, periksa kebijakan IAM bucket. Kebijakan yang memberikan peran ke akun utama
allUsers
atauallAuthenticatedUsers
membuat bucket berpotensi dapat diakses oleh publik. Sebagai alternatif untuk mendapatkan kebijakan IAM untuk setiap bucket, Anda dapat menggunakan Inventaris Aset Cloud untuk melihat kebijakan untuk semua bucket dalam project, folder, atau organisasi.Jika ada folder terkelola di bucket, Anda juga dapat memeriksa kebijakan IAM folder terkelola untuk mengidentifikasi folder terkelola mana yang mungkin dapat diakses oleh publik.
- Untuk menentukan apakah setiap objek dapat diakses oleh publik,
periksa ACL objek.
ACL yang memberikan akses ke akun utama
allUsers
atauallAuthenticatedUsers
membuat objek berpotensi dapat diakses oleh publik.
-
Cloud Audit Logs tidak melacak akses ke objek yang bersifat publik. Jika log Akses Data diaktifkan saat Anda menerapkan pencegahan akses publik, Anda mungkin melihat peningkatan pembuatan log, yang mengurangi kuota penyerapan log Anda dan dapat dikenai biaya Cloud Audit Logs. Peningkatan ini dapat terjadi karena akses yang sebelumnya bersifat publik dan tidak dicatat dapat terkait dengan otorisasi tertentu yang dicatat dalam log.
URL yang ditandatangani, yang memberikan akses terbatas waktu dan cakupan sempit kepada siapa pun yang menggunakannya, tidak terpengaruh oleh pencegahan akses publik.
Project yang tidak terkait dengan organisasi tidak dapat menggunakan kebijakan organisasi. Bucket dalam project tersebut harus menggunakan setelan level bucket.
Pencegahan akses publik sangat konsisten untuk pembacaan setelah update, tetapi penerapan dapat memerlukan waktu hingga 10 menit untuk berfungsi normal.
Setelah penerapan dimulai, objek Anda mungkin masih dapat diakses secara publik melalui cache internet selama beberapa waktu, bergantung pada setelan
Cache-Control
objek. Misalnya, jikaCache-Control:max-age
untuk sebuah objek ditetapkan ke setelan default selama 3600 detik, objek tersebut mungkin akan tetap ada dalam cache internet selama jangka waktu tersebut.
Langkah berikutnya
- Pelajari cara menggunakan pencegahan akses publik.
- Baca selengkapnya tentang kebijakan organisasi.