כדי ש-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 מוחק את חשבון השירות שנוצר עבור המופע הזה של התוסף. אחרי המחיקה של חשבון השירות, התוסף לא יכול לפעול בפרויקט כי אין לו יותר הרשאות גישה לפרויקט או לנתונים.