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 sebaiknya memutuskan apakah ingin menerapkan izin menggunakan akses seragam atau terperinci.
Seragam (direkomendasikan): Akses level bucket yang seragam memungkinkan Anda menggunakan Identity and Access Management (IAM) saja untuk mengelola izin. IAM menerapkan izin ke semua objek yang ada di dalam bucket atau grup objek dengan awalan nama yang sama. IAM juga memungkinkan Anda menggunakan fitur yang tidak tersedia saat menggunakan ACL, seperti folder terkelola, IAM Conditions, berbagi dengan batasan domain, dan workforce identity federation.
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 menentukan akses berdasarkan objek.
Karena akses terperinci mengharuskan Anda untuk berkoordinasi antara dua sistem kontrol akses yang berbeda, ada peningkatan peluang eksposur data yang tidak disengaja, dan audit yang memiliki akses ke resource menjadi lebih rumit. Terutama jika Anda memiliki objek yang berisi data sensitif, seperti informasi identitas pribadi, sebaiknya simpan data tersebut dalam bucket dengan akses tingkat 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 yang ditandatangani untuk memberikan akses baca atau tulis dengan batas waktu ke objek melalui URL yang Anda buat. Siapa pun yang Anda beri URL 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.
Pemfilteran IP Bucket
Gunakan Pemfilteran IP bucket untuk membatasi akses di bucket Anda berdasarkan alamat IP sumber permintaan. Pemfilteran IP bucket menambahkan lapisan keamanan dengan mencegah jaringan yang tidak sah mengakses bucket dan datanya. Anda dapat mengonfigurasi daftar rentang alamat IP yang diizinkan, termasuk alamat IP publik, rentang alamat IP publik, dan alamat IP dalam Virtual Private Cloud Anda. Semua permintaan yang berasal dari alamat IP yang tidak ada dalam daftar Anda akan diblokir. Akibatnya, hanya pengguna yang diberi otorisasi yang dapat mengakses bucket Anda.
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.