Anda mengontrol siapa yang memiliki akses ke bucket dan objek Cloud Storage dan level akses yang mereka miliki.
Memilih antara akses seragam dan terperinci
Saat membuat bucket, Anda harus memutuskan apakah ingin menerapkan izin menggunakan akses seragam atau halus.
Seragam (direkomendasikan): Akses tingkat bucket seragam memungkinkan Anda menggunakan Identity and Access Management (IAM) saja untuk mengelola izin. IAM menerapkan izin ke semua objek yang dimuat di dalam bucket atau grup objek dengan awalan nama yang sama. IAM juga memungkinkan Anda menggunakan fitur yang tidak tersedia saat menangani ACL, seperti folder terkelola, Kondisi IAM, berbagi domain yang dibatasi, dan federasi identitas tenaga kerja.
Terperinci: Penerapan terperinci memungkinkan Anda menggunakan IAM dan Access Control Lists (ACL) secara bersamaan untuk mengelola izin. ACL adalah sistem kontrol akses lama untuk Cloud Storage yang dirancang untuk interoperabilitas dengan Amazon S3. ACL juga memungkinkan Anda untuk menentukan akses per-objek.
Karena akses terperinci mengharuskan Anda untuk berkoordinasi antara dua sistem kontrol akses yang berbeda, ada peningkatan peluang eksposur data yang tidak disengaja, dan pengauditan siapa yang memiliki akses ke resource lebih rumit. Khususnya, jika Anda memiliki objek yang berisi data sensitif, seperti informasi identitas pribadi, sebaiknya simpan data tersebut dalam bucket dengan akses level bucket seragam yang diaktifkan.
Menggunakan izin IAM dengan ACL
Cloud Storage menawarkan dua sistem untuk memberi pengguna akses ke bucket dan objek Anda: IAM dan Access Control Lists (ACL). Sistem ini bertindak secara paralel - agar pengguna dapat mengakses resource Cloud Storage, hanya diperlukan satu sistem untuk memberikan izin kepada pengguna tersebut. Misalnya, jika kebijakan IAM bucket Anda hanya mengizinkan beberapa pengguna untuk membaca data objek dalam bucket, tetapi salah satu objek dalam bucket memiliki ACL yang membuatnya dapat dibaca publik, maka objek tersebut terekspos ke publik.
Pada umumnya, IAM adalah metode yang direkomendasikan untuk mengontrol akses ke resource Anda. IAM mengontrol pemberian izin di seluruh Google Cloud dan memungkinkan Anda memberikan izin di level bucket dan project. Anda sebaiknya menggunakan IAM untuk setiap izin yang berlaku pada beberapa objek dalam bucket untuk mengurangi risiko eksposur yang tidak diinginkan. Untuk menggunakan IAM secara eksklusif, aktifkan akses level bucket yang seragam agar ACL tidak diizinkan pada semua resource Cloud Storage.
ACL hanya mengontrol pemberian izin untuk resource Cloud Storage dan memiliki opsi izin yang terbatas, tetapi memungkinkan Anda memberikan izin per objek. Anda kemungkinan besar ingin menggunakan ACL untuk kasus penggunaan berikut:
- Menyesuaikan akses ke tiap-tiap objek dalam bucket.
- Memigrasikan data dari Amazon S3.
Opsi kontrol akses tambahan
Selain IAM dan ACL, alat berikut tersedia untuk membantu mengontrol akses ke resource Anda:
URL yang ditandatangani (autentikasi string kueri)
Gunakan URL bertanda tangan untuk memberikan akses baca atau tulis dengan waktu terbatas ke objek melalui URL yang Anda buat. Siapa pun yang Anda ajak berbagi URL tersebut dapat mengakses objek selama durasi waktu yang Anda tentukan, terlepas dari apakah mereka memiliki akun pengguna atau tidak.
Anda dapat menggunakan URL yang ditandatangani di samping IAM dan ACL. Misalnya, Anda dapat menggunakan IAM untuk memberi beberapa orang akses ke bucket, kemudian membuat URL yang ditandatangani yang memungkinkan orang lain mengakses resource tertentu dalam bucket tersebut.
Pelajari cara membuat URL yang ditandatangani:
Dokumen Kebijakan yang Ditandatangani
Gunakan dokumen kebijakan yang ditandatangani untuk menentukan apa yang dapat diupload ke bucket. Dokumen kebijakan memungkinkan kontrol yang lebih besar terhadap ukuran, jenis konten, dan karakteristik upload lainnya dibanding dengan URL yang ditandatangani. Selain itu, dokumen kebijakan juga dapat digunakan pemilik situs agar pengunjung dapat mengupload file ke Cloud Storage.
Anda dapat menggunakan dokumen kebijakan yang ditandatangani di samping IAM dan ACL. Misalnya, Anda dapat menggunakan IAM agar orang di organisasi Anda dapat mengupload objek apa pun, lalu membuat dokumen kebijakan yang ditandatangani yang memungkinkan pengunjung situs mengupload objek yang memenuhi kriteria tertentu saja.
Aturan Keamanan Firebase
Gunakan Aturan Keamanan Firebase untuk menyediakan kontrol akses berbasis atribut yang terperinci untuk aplikasi seluler dan web menggunakan Firebase SDK untuk Cloud Storage. Misalnya, Anda dapat menentukan siapa yang dapat mengupload atau mendownload objek, seberapa besar ukuran objek, atau kapan objek dapat didownload.
Pencegahan akses publik
Gunakan pencegahan akses publik untuk membatasi akses publik ke bucket dan
objek Anda. Jika Anda mengaktifkan pencegahan akses publik, pengguna yang mendapatkan akses
melalui allUsers
dan allAuthenticatedUsers
tidak diizinkan mengakses
data.
Batas Akses Kredensial
Gunakan Batas Akses Kredensial untuk memperkecil cakupan izin yang tersedia untuk token akses OAuth 2.0. Pertama, tentukan Batas Akses Kredensial yang menentukan bucket mana yang dapat diakses token, serta batas atas izin yang tersedia di bucket tersebut. Anda kemudian dapat membuat token akses OAuth 2.0 dan menukarnya dengan token akses baru yang mematuhi Batas Akses Kredensial.
Langkah selanjutnya
- Pelajari cara menggunakan izin IAM.
- Lihat peran dan izin IAM khusus untuk Cloud Storage
- Lihat contoh berbagi dan kolaborasi yang melibatkan penetapan ACL bucket dan objek.
- Pelajari cara membuat data Anda dapat diakses semua orang di internet publik.
- Pelajari lebih lanjut kapan URL bertanda tangan digunakan.