Biasanya, keamanan merupakan salah satu bagian paling kompleks dari pengembangan aplikasi. Pada sebagian besar aplikasi, developer harus mem-build dan menjalankan server yang menangani autentikasi (siapa penggunanya) dan otorisasi (apa yang bisa dilakukan pengguna). Autentikasi dan autorisasi sangat penting untuk keberhasilan produk Anda. Selain sulit untuk disiapkan, keduanya lebih sulit lagi untuk disetel dengan benar.
Sama halnya dengan Firebase Authentication yang memudahkan Anda untuk mengautentikasi pengguna, Firebase Security Rules untuk Cloud Storage memudahkan Anda untuk memberi otorisasi kepada pengguna dan memvalidasi permintaan. Cloud Storage Security Rules membantu Anda mengelola kerumitan dengan mengizinkan Anda untuk menetapkan izin berbasis lokasi. Cukup dengan beberapa baris kode, Anda dapat menulis aturan otorisasi yang membatasi permintaan Cloud Storage kepada pengguna tertentu atau membatasi ukuran upload.
Firebase Realtime Database memiliki fitur serupa, yang disebut Firebase Realtime Database Security Rules
Autentikasi
Mengetahui siapa pengguna Anda adalah bagian penting dalam membuat aplikasi, dan Firebase Authentication memberikan solusi khusus sisi klien yang mudah digunakan dan aman untuk autentikasi. Firebase Security Rules untuk Cloud Storage akan sama dengan Firebase Authentication
untuk keamanan berbasis pengguna. Saat pengguna diautentikasi dengan Firebase Authentication,
variabel request.auth
di Cloud Storage Security Rules menjadi objek yang
berisi ID unik pengguna (request.auth.uid
) dan semua informasi
pengguna lainnya di token (request.auth.token
). Jika pengguna tidak
diautentikasi, request.auth
adalah null
. Hal ini memungkinkan Anda mengontrol
akses data secara aman pada basis per pengguna. Anda dapat mempelajari lebih lanjut di
bagian Autentikasi.
Otorisasi
Mengidentifikasi pengguna hanyalah sebagian dari keamanan. Setelah mengetahui identitas pengguna, Anda memerlukan cara untuk mengontrol akses mereka ke file di Cloud Storage.
Dengan Cloud Storage, Anda dapat menentukan otorisasi per file dan per jalur yang ada di server kami, serta menentukan akses ke file di aplikasi Anda. Misalnya, Cloud Storage Security Rules default memerlukan Firebase Authentication untuk menjalankan operasi read
atau write
pada semua file:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
Anda dapat mengedit aturan ini dengan memilih aplikasi Firebase di Firebase console dan melihat tab Rules
di bagian Storage.
Validasi Data
Firebase Security Rules untuk Cloud Storage juga dapat digunakan untuk validasi data, termasuk memvalidasi nama dan jalur file serta properti metadata file seperti contentType
dan size
.
service firebase.storage { match /b/{bucket}/o { match /images/{imageId} { // Only allow uploads of any image file that's less than 5MB allow write: if request.resource.size < 5 * 1024 * 1024 && request.resource.contentType.matches('image/.*'); } } }
Langkah berikutnya
Mulai merencanakan pengembangan aturan untuk bucket Cloud Storage Anda.
Pelajari lebih lanjut cara mengamankan data Anda menggunakan aturan keamanan.