ניהול זהויות והרשאות גישה (IAM) מאפשר לכם לקבוע את הגישה של משתמשים וקבוצות למשאבי Spanner ברמת הפרויקט, המכונה ומסד הנתונים של Spanner. לדוגמה, אתם יכולים להגדיר שלמשתמש תהיה שליטה מלאה במסד נתונים ספציפי במכונה ספציפית בפרויקט, אבל הוא לא יוכל ליצור, לשנות או למחוק מכונות בפרויקט. באמצעות בקרת גישה עם IAM, אתם יכולים לתת הרשאה למשתמש או לקבוצה בלי לשנות בנפרד כל הרשאה של מכונה או מסד נתונים ב-Spanner.
במאמר הזה נתמקד בהרשאות של IAM שרלוונטיות ל-Spanner, ובתפקידים של IAM שמעניקים את ההרשאות האלה. למידע מפורט על IAM והמאפיינים שלו, תוכלו לעיין במדריך למפתחים בנושא IAM. כדאי לקרוא באופן ספציפי את הקטע ניהול מדיניות IAM.
הרשאות
הרשאות מאפשרות למשתמשים לבצע פעולות ספציפיות במשאבים של Spanner. לדוגמה, ההרשאה spanner.databases.read מאפשרת למשתמש לקרוא ממסד נתונים באמצעות ה-API לקריאה של Spanner, וההרשאה spanner.databases.select מאפשרת למשתמש להריץ הצהרת SQL select במסד נתונים. המשתמשים לא מקבלים הרשאות בצורה ישירה. כדי להעניק להם הרשאות, צריך להקצות להם תפקידים מוגדרים מראש או תפקידים בהתאמה אישית שמוגדרת להם הרשאה אחת או יותר.
בטבלאות הבאות מפורטות הרשאות ה-IAM שמשויכות ל-Spanner.
הגדרות של מכונות
ההרשאות הבאות חלות על הגדרות של מכונות Spanner. למידע נוסף, ראו את חומרי העזר בנושא הגדרת מכונות ל-API של REST ו-RPC.
| שם ההרשאה להגדרת המכונה | תיאור |
|---|---|
spanner.instanceConfigs.create |
יצירת הגדרת מכונה בהתאמה אישית. |
spanner.instanceConfigs.delete |
מחיקת הגדרת מכונה בהתאמה אישית. |
spanner.instanceConfigs.get |
אחזור של הגדרת מכונה. |
spanner.instanceConfigs.list |
הצגת רשימה של קבוצת ההגדרות של המכונות. |
spanner.instanceConfigs.update |
עדכון של הגדרת מכונה בהתאמה אישית. |
פעולות להגדרת מכונה
ההרשאות הבאות חלות על פעולות שקשורות להגדרת המכונות של Spanner. מידע נוסף זמין בחומרי העזר של המכונות לממשקי ה-API של REST ו-RPC.
| שם ההרשאה לפעולת הגדרת המכונה | תיאור |
|---|---|
spanner.instanceConfigOperations.cancel |
ביטול פעולה של הגדרת מכונה. |
spanner.instanceConfigOperations.delete |
מחיקת פעולה של הגדרת מכונה. |
spanner.instanceConfigOperations.get |
אחזור של פעולת הגדרת מכונה. |
spanner.instanceConfigOperations.list |
הצגת רשימה של פעולות להגדרת מכונות. |
מכונות
ההרשאות הבאות חלות על מכונות Spanner. למידע נוסף, קראו את חומרי העזר בנושא מכונות של ממשקי ה-API של REST ו-RPC.
| שם ההרשאה של המכונה | תיאור |
|---|---|
spanner.instances.create |
יוצרים מכונה. |
spanner.instances.delete |
למחוק מכונה. |
spanner.instances.get |
קבלת ההגדרות של מכונה ספציפית. |
spanner.instances.getIamPolicy |
קבלת מדיניות IAM של מכונה. |
spanner.instances.list |
הצגת רשימת המכונות. |
spanner.instances.setIamPolicy |
הגדרת מדיניות IAM של מכונה. |
spanner.instances.update |
עדכון של מכונה. |
פעולות במכונה
ההרשאות הבאות חלות על פעולות במכונות של Spanner. מידע נוסף זמין בחומרי העזר של המכונות לממשקי ה-API של REST ו-RPC.
| שם ההרשאה לפעולה במכונה | תיאור |
|---|---|
spanner.instanceOperations.cancel |
ביטול פעולה של מכונה. |
spanner.instanceOperations.delete |
מחיקת פעולה של מכונה. |
spanner.instanceOperations.get |
קבלת פעולה ספציפית של מכונה. |
spanner.instanceOperations.list |
הצגת רשימה של פעולות במכונה. |
מחיצות של מכונות
ההרשאות הבאות חלות על מחיצות של מכונות Spanner. מידע נוסף זמין בחומרי העזר בנושא מחיצות של מכונות ל-APIs של REST ו-RPC.
| שם ההרשאה של המכונה | תיאור |
|---|---|
spanner.instancePartitions.create |
יוצרים מחיצה של מכונה. |
spanner.instancePartitions.delete |
מחיקת מחיצה של מכונה. |
spanner.instancePartitions.get |
אחזור ההגדרות של מחיצה ספציפית של מכונה. |
spanner.instancePartitions.list |
הצגת רשימה של מחיצות של מכונות. |
spanner.instancePartitions.update |
עדכון מחיצה של מכונה. |
פעולות במחיצות של מכונות
ההרשאות הבאות חלות על פעולות במחיצות של מכונות Spanner. למידע נוסף, קראו את חומרי העזר בנושא מחיצות של מכונות ל-REST API ול-RPC API.
| שם ההרשאה לפעולה במחיצת המכונה | תיאור |
|---|---|
spanner.instancePartitionOperations.cancel |
ביטול פעולה של מחיצת מכונה. |
spanner.instancePartitionOperations.delete |
מחיקת פעולה של מחיצת מכונה. |
spanner.instancePartitionOperations.get |
קבלת פעולה ספציפית של מחיצת מכונה. |
spanner.instancePartitionOperations.list |
הצגת רשימה של פעולות במחיצות של מכונות. |
מסדי נתונים
ההרשאות הבאות חלות על מסדי נתונים ב-Spanner. מידע נוסף מופיע במאמרי העזרה של מסדי הנתונים ל-API בארכיטקטורת REST ו-RPC.
| שם ההרשאה של מסד הנתונים | תיאור |
|---|---|
spanner.databases.adapt |
מאפשר ל-Spanner Adapter API לקיים אינטראקציה ישירות עם Spanner. |
spanner.databases.beginOrRollbackReadWriteTransaction |
התחלה או החזרה למצב קודם של טרנזקציית קריאה-כתיבה במסד נתונים של Spanner. |
spanner.databases.beginPartitionedDmlTransaction |
מריצים פקודת שפת טיפול בנתונים (DML) שמחולקת למחיצות של מכונות. מידע נוסף על שאילתות שמחולקות למחיצות של מכונות זמין במאמר קריאת נתונים במקביל. |
spanner.databases.beginReadOnlyTransaction |
מתחילים טרנזקציה לקריאה בלבד במסד נתונים של Spanner. |
spanner.databases.create |
יוצרים מסד נתונים. |
spanner.databases.createBackup |
יוצרים גיבוי ממסד הנתונים. כדי ליצור את משאב הגיבוי, נדרשת גם ההרשאה spanner.backups.create. |
spanner.databases.drop |
למחוק מסד נתונים. |
spanner.databases.get |
אחזור מטא-נתונים של מסד נתונים. |
spanner.databases.getDdl |
קבלת סכימה של מסד נתונים. |
spanner.databases.getIamPolicy |
קבלת מדיניות IAM של מסד נתונים. |
spanner.databases.list |
הצגת רשימה של מסדי נתונים. |
spanner.databases.read |
קריאה ממסד נתונים באמצעות ה-API לקריאה. |
spanner.databases.select |
מריצים משפט select ב-SQL במסד נתונים. |
spanner.databases.setIamPolicy |
הגדרת מדיניות IAM של מסד נתונים. |
spanner.databases.update |
לעדכן את המטא-נתונים של מסד נתונים. |
spanner.databases.updateDdl |
עדכון הסכימה של מסד נתונים. |
spanner.databases.useDataBoost |
משתמשים במשאבי המחשוב של Spanner Data Boost כדי לעבד שאילתות במחיצות של המכונה. |
spanner.databases.useRoleBasedAccess |
להשתמש בבקרת גישה פרטנית. |
spanner.databases.write |
לכתוב למסד נתונים. |
תפקידים במסד הנתונים
ההרשאות הבאות חלות על תפקידים במסד הנתונים של Spanner. למידע נוסף, קראו את חומרי העזר של מסד הנתונים ל-API בארכיטקטורת REST ול-RPC.
| שם ההרשאה של התפקיד במסד הנתונים | תיאור |
|---|---|
spanner.databaseRoles.list |
הצגת רשימה של תפקידים במסד הנתונים. |
spanner.databaseRoles.use |
שימוש בתפקיד מסוים במסד הנתונים. |
פעולות במסד הנתונים
ההרשאות הבאות חלות על פעולות במסד הנתונים של Spanner. למידע נוסף, קראו את חומרי העזר של מסד הנתונים לממשקי API מסוג REST ו-RPC.
| שם ההרשאה לפעולה במסד הנתונים | תיאור |
|---|---|
spanner.databaseOperations.cancel |
ביטול פעולה במסד הנתונים. |
spanner.databaseOperations.get |
קבלת פעולה ספציפית במסד נתונים. |
spanner.databaseOperations.list |
פעולות של הצגת רשימת מסדי נתונים ושחזור מסדי נתונים. |
גיבויים
ההרשאות הבאות חלות על גיבויים של Spanner. מידע נוסף זמין בחומרי העזר בנושא גיבויים של ממשקי ה-API ב-REST וב-RPC.
| שם ההרשאה של הגיבוי | תיאור |
|---|---|
spanner.backups.create |
יוצרים גיבוי. נדרשת גם ההרשאה spanner.databases.createBackup במסד הנתונים של המקור. |
spanner.backups.delete |
למחוק גיבוי. |
spanner.backups.get |
מגבים את הנתונים. |
spanner.backups.getIamPolicy |
קבלת מדיניות IAM של גיבוי. |
spanner.backups.list |
הצגת רשימת הגיבויים. |
spanner.backups.restoreDatabase |
שחזור מסד נתונים מגיבוי. כדי ליצור את מסד הנתונים המשוחזר במכונת היעד, נדרשת גם ההרשאה spanner.databases.create. |
spanner.backups.setIamPolicy |
הגדרת מדיניות IAM של גיבוי. |
spanner.backups.update |
עדכון גיבוי. |
פעולות גיבוי
ההרשאות הבאות חלות על פעולות גיבוי ב-Spanner. מידע נוסף מופיע בחומרי העזר של מסד הנתונים ל-REST API ול-RPC API.
| שם ההרשאה של פעולת הגיבוי | תיאור |
|---|---|
spanner.backupOperations.cancel |
ביטול פעולת גיבוי. |
spanner.backupOperations.get |
קבלת פעולת גיבוי ספציפית. |
spanner.backupOperations.list |
הצגת רשימה של פעולות גיבוי. |
לוחות זמנים לגיבויים
ההרשאות הבאות חלות על תזמוני גיבויים ב-Spanner. מידע נוסף זמין בחומרי העזר של מסד הנתונים ל-API של REST ו-RPC.
| שם ההרשאה של לוח הזמנים לגיבוי | תיאור |
|---|---|
spanner.backupSchedules.create |
יוצרים לוח זמנים לגיבוי. נדרשת גם ההרשאה spanner.databases.createBackup במסד הנתונים של המקור. |
spanner.backupSchedules.delete |
למחוק לוח זמנים לגיבוי. |
spanner.backupSchedules.get |
קבלת לוח זמנים לגיבוי. |
spanner.backupSchedules.list |
הצגת רשימה של לוחות זמנים לגיבוי. |
spanner.backupSchedules.update |
עדכון של תזמון גיבוי. |
סשנים
ההרשאות הבאות חלות על סשנים ב-Spanner. מידע נוסף מופיע במאמרי העזרה של מסד הנתונים ל-API בארכיטקטורת REST ול-RPC.
| שם ההרשאה של הסשן | תיאור |
|---|---|
spanner.sessions.create |
יוצרים סשן. |
spanner.sessions.delete |
למחוק סשן. |
spanner.sessions.get |
מקבלים סשן. |
spanner.sessions.list |
הצגת רשימת הסשנים. |
תפקידים מוגדרים מראש
תפקיד מוגדר מראש הוא חבילה שכוללת הרשאה אחת או יותר. לדוגמה, התפקיד המוגדר מראש roles/spanner.databaseUser מכיל את ההרשאות spanner.databases.read ו-spanner.databases.write. יש שני סוגים של תפקידים מוגדרים מראש ל-Spanner:
- תפקידים של אנשים: תפקידים שמוקצים למשתמשים או לקבוצות, ומאפשרים להם לבצע פעולות במשאבים שבפרויקט.
- תפקידים של מכונות: ניתנים לחשבונות שירות, ומאפשרים למכונות שפועלות כחשבונות השירות האלה לבצע פעולות במשאבים שבפרויקט.
בטבלה הבאה מפורטים התפקידים המוגדרים מראש של IAM לבקרת גישה, כולל רשימת ההרשאות שמשויכות לכל תפקיד:
| Role | Permissions |
|---|---|
Cloud Spanner Admin( Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Editor( Editor role for Cloud Spanner |
|
Cloud Spanner Viewer( A principal with this role can:
For example, you can combine this role with the This role is recommended at the Google Cloud project level for users interacting with Cloud Spanner resources in the Google Cloud console. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Backup Admin( A principal with this role can:
This role cannot restore a database from a backup. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Backup Writer( This role is intended to be used by scripts that automate backup creation. A principal with this role can create backups, but cannot update or delete them. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Admin( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Reader( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Reader with DataBoost( Includes all permissions in the spanner.databaseReader role enabling access to read and/or query a Cloud Spanner database using instance resources, as well as the permission to access the database with Data Boost, a fully managed serverless service that provides independent compute resources. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Role User( In conjunction with the IAM role Cloud Spanner Fine-grained Access User, grants permissions to individual Spanner database roles. Add a condition for each desired Spanner database role that includes the resource type of `spanner.googleapis.com/DatabaseRole` and the resource name ending with `/YOUR_SPANNER_DATABASE_ROLE`. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database User( A principal with this role can:
Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Fine-grained Access User( Grants permissions to use Spanner's fine-grained access control framework. To grant access to specific database roles, also add the `roles/spanner.databaseRoleUser` IAM role and its necessary conditions. Lowest-level resources where you can grant this role:
|
|
Cloud Spanner Database Graph Intelligence features user( Access to Graph Intelligence features. |
|
Cloud Spanner Restore Admin( A principal with this role can restore databases from backups. If you need to restore a backup to a different instance, apply this role at the project level or to both instances. This role cannot create backups. Lowest-level resources where you can grant this role:
|
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud Spanner API Service Agent( Cloud Spanner API Service Agent |
|
תפקידים בסיסיים
תפקידים בסיסיים הם תפקידים ברמת הפרויקט שנוצרו לפני IAM. לפרטים נוספים, ראו תפקידים בסיסיים.
למרות ש-Spanner תומך בתפקידים הבסיסיים הבאים, כדאי להשתמש באחד מהתפקידים המוגדרים מראש שמוצגים למעלה, כשאפשר. התפקידים הבסיסיים כוללים הרשאות רחבות שחלות על כל המשאבים שלכם ב- Google Cloud , לעומת התפקידים המוגדרים מראש של Spanner שכוללים הרשאות מפורטות שחלות רק על Spanner.
| תפקיד בסיסי | תיאור |
|---|---|
roles/editor |
יכול לעשות כל מה ש-roles/viewer יכול לעשות. יכול גם ליצור מכונות ומסדי נתונים ולכתוב נתונים במסד נתונים. |
roles/owner |
יכול לעשות כל מה שroles/editor יכול לעשות. יכול גם לשנות את הגישה למסדי נתונים ולמכונות. |
roles/viewer |
יכולים להציג רשימה של סכימות ומכונות ולקבל את המטא-נתונים שלהן. יכול גם לקרוא ולבצע שאילתות באמצעות SQL במסד נתונים. |
תפקידים בהתאמה אישית
אם התפקידים המוגדרים מראש של Spanner לא עונים על הדרישות העסקיות שלכם, אתם יכולים להגדיר תפקידים בהתאמה אישית עם הרשאות שאתם מציינים.
לפני שיוצרים תפקיד בהתאמה אישית, צריך לזהות את המשימות שצריך לבצע. אחרי זה, אתם יכולים לזהות את ההרשאות שנדרשות לכל משימה ולהוסיף אותן לתפקיד בהתאמה אישית.
תפקידים בהתאמה אישית למשימות של חשבונות שירות
ברוב המשימות, ברור אילו הרשאות צריך להוסיף לתפקיד בהתאמה אישית. לדוגמה, אם רוצים שחשבון השירות יוכל ליצור מסד נתונים, מוסיפים את ההרשאה spanner.databases.create לתפקיד בהתאמה אישית.
עם זאת, כשקוראים או כותבים נתונים בטבלה של Spanner, צריך להוסיף כמה הרשאות שונות לתפקיד בהתאמה אישית. בטבלה הבאה מפורטות ההרשאות שנדרשות לקריאה ולכתיבה של נתונים.
| משימה של חשבון שירות | ההרשאות הנדרשות |
|---|---|
| יצירת גיבוי | spanner.backups.createspanner.databases.createBackup |
| קריאת נתונים | spanner.databases.selectspanner.sessions.createspanner.sessions.delete |
| שחזור מסד נתונים | spanner.backups.restoreDatabasespanner.databases.create |
| הוספה, עדכון או מחיקה של נתונים | spanner.databases.beginOrRollbackReadWriteTransactionspanner.sessions.createspanner.sessions.deletespanner.databases.write |
תפקידים בהתאמה אישית למשימות במסוף Google Cloud
כדי לזהות את רשימת ההרשאות שנדרשות למשימה מסוימת במסוףGoogle Cloud , צריך לקבוע את תהליך העבודה של המשימה הזו ולקבץ את ההרשאות לתהליך העבודה הזה. לדוגמה, כדי להציג את הנתונים בטבלה, מבצעים את השלבים הבאים במסוף Google Cloud :
| שלב | הרשאות |
|---|---|
| 1. גישה לפרויקט | resourcemanager.projects.get |
| 2. הצגת רשימת המכונות | spanner.instances.list |
| 3. בחירת מכונה | spanner.instances.get |
| 4. הצגת רשימת מסדי הנתונים | spanner.databases.list |
| 5. בוחרים מסד נתונים וטבלה. | spanner.databases.getDdl |
| 6. הצגת הנתונים בטבלה | spanner.databases.select, spanner.sessions.create, spanner.sessions.delete |
בדוגמה הזו, אתם צריכים את ההרשאות הבאות:
resourcemanager.projects.getspanner.databases.getDdlspanner.databases.listspanner.databases.selectspanner.instances.getspanner.instances.listspanner.sessions.createspanner.sessions.delete
בטבלה הבאה מפורטות ההרשאות שנדרשות לפעולות במסוףGoogle Cloud .
| הרשאות | פעולה |
|---|---|
spanner.databases.setIamPolicy |
הוספת ישויות מורשות בכרטיסיית הרשאות בדף פרטי מסד הנתונים |
spanner.instances.setIamPolicy |
הוספת חשבונות משתמשים בכרטיסייה Permissions בדף Instance |
spanner.backups.createspanner.databases.createBackupspanner.databases.list1spanner.backupOperations.list1 |
יצירת גיבוי |
spanner.backupSchedules.createspanner.databases.createBackup |
יצירת לוח זמנים לגיבוי |
spanner.databases.create |
יצירת מסד נתונים |
spanner.instancePartitions.listspanner.instancePartitionOperations.getspanner.instancePartitions.create |
יצירת מחיצה של מכונה |
spanner.databaseOperations.getspanner.databaseOperations.listspanner.databases.updateDdl |
יצירת טבלה עדכון סכימה של טבלה |
spanner.instanceConfigs.listspanner.instanceOperations.getspanner.instances.create |
יצירת מכונה |
spanner.backups.delete |
מחיקת גיבוי |
spanner.backupSchedules.delete |
מחיקת לוח זמנים לגיבוי |
spanner.databases.drop |
מחיקה של מסד נתונים |
spanner.instancePartitions.delete |
מחיקת מחיצה של מכונה |
spanner.instances.delete |
מחיקת מכונה |
spanner.instancePartitionOperations.getspanner.instancePartitions.update |
שינוי מחיצה של מכונה |
spanner.instanceOperations.getspanner.instances.update |
שינוי של מכונה |
spanner.databases.beginOrRollbackReadWriteTransactionspanner.databases.selectspanner.databases.writespanner.sessions.createspanner.sessions.delete |
שינוי נתונים בטבלה |
spanner.instanceConfigs.listspanner.instances.getspanner.backups.getspanner.backups.restoreDatabasespanner.instances.listspanner.databases.create |
שחזור מסד נתונים מגיבוי |
spanner.databases.getspanner.databases.getDdl |
בוחרים מסד נתונים מרשימת מסדי הנתונים וצופים בסכימה בדף הפרטים של מסד הנתונים. |
spanner.instances.get |
בוחרים מכונה מרשימת המכונות כדי להציג את דף הפרטים של המכונה. |
spanner.backups.update |
עדכון גיבוי |
spanner.backupSchedules.update |
עדכון של לוח זמנים לגיבוי |
spanner.databases.selectspanner.sessions.createspanner.sessions.delete |
הצגת נתונים בכרטיסייה Data בדף פרטי מסד הנתונים יצירה והרצה של שאילתה |
spanner.backups.listspanner.backups.get |
פותחים את הדף "גיבוי/שחזור". |
monitoring.metricDescriptors.getmonitoring.metricDescriptors.listmonitoring.timeSeries.listspanner.instances.get |
צפייה בתרשימים בכרטיסייה Monitor בדף הפרטים של המכונה או בדף הפרטים של מסד הנתונים |
spanner.backupOperations.list |
הצגת רשימת פעולות הגיבוי |
spanner.databases.list |
הצגת רשימת מסדי הנתונים בדף הפרטים של המכונה |
resourcemanager.projects.getspanner.instances.list |
הצגת רשימת המכונות בדף Instances |
spanner.databaseOperations.list |
הצגת הרשימה של פעולות השחזור |
spanner.databases.getIamPolicy |
הצגת הרשימה בכרטיסייה הרשאות בדף פרטי מסד הנתונים |
spanner.instances.getIamPolicy |
הצגת הרשימה בכרטיסייה Permissions בדף Instance |
ניהול מדיניות IAM ב-Spanner
אתם יכולים לקבל, להגדיר ולבדוק את מדיניות ה-IAM באמצעות ממשקי ה-API ל-REST או ל-RPC במשאבים של מכונות, מסדי נתונים ומשאבי גיבוי ב-Spanner.
מכונות
| API בארכיטקטורת REST | API ל-RPC |
|---|---|
projects.instances.getIamPolicy |
GetIamPolicy |
projects.instances.setIamPolicy |
SetIamPolicy |
projects.instances.testIamPermissions |
TestIamPermissions |
מסדי נתונים
גיבויים
המאמרים הבאים
- מידע נוסף על IAM
- איך מקצים תפקידי IAM למסד נתונים, למכונה או לפרויקט ב- Google Cloud ב-Spanner
- איך שולטים בגישה מהאינטרנט למשאבים של Google Cloud , כולל Spanner.