Pencegahan akses publik

Penyiapan

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:

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.

Anda tidak boleh menggunakan pencegahan akses publik jika status bucket harus tetap bersifat publik untuk kasus penggunaan seperti hosting situs statis. Untuk membuat pengecualian bagi bucket tersebut di organisasi yang menerapkan pencegahan akses publik, nonaktifkan pencegahan akses publik pada project tertentu yang berisi bucket tersebut.

Perilaku saat diterapkan

Resource yang tunduk pada pencegahan akses publik memiliki perilaku berikut:

  • Permintaan ke bucket dan objek yang diberi otorisasi menggunakan allUsers dan allAuthenticatedUsers akan gagal dengan kode status HTTP 401 atau 403.

  • Kebijakan IAM dan ACL yang memberikan akses ke allUsers dan allAuthenticatedUsers akan tetap berlaku, tetapi diganti oleh pencegahan akses publik.

  • Permintaan untuk membuat bucket atau objek dengan allUsers dan allAuthenticatedUsers 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 berisi allUsers, tetapi allUsers diganti oleh pencegahan akses publik.
  • Permintaan untuk menambahkan allUsers dan allAuthenticatedUsers ke kebijakan IAM atau ACL akan gagal dengan 412 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 organisasi storage.publicAccessPrevention:

    • Jika storage.publicAccessPrevention ditetapkan ke True untuk project yang berisi bucket, pencegahan akses publik akan berlaku untuk bucket.

    • Jika storage.publicAccessPrevention ditetapkan ke False 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 nilai storage.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 nilai storage.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 dan allAuthenticatedUsers akan berlaku dan membuat data dapat diakses oleh publik.

  • Permintaan untuk membuat kebijakan IAM atau ACL yang mengizinkan akses ke allUsers dan allAuthenticatedUsers 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 dan allAuthenticatedUsers akan diblokir. Hal ini dapat memengaruhi bucket Anda sebagai berikut:

    • Jika aplikasi bergantung pada allUsers dan allAuthenticatedUsers untuk mengakses data Anda atau membuat resource publik, mengaktifkan pencegahan akses publik dapat merusak aplikasi. Untuk mengetahui 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:

    • 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, jika Cache-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