כדי ש-Firebase Extension יוכל לבצע את הפעולות שצוינו, מערכת Firebase מעניקה לכל מכונה של תוסף מותקן גישה מוגבלת לפרויקט ולנתונים שלכם באמצעות חשבון שירות.
מהו חשבון שירות?
חשבון שירות הוא סוג מיוחד של חשבון משתמש ב-Google. הוא מייצג משתמש לא אנושי, שקיבל הרשאה לגשת לנתונים באמצעות Google APIs.
במהלך ההתקנה של התוסף, מערכת Firebase יוצרת חשבון שירות בפרויקט. לכל מכונה מותקנת של תוסף יש חשבון שירות משלה.
מערכת Firebase מגבילה את הגישה לפרויקט ולנתונים שלכם על ידי הקצאת תפקידים (חבילות של הרשאות) ספציפיים לחשבון השירות של התוסף. התפקידים הנדרשים לתוסף כדי לפעול נקבעים על ידי Firebase במהלך פיתוח התוסף. במהלך ההתקנה, מערכת Firebase מקצה את התפקידים האלה לחשבון השירות של התוסף, ואסור לשנות, להוסיף או למחוק אף אחד מהתפקידים שהוקצתה (אחרת התוסף שהותקן לא יפעל כצפוי). עם זאת, תוכלו להסיר את התוסף, וכך למחוק את חשבון השירות (וגם את הגישה שלו) לגמרי.
חשבונות השירות שנוצרים עבור התוספים הם בפורמט:
ext-extension-instance-id@project-id.iam.gserviceaccount.com
אפשר לראות את כל חשבונות השירות המשויכים לפרויקט ב-Firebase בכרטיסייה Service accounts שב
הרשאות ותפקידים
במהלך הפיתוח של תוסף, מערכת Firebase קובעת את רמת הגישה שנדרשת לתוסף כדי לפעול.
Firebase מגדירה את רמת הגישה הזו על ידי ציון מפורש של התפקידים (חבילות של הרשאות) ש-Firebase צריכה להקצות לחשבון השירות של התוסף במהלך התקנת התוסף.
כל תפקיד (וההרשאות המובנות שלו) מבוסס על מוצר או שירות ספציפיים. דוגמאות לתפקידים: firebasehosting.admin
, bigquery.dataEditor
ו-firebasedatabase.admin
. התפקידים הנדרשים לתוסף מפורטים ב-Firebase בקובץ המפרט של התוסף (קובץ extension.yaml
).
בתוספים הרשמיים של Firebase, מערכת Firebase בודקת היטב את רשימת התפקידים הזו כדי לוודא שהגישה של התוסף מוגבלת אך ורק להיקף המשימות שלו. אפשר גם לבדוק ולראות בעצמכם את הרשאות הגישה שהוקצו לתוסף. לשם כך, עיינו בדף הפרטים של התוסף במרכז הבקרה של Firebase Extensions או בקובץ README
שלו.
מידע על ההרשאות שכלולות בכל תפקיד:
מה קורה כשמבטלים את ההתקנה של תוסף?
כשמסירים תוסף מהפרויקט, מערכת Firebase מוחקת את חשבון השירות שנוצר למכונה הזו של התוסף. אחרי המחיקה של חשבון השירות, התוסף לא יוכל לפעול בפרויקט כי אין לו יותר הרשאות גישה לפרויקט או לנתונים.