תפקידים קובעים אילו שירותים ופעולות זמינים לחשבון משתמש או לחשבון שירות. התפקידים הבאים מעניקים גישה ל-App Engine:
תפקידים בסיסיים שחלים על כל השירותים והמשאבים בפרויקט, כולל, בין היתר, App Engine. לדוגמה, חשבון עם תפקיד עורך יכול לשנות את ההגדרות של App Engine וגם את ההגדרות של Cloud Storage.
תפקידים מוגדרים מראש ב-App Engine, שמאפשרים גישה פרטנית ל-App Engine. כל שירות בGoogle Cloud פרויקט מספק תפקידים מוגדרים מראש משלו. לדוגמה, חשבון שיש לו רק את התפקיד App Engine Deployer יכול לפרוס אפליקציות של App Engine, אבל לא יכול להציג או ליצור אובייקטים ב-Cloud Storage. בנוסף, בחשבון כזה צריך להיות תפקיד מוגדר מראש ב-Cloud Storage כדי ליצור אובייקטים ב-Cloud Storage או לצפות בהם.
תפקידים בהתאמה אישית, שמאפשרים גישה פרטנית בהתאם לרשימת ההרשאות שאתם בוחרים.
אתם יכולים להשתמש בתפקידים בסיסיים כשאתם עובדים על פרויקטים קטנים יותר עם צרכים פחות מורכבים. כדי להגדיר בקרת גישה פרטנית יותר, משתמשים בתפקידים מוגדרים מראש.
תפקידים בסיסיים
תפקידים בסיסיים חלים על כל השירותים והמשאבים בפרויקט. לדוגמה, לחשבון עם תפקיד עורך יש אפשרות לשנות את ההגדרות של App Engine וגם את ההגדרות של Cloud Storage.
| תפקיד | Google Cloud הרשאות ב-Play Console | הרשאות לכלים |
|---|---|---|
Owner |
נדרשת כדי ליצור אפליקציות App Engine. כל ההרשאות של הצגה ועריכה, בנוסף ליכולת להציג קוד מקור שנפרס, להזמין משתמשים, לשנות תפקידי משתמשים ולמחוק אפליקציה. | נדרש כדי ליצור אפליקציות App Engine. יכול גם לפרוס קוד אפליקציה ולעדכן את כל ההגדרות. |
Editor |
צפייה בפרטי האפליקציה ועריכה של הגדרות האפליקציה. | פריסת קוד האפליקציה, עדכון אינדקסים/תורים/משימות cron. |
Viewer |
צפייה בפרטי האפליקציה. | יומני בקשות |
תפקידים מוגדרים מראש ב-App Engine
| Role | Permissions |
|---|---|
App Engine Admin( Read/Write/Modify access to all application configuration and settings. To deploy new versions, a principal must have the
Service Account User
( Lowest-level resources where you can grant this role:
|
|
App Engine Creator( Ability to create the App Engine resource for the project. Lowest-level resources where you can grant this role:
|
|
App Engine Viewer( Read-only access to all application configuration and settings. Lowest-level resources where you can grant this role:
|
|
App Engine Code Viewer( Read-only access to all application configuration, settings, and deployed source code. Lowest-level resources where you can grant this role:
|
|
App Engine Managed VM Debug Access( Ability to read or manage v2 instances. |
|
App Engine Deployer( Read-only access to all application configuration and settings. To deploy new versions, you must also have the
Service Account User
( Cannot modify existing versions other than deleting versions that are not receiving traffic. Lowest-level resources where you can grant this role:
|
|
App Engine Memcache Data Admin( Can get, set, delete, and flush App Engine Memcache items. |
|
App Engine Service Admin( Read-only access to all application configuration and settings. Write access to module-level and version-level settings. Cannot deploy a new version. Lowest-level resources where you can grant this role:
|
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
App Engine Standard Environment Service Agent( Give App Engine Standard Envirnoment service account access to managed resources. Includes access to service accounts. |
|
התפקידים האלה מספקים גישה רק ל-App Engine.אם הפרויקט כולל שירותים אחרים, כמו Cloud Storage או Cloud SQL, תצטרכו להקצות תפקידים נוספים כדי לאפשר גישה לשירותים האחרים.
השוואה בין תפקידים מוגדרים מראש ב-App Engine
בטבלה הבאה מוצגת השוואה מלאה בין היכולות של כל תפקיד מוגדר מראש ב-App Engine.
| יכולת | App Engine Admin | אדמין של שירות App Engine | App Engine Deployer | App Engine Viewer | App Engine Code Viewer |
|---|---|---|---|---|---|
| הצגת רשימה של כל השירותים, הגרסאות והמופעים | כן | כן | כן | כן | כן |
| הצגת כל ההגדרות של האפליקציה, השירות, הגרסה והמופע | כן | כן | כן | כן | כן |
| הצגת מדדי זמן ריצה כמו שימוש במשאבים, פרטי עומס ופרטי שגיאות | כן | כן | כן | כן | כן |
| הצגת קוד המקור של האפליקציה | לא | לא | לא | לא | כן |
| פריסת גרסה חדשה של אפליקציה | כן, אם נותנים גם את התפקיד Service Account User | לא | כן, אם נותנים גם את התפקיד Service Account User | לא | לא |
| חלוקה או העברה של תנועת הגולשים | כן | כן | לא*** | לא | לא |
| איך מתחילים ומפסיקים גרסה | כן | כן | לא | לא | לא |
| מחיקת גרסה | כן | כן | כן | לא | לא |
| מחיקה של שירות שלם | כן | כן | לא | לא | לא |
| שימוש ב-SSH כדי להתחבר למכונה וירטואלית בסביבה הגמישה | כן | לא | לא | לא | לא |
| כיבוי של מכונה | כן | לא | לא | לא | לא |
| השבתה והפעלה מחדש של אפליקציית App Engine | כן | לא | לא | לא | לא |
| מטפלי גישה עם הגבלה מסוג login:admin (זמינים רק בסביבות זמן ריצה מהדור הראשון) | כן | לא | לא | לא | לא |
| עדכון כללי השליחה | כן | לא | לא | לא | לא |
| עדכון הגדרות DoS | כן | לא | לא | לא | לא |
| עדכון לוחות זמנים של cron | לא | לא | לא | לא | לא |
| עדכון ברירת המחדל של תפוגת קובצי Cookie | כן | לא | לא | לא | לא |
| עדכון מקורות התנועה | כן | לא | לא | לא | לא |
| עדכון של שולחים מורשים ב-Email API | כן | לא | לא | לא | לא |
פרטים על הרשאות IAM ספציפיות שניתנות לכל תפקיד מופיעים בקטע Roles במאמר בנושא Admin API.
תפקיד מומלץ לפריסת אפליקציות
אם החשבון אחראי רק לפריסת גרסאות חדשות של אפליקציה, מומלץ להקצות לו את התפקידים הבאים:
- התפקיד App Engine Deployer (
roles/appengine.deployer) התפקיד 'משתמש בחשבון שירות' (
roles/iam.serviceAccountUser)התפקיד 'משתמש בחשבון שירות' מאפשר לחשבון להתחזות לחשבון השירות שמשמש כברירת המחדל של App Engine במהלך תהליך הפריסה.
אם משתמשים בפקודות
gcloudלפריסה בחשבון, צריך להוסיף גם את התפקידים הבאים:- אדמין של אובייקטים באחסון (
roles/storage.objectAdmin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor)
- אדמין של אובייקטים באחסון (
כדי לגשת לנתונים שמאוחסנים ב-Datastore או לעדכן אינדקסים, צריך להפעיל את תפקיד ניהול האינדקסים של Cloud Datastore (
roles/datastore.indexAdmin).
פרטים על מתן ההרשאות הנדרשות מופיעים במאמר בנושא יצירת חשבון משתמש.
הפרדה בין תפקידים שקשורים לפריסה ולניתוב תנועה
ארגונים רבים מעדיפים להפריד בין המשימה של פריסת גרסת אפליקציה לבין המשימה של הגדלת נפח התנועה לגרסה החדשה שנוצרה, ושהמשימות האלה יבוצעו על ידי תפקידים שונים. התפקידים 'App Engine Deployer' ו'אדמין שירות של App Engine' מספקים את ההפרדה הזו:
- תפקידים 'App Engine Deployer' ו'משתמש בחשבון שירות' – החשבונות מוגבלים לפריסת גרסאות חדשות ולמחיקת גרסאות ישנות שלא משרתות תעבורת נתונים. החשבון עם התפקידים האלה לא יוכל להגדיר תעבורת נתונים לגרסה כלשהי ולא יוכל לשנות הגדרות ברמת האפליקציה, כמו כללי שליחה או תחום אימות.
- תפקיד אדמין שירות App Engine – חשבונות לא יכולים לפרוס גרסה חדשה של אפליקציה או לשנות הגדרות ברמת האפליקציה. עם זאת, לחשבונות האלה יש הרשאות לשנות את המאפיינים של שירותים וגרסאות קיימים, כולל שינוי הגרסאות שיכולות להעביר תעבורה. תפקיד האדמין של שירות App Engine מתאים במיוחד למחלקת תפעול או IT שמטפלת בהגדלת נפח התנועה לגרסאות חדשות שנפרסו.
המגבלות של התפקידים המוגדרים מראש
אף אחד מהתפקידים המוגדרים מראש ב-App Engine לא מעניק גישה לפריטים הבאים:
- צפייה ביומני האפליקציות והורדה שלהם.
- הצגת תרשימי Monitoring במסוף Google Cloud .
- הפעלה והשבתה של החיוב.
- מריצים סריקות אבטחה ב-Cloud Security Scanner.
- הגדרת גישה או נתונים שמאוחסנים ב-Datastore, בתורי משימות, ב-Cloud Search או בכל מוצר אחסון אחר של Cloud Platform.