Bir Firebase Extension'nın belirtilen işlemleri gerçekleştirebilmesi için Firebase, yüklenen her uzantı örneğine hizmet hesabı aracılığıyla projenize ve verilerinize sınırlı erişim izni verir.
Hizmet hesabı nedir?
Hizmet hesabı, özel bir Google kullanıcı hesabı türüdür. Google API'lerini kullanarak verilere erişme yetkisine sahip olan, insan harici bir kullanıcıyı temsil eder.
Firebase, bir uzantının yüklenmesi sırasında projenizde bir hizmet hesabı oluşturur. Bir uzantının her yüklü örneğinin kendi hizmet hesabı vardır.
Firebase, bir uzantının hizmet hesabına belirli roller (izin paketleri) atayarak projenize ve verilerinize erişimi sınırlar. Bir uzantının çalışması için gereken roller, uzantı geliştirme sırasında Firebase tarafından belirlenir. Firebase, yükleme sırasında bu rolleri bir uzantının hizmet hesabına atar ve bu atanan rollerden herhangi birini değiştirmemeli, eklememeli veya silmemelisiniz (aksi takdirde yüklenen uzantınız beklendiği gibi çalışmaz). Ancak uzantıyı kaldırabilirsiniz. Bu durumda hizmet hesabı (ve erişimi) tamamen silinir.
Uzantılar için oluşturulan hizmet hesapları şu biçimdedir:
ext-extension-instance-id@project-id.iam.gserviceaccount.com
Firebase projenizle ilişkili tüm hizmet hesaplarını
İzinler ve roller
Firebase, bir uzantının geliştirilmesi sırasında çalışması için gereken erişim düzeyini belirler.
Firebase, bu erişim düzeyini, uzantının yüklenmesi sırasında Firebase'in uzantının hizmet hesabına ataması gereken rolleri (izin paketleri) açıkça listeleyerek tanımlar.
Her rol (ve bu role özgü izinler) belirli bir ürüne veya hizmete dayanır. Rol örnekleri firebasehosting.admin
, bigquery.dataEditor
ve firebasedatabase.admin
'dir. Firebase, bir uzantı için gerekli rolleri uzantının spesifikasyon dosyasında (extension.yaml
dosyası) listeler.
Resmi Firebase uzantılarında, Firebase bu rol listesini kapsamlı bir şekilde inceleyerek uzantıların erişiminin kesinlikle uzantı görevlerinin kapsamıyla sınırlı olmasını sağlar. Ayrıca, Firebase Extensions kontrol panelinde uzantının ayrıntılar sayfasını veya README
dosyasını görüntüleyerek bir uzantıya verilen erişimi inceleyip kendiniz onaylayabilirsiniz.
Her role dahil edilen izinler hakkında bilgi edinin:
Bir uzantıyı kaldırdığımda ne olur?
Projenizden bir uzantıyı kaldırdığınızda Firebase, uzantının söz konusu örneği için oluşturulan hizmet hesabını siler. Hizmet hesabı silindikten sonra uzantı, projenize veya verilerinize erişim hakkı kalmadığı için projenizde çalışamaz.