ניהול זהויות והרשאות גישה (IAM)

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

אם הבקשה clone מכילה ערך tags, נדרשות ההרשאות הנוספות הבאות:

  • datastore.databases.createTagBinding

אם רוצים לאמת שהקישורים לתגים הוגדרו בהצלחה על ידי הצגת הקישורים, נדרשות ההרשאות הנוספות הבאות:

  • datastore.databases.listTagBindings
  • datastore.databases.listEffectiveTags
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 לגישה למסד נתונים אחד או יותר, ראו הגדרת תנאי גישה למסד נתונים.

המאמרים הבאים