Buka konsol

Memahami Aturan Keamanan Firebase untuk Cloud Storage

Biasanya, keamanan merupakan salah satu bagian paling kompleks dari pengembangan aplikasi. Pada sebagian besar aplikasi, developer harus membangun dan menjalankan server yang menangani autentikasi (siapa penggunanya) dan otorisasi (apa yang bisa dilakukan pengguna). Autentikasi dan otorisasi sulit untuk disiapkan, lebih sulit lagi untuk disetel dengan benar, dan hal ini sangat penting untuk keberhasilan produk Anda.

Mirip dengan Firebase Authentication yang memudahkan Anda untuk mengautentikasi pengguna, Aturan Keamanan Firebase untuk Cloud Storage memudahkan Anda untuk memberi otorisasi kepada pengguna dan memvalidasi permintaan. Aturan Keamanan Storage membantu Anda mengelola kerumitan dengan mengizinkan Anda untuk menetapkan izin berbasis lokasi. Cukup dengan beberapa baris kode, Anda bisa menulis aturan otorisasi yang membatasi permintaan Cloud Storage ke pengguna tertentu atau membatasi ukuran upload.

Firebase Realtime Database memiliki fitur serupa yang disebut Aturan Firebase Realtime Database

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. Aturan Keamanan Firebase untuk Cloud Storage terhubung ke Firebase Authentication untuk keamanan berbasis pengguna. Ketika pengguna diautentikasi dengan Firebase Authentication, variabel request.auth di Aturan Keamanan Storage menjadi objek yang berisi ID unik pengguna (request.auth.uid) dan semua informasi pengguna lain dalam token (request.auth.token). Jika pengguna tidak diautentikasi, request.auth adalah null. Hal ini memungkinkan Anda untuk mengontrol akses data secara aman pada basis per pengguna. Anda dapat mempelajari lebih lanjut di bagian Keamanan Pengguna.

Otorisasi

Mengidentifikasi pengguna hanyalah sebagian dari keamanan. Setelah mengetahui siapa mereka, Anda perlu cara untuk mengontrol akses mereka ke file di Cloud Storage.

Cloud Storage bisa digunakan untuk menentukan aturan otorisasi per file dan per lokasi yang berada di server kami, serta menentukan akses ke file dalam aplikasi Anda. Misalnya, Aturan Keamanan Storage default memerlukan Firebase Authentication untuk melakukan setiap 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 membuka tab Rules di bagian Storage.

Validasi Data

Aturan Keamanan Firebase untuk Cloud Storage juga dapat digunakan untuk validasi data, termasuk memvalidasi nama file dan lokasi 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/.*');
    }
  }
}

Setelah Anda mempelajari dasar-dasar kegunaan Aturan Keamanan Storage, silakan Memulai.