ניהול הגישה למשאבים באמצעות ניהול זהויות והרשאות גישה (IAM). בעזרת IAM תוכלו לתת גישה פרטנית יותר למשאבים ספציפיים ב-Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. בדף הזה מפורטים התפקידים וההרשאות ב-IAM עבור Cloud Firestore. למידע מפורט על IAM, תוכלו לעיין במסמכי העזרה של IAM.
בעזרת IAM תוכלו לשמור על עקרון האבטחה של הרשאות מינימליות, וכך לתת רק למי שצריך את רמת הגישה שצריך למשאבים השונים.
באמצעות כללי המדיניות ב-IAM תוכלו לקבוע למי (משתמש) יש הרשאת גישה (תפקיד) למשאבים מסוימים.
כללי המדיניות ב-IAM מקצים למשתמשים תפקיד אחד או יותר עם הרשאות ספציפיות. לדוגמה, אפשר לתת למשתמש את התפקיד datastore.indexAdmin
, שמאפשר לו ליצור, לשנות, למחוק, להציג או לראות אינדקסים.
הרשאות ותפקידים
בקטע הזה מפורטים התפקידים וההרשאות שנתמכים ב-Cloud Firestore.
ההרשאות שנדרשות לשיטות API
בטבלה הבאה מפורטות ההרשאות שנדרשות למבצע הקריאה החוזרת (caller) כדי לבצע כל פעולה:
שיטה | ההרשאות הנדרשות | |
---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.indexes.list |
|
Find |
datastore.entities.get datastore.entities.list |
|
Aggregate |
datastore.entities.get datastore.entities.list |
|
GetMore |
אותן הרשאות שנדרשו לקריאה שיצרה את הסמן. |
|
ListCollections |
datastore.entities.list |
|
Count |
datastore.entities.list |
|
Distinct |
datastore.entities.get datastore.entities.list |
|
CommitTransaction |
datastore.databases.get |
|
AbortTransaction |
datastore.databases.get |
|
EndSessions |
datastore.databases.get |
|
KillCursors |
datastore.databases.get |
|
Insert |
datastore.entities.create |
|
Update |
datastore.entities.get datastore.entities.list datastore.entities.update datastore.entities.create (לעדכון והוספה בלבד) |
|
FindAndModify |
datastore.entities.get datastore.entities.list datastore.entities.update (להחלפה או לעדכון בלבד)datastore.entities.create (לעדכון והוספה בלבד)datastore.entities.delete (למחיקה בלבד) |
|
CreateCollection |
datastore.entities.create |
|
projects.databases.indexes |
||
create |
datastore.indexes.create |
|
delete |
datastore.indexes.delete |
|
get |
datastore.indexes.get |
|
list |
datastore.indexes.list |
|
projects.databases |
||
create |
datastore.databases.create |
|
delete |
datastore.databases.delete |
|
get |
datastore.databases.getMetadata |
|
list |
datastore.databases.list |
|
patch |
datastore.databases.update |
|
שחזור | datastore.backups.restoreDatabase |
|
clone |
datastore.databases.clone |
משכפלים מסד נתונים.
אם הבקשה
אם רוצים לאמת שהקישורים לתגים הוגדרו בהצלחה על ידי הצגת הקישורים, נדרשות ההרשאות הנוספות הבאות:
|
projects.locations |
||
get |
datastore.locations.get |
|
list |
datastore.locations.list |
|
projects.databases.backupschedules |
||
get |
datastore.backupSchedules.get |
|
list |
datastore.backupSchedules.list |
|
create |
datastore.backupSchedules.create |
|
update |
datastore.backupSchedules.update |
|
delete |
datastore.backupSchedules.delete |
|
projects.locations.backups |
||
get |
datastore.backups.get |
|
list |
datastore.backups.list |
|
delete |
datastore.backups.delete |
|
projects.databases.usercreds |
||
get |
datastore.userCreds.get |
|
list |
datastore.userCreds.list |
|
create |
datastore.userCreds.create |
|
enable |
datastore.userCreds.update |
|
disable |
datastore.userCreds.update |
|
resetPassword |
datastore.userCreds.update |
|
delete |
datastore.userCreds.delete |
תפקידים מוגדרים מראש
באמצעות IAM, כל method ב-API ב-Cloud Firestore דורשת שלחשבון שממנו הגיעה בקשת ה-API יהיו ההרשאות המתאימות לשימוש במשאב. ההרשאות ניתנות על ידי הגדרת כללי מדיניות שמקצים תפקידים למשתמש, לקבוצה או לחשבון שירות. בנוסף לתפקידים הבסיסיים בעלים, עריכה וצפייה, אפשר להעניק למשתמשים בפרויקט תפקידים של Cloud Firestore.
בטבלה הבאה מפורטים תפקידי IAM Cloud Firestore. אפשר להעניק כמה תפקידים למשתמש, לקבוצה או לחשבון שירות.
תפקיד | הרשאות | תיאור |
---|---|---|
roles/datastore.owner |
appengine.applications.get datastore.* resourcemanager.projects.get resourcemanager.projects.list |
גישה מלאה ל-Cloud Firestore. |
roles/datastore.user |
appengine.applications.get datastore.databases.get datastore.databases.getMetadata datastore.databases.list datastore.entities.* datastore.indexes.list datastore.namespaces.get datastore.namespaces.list datastore.statistics.get datastore.statistics.list resourcemanager.projects.get resourcemanager.projects.list |
גישת קריאה/כתיבה לנתונים במסד נתונים של Cloud Firestore. מיועד למפתחי אפליקציות ולחשבונות שירות. |
roles/datastore.viewer |
appengine.applications.get datastore.databases.get datastore.databases.getMetadata datastore.databases.list datastore.entities.get datastore.entities.list datastore.indexes.get datastore.indexes.list datastore.namespaces.get datastore.namespaces.list datastore.statistics.get datastore.statistics.list resourcemanager.projects.get resourcemanager.projects.list |
הרשאת קריאה לכל המשאבים של Cloud Firestore. |
roles/datastore.indexAdmin |
appengine.applications.get datastore.databases.getMetadata datastore.indexes.* datastore.operations.list datastore.operations.get resourcemanager.projects.get resourcemanager.projects.list |
גישה מלאה לניהול הגדרות האינדקס. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.get datastore.backupSchedules.list |
הרשאת קריאה ללוחות זמנים של גיבויים במסד נתונים של Cloud Firestore. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.get datastore.backupSchedules.list datastore.backupSchedules.create datastore.backupSchedules.update datastore.backupSchedules.delete datastore.databases.list datastore.databases.getMetadata |
גישה מלאה ללוחות זמנים של גיבויים במסד נתונים של Cloud Firestore. |
roles/datastore.backupsViewer |
datastore.backups.get datastore.backups.list |
הרשאת קריאה של פרטי הגיבוי במיקום Cloud Firestore. |
roles/datastore.backupsAdmin |
datastore.backups.get datastore.backups.list datastore.backups.delete |
גישה מלאה לגיבויים במיקום Cloud Firestore. |
roles/datastore.restoreAdmin |
datastore.backups.get datastore.backups.list datastore.backups.restoreDatabase datastore.databases.list datastore.databases.create datastore.databases.getMetadata datastore.operations.list datastore.operations.get |
אפשרות לשחזר גיבוי של Cloud Firestore למסד נתונים חדש. התפקיד הזה מאפשר גם ליצור מסדי נתונים חדשים, לא בהכרח על ידי שחזור מגיבוי. |
roles/datastore.cloneAdmin |
datastore.databases.clone datastore.databases.list datastore.databases.create datastore.databases.getMetadata datastore.operations.list datastore.operations.get |
אפשרות לשכפל מסד נתונים של Cloud Firestore למסד נתונים חדש. התפקיד הזה מאפשר גם ליצור מסדי נתונים חדשים, לא בהכרח באמצעות שיבוט. |
roles/datastore.statisticsViewer |
resourcemanager.projects.get resourcemanager.projects.list datastore.databases.getMetadata datastore.insights.get datastore.keyVisualizerScans.get datastore.keyVisualizerScans.list datastore.statistics.list datastore.statistics.get |
גישת קריאה לתובנות, לנתונים סטטיסטיים ולסריקות של Key Visualizer. |
roles/datastore.userCredsViewer |
datastore.userCreds.get datastore.userCreds.list |
הרשאת קריאה לפרטי הכניסה של משתמש במסד נתונים של Cloud Firestore. |
roles/datastore.userCredsAdmin |
datastore.userCreds.get datastore.userCreds.list datastore.userCreds.create datastore.userCreds.update datastore.userCreds.delete datastore.databases.list datastore.databases.getMetadata |
גישה מלאה לפרטי הכניסה של המשתמשים במסד נתונים Cloud Firestore. |
תפקידים בהתאמה אישית
אם התפקידים המוגדרים מראש לא עונים על הדרישות העסקיות שלכם, אתם יכולים להגדיר תפקידים בהתאמה אישית עם הרשאות שאתם מציינים:
תפקידים שנדרשים כדי ליצור ולנהל תגים
אם תג כלשהו מיוצג בפעולות יצירה או שחזור, נדרשים תפקידים מסוימים. איך יוצרים תגים ומנהלים אותם
נדרשות ההרשאות הבאות:
הצגת תגים
datastore.databases.listTagBindings
datastore.databases.listEffectiveTags
ניהול תגים במשאבים
נדרשת ההרשאה הבאה למשאב מסד הנתונים שאליו מצורף ערך התג.
datastore.databases.createTagBinding
הרשאות
בטבלה הבאה מפורטות ההרשאות ש-Cloud Firestore תומך בהן.
שם ההרשאה של מסד הנתונים | תיאור | |
---|---|---|
datastore.databases.get |
מתחילים או מבטלים עסקה. | |
datastore.databases.getMetadata |
קריאת מטא-נתונים ממסד נתונים. | |
datastore.databases.list |
הצגת רשימה של מסדי הנתונים בפרויקט. | |
datastore.databases.create |
יוצרים מסד נתונים. | |
datastore.databases.update |
עדכון מסד נתונים. | |
datastore.databases.delete |
מחיקת מסד נתונים. | |
datastore.databases.clone |
משכפלים מסד נתונים. | |
datastore.databases.createTagBinding |
יצירת קישור תגים למסד נתונים. | |
datastore.databases.deleteTagBinding |
מחיקת קישור תגים למסד נתונים. | |
datastore.databases.listTagBindings |
הצגת רשימה של כל הקישורים של התגים למסד נתונים. | |
datastore.databases.listEffectiveTagBindings |
הצגת רשימה של תגי איגוד יעילים למסד נתונים. | |
שם ההרשאה של הישות | תיאור | |
datastore.entities.create |
יוצרים מסמך. | |
datastore.entities.delete |
מחיקת מסמך. | |
datastore.entities.get |
לקרוא מסמך. | |
datastore.entities.list |
הצגת רשימה של שמות המסמכים בפרויקט. (נדרשת הרשאה של datastore.entities.get כדי לגשת לנתוני המסמך). |
|
datastore.entities.update |
מעדכנים מסמך. | |
שם ההרשאה של האינדקס | תיאור | |
datastore.indexes.create |
יוצרים אינדקס. | |
datastore.indexes.delete |
מחיקת אינדקס. | |
datastore.indexes.get |
קריאת מטא-נתונים מאינדקס. | |
datastore.indexes.list |
הצגת רשימה של האינדקסים בפרויקט. | |
datastore.indexes.update |
עדכון אינדקס. | |
שם הרשאת הפעולה | תיאור | |
datastore.operations.cancel |
ביטול פעולה ממושכת. | |
datastore.operations.delete |
מחיקת פעולה ממושכת. | |
datastore.operations.get |
אחזור המצב העדכני של פעולה ממושכת. | |
datastore.operations.list |
הצגת רשימה של פעולות ממושכות. | |
שם ההרשאה של הפרויקט | תיאור | |
resourcemanager.projects.get |
רשימת המשאבים בפרויקט. | |
resourcemanager.projects.list |
הצגת רשימה של פרויקטים שבבעלותכם. | |
שם הרשאת המיקום | תיאור | |
datastore.locations.get |
לקבל פרטים על מיקום של מסד נתונים. חובה ליצור מסד נתונים חדש. | |
datastore.locations.list |
רשימת המיקומים הזמינים של מסדי נתונים. חובה ליצור מסד נתונים חדש. | |
שם ההרשאה של Key Visualizer | תיאור | |
datastore.keyVisualizerScans.get |
קבלת פרטים על סריקות של Key Visualizer. | |
datastore.keyVisualizerScans.list |
רשימת הסריקות הזמינות של Key Visualizer. | |
שם ההרשאה של לוח הזמנים לגיבוי | תיאור | |
datastore.backupSchedules.get |
קבלת פרטים על תזמון גיבוי. | |
datastore.backupSchedules.list |
רשימת לוחות הזמנים הזמינים לגיבוי. | |
datastore.backupSchedules.create |
יוצרים לוח זמנים לגיבוי. | |
datastore.backupSchedules.update |
עדכון של לוח זמנים לגיבוי. | |
datastore.backupSchedules.delete |
מחיקת לוח זמנים לגיבוי. | |
שם הרשאת הגיבוי | תיאור | |
datastore.backups.get |
קבלת פרטים על גיבוי. | |
datastore.backups.list |
רשימת הגיבויים הזמינים. | |
datastore.backups.delete |
מחיקת גיבוי. | |
datastore.backups.restoreDatabase |
שחזור מסד נתונים מגיבוי. | |
שם ההרשאה לתובנות | תיאור | |
datastore.insights.get |
קבלת תובנות לגבי משאב | |
שם ההרשאה של פרטי הכניסה של המשתמש | תיאור | |
datastore.userCreds.get |
קבלת פרטים על פרטי הכניסה של המשתמש. | |
datastore.userCreds.list |
רשימה של פרטי הכניסה הזמינים של המשתמש. | |
datastore.userCreds.create |
יוצרים פרטי כניסה למשתמש. | |
datastore.userCreds.update |
הפעלה או השבתה של פרטי כניסה של משתמשים, או איפוס של סיסמה של משתמש. | |
datastore.userCreds.delete |
מחיקת פרטי הכניסה של המשתמש. |
זמן האחזור של שינוי התפקיד
Cloud Firestore שומר במטמון את הרשאות ה-IAM למשך 5 דקות, ולכן חולפות עד 5 דקות עד ששינוי בתפקיד נכנס לתוקף.
ניהול Cloud Firestore IAM
אפשר לקבל ולהגדיר מדיניות IAM באמצעות מסוף Google Cloud, IAM API או כלי שורת הפקודה gcloud
. פרטים נוספים מופיעים במאמר הענקה, שינוי וביטול של הרשאות גישה לחברי פרויקט.
הגדרת הרשאות לגישה מותנית
אפשר להשתמש בתנאים של IAM כדי להגדיר ולאכוף בקרת גישה מותנית.
לדוגמה, התנאי הבא מקצה לחשבון משתמש את התפקיד datastore.user
עד לתאריך מסוים:
{
"role": "roles/datastore.user",
"members": [
"user:travis@example.com"
],
"condition": {
"title": "Expires_December_1_2023",
"description": "Expires on December 1, 2023",
"expression":
"request.time < timestamp('2023-12-01T00:00:00.000Z')"
}
}
במאמר הגדרת גישה זמנית מוסבר איך מגדירים תנאי IAM לגישה זמנית.
כדי ללמוד איך להגדיר תנאי IAM לגישה למסד נתונים אחד או יותר, ראו הגדרת תנאי גישה למסד נתונים.