Agar Firebase Extension dapat melakukan tindakan yang ditentukan, Firebase memberi setiap instance ekstensi yang diinstal akses terbatas ke project dan data Anda melalui akun layanan.
Apa yang dimaksud akun layanan?
Akun layanan adalah akun pengguna Google berjenis khusus. Akun layanan mewakili pengguna non-manusia yang diberi otorisasi untuk mengakses data menggunakan Google API.
Selama penginstalan ekstensi, Firebase membuat akun layanan di project Anda. Setiap instance terinstal dari sebuah ekstensi memiliki akun layanannya sendiri.
Firebase membatasi akses ke project dan data dengan menetapkan peran (paket izin) tertentu ke akun layanan ekstensi. Peran yang diperlukan ekstensi untuk beroperasi ditentukan oleh Firebase selama pengembangan ekstensi. Selama penginstalan, Firebase menetapkan peran ini ke akun layanan ekstensi, dan Anda tidak boleh mengubah, menambahkan, atau menghapus peran apa pun yang ditetapkan (jika tidak, ekstensi yang diinstal tidak akan berfungsi seperti yang diharapkan). Namun, Anda dapat meng-uninstal ekstensi, yang akan menghapus akun layanan (dan aksesnya) sepenuhnya.
Akun layanan yang dibuat untuk ekstensi berformat: ext-extension-instance-id@project-id.iam.gserviceaccount.com
Anda dapat melihat semua akun layanan yang terkait dengan project Firebase Anda di tab Akun layanan di
Izin dan peran
Selama pengembangan ekstensi, Firebase menentukan tingkat akses yang diperlukan ekstensi untuk beroperasi.
Firebase menentukan tingkat akses ini dengan secara eksplisit mencantumkan peran (paket izin) yang harus ditetapkan Firebase ke akun layanan ekstensi selama penginstalan ekstensi.
Setiap peran (dan izin yang melekat pada peran tersebut) didasarkan pada produk atau layanan tertentu. Contoh peran adalah firebasehosting.admin
, bigquery.dataEditor
, dan firebasedatabase.admin
. Firebase mencantumkan peran yang diperlukan untuk sebuah ekstensi
dalam file spesifikasi ekstensi
(file extension.yaml
).
Untuk ekstensi Firebase resmi, Firebase meninjau daftar peran ini secara menyeluruh
untuk memastikan bahwa akses ekstensi benar-benar dibatasi sesuai cakupan
tugas ekstensi tersebut. Anda juga dapat meninjau dan mengonfirmasi sendiri akses yang
diberikan ke sebuah ekstensi dengan melihat halaman detail ekstensi tersebut di
dasbor Firebase Extensions atau melihat
file README
-nya.
Pelajari izin yang disertakan dalam setiap peran:
Apa yang terjadi jika saya meng-uninstal ekstensi?
Saat Anda meng-uninstal ekstensi dari project, Firebase akan menghapus akun layanan yang dibuat untuk instance ekstensi tersebut. Setelah penghapusan akun layanan ini, ekstensi tersebut tidak dapat berjalan di project Anda karena tidak lagi memiliki hak akses ke project atau data Anda.