סקירה כללית על IAM

ניהול זהויות והרשאות גישה (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

(roles/spanner.admin)

Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:

  • Grant and revoke permissions to other principals for all Spanner resources in the project.
  • Allocate and delete chargeable Spanner resources.
  • Issue get/list/modify operations on Cloud Spanner resources.
  • Read from and write to all Cloud Spanner databases in the project.
  • Fetch project metadata.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list
  • spanner.backupSchedules.create
  • spanner.backupSchedules.delete
  • spanner.backupSchedules.get
  • spanner.backupSchedules.getIamPolicy
  • spanner.backupSchedules.list
  • spanner.backupSchedules.setIamPolicy
  • spanner.backupSchedules.update
  • spanner.backups.copy
  • spanner.backups.create
  • spanner.backups.delete
  • spanner.backups.get
  • spanner.backups.getIamPolicy
  • spanner.backups.list
  • spanner.backups.restoreDatabase
  • spanner.backups.setIamPolicy
  • spanner.backups.update
  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list
  • spanner.databaseRoles.list
  • spanner.databases.adapt
  • spanner.databases.addSplitPoints
  • spanner.databases.beginOrRollbackReadWriteTransaction
  • spanner.databases.beginPartitionedDmlTransaction
  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.changequorum
  • spanner.databases.create
  • spanner.databases.createBackup
  • spanner.databases.drop
  • spanner.databases.get
  • spanner.databases.getDdl
  • spanner.databases.getIamPolicy
  • spanner.databases.list
  • spanner.databases.partitionQuery
  • spanner.databases.partitionRead
  • spanner.databases.read
  • spanner.databases.runGraphAlgorithms
  • spanner.databases.select
  • spanner.databases.setIamPolicy
  • spanner.databases.update
  • spanner.databases.updateDdl
  • spanner.databases.useDataBoost
  • spanner.databases.useRoleBasedAccess
  • spanner.databases.write
  • spanner.instanceConfigOperations.cancel
  • spanner.instanceConfigOperations.delete
  • spanner.instanceConfigOperations.get
  • spanner.instanceConfigOperations.list
  • spanner.instanceConfigs.create
  • spanner.instanceConfigs.delete
  • spanner.instanceConfigs.get
  • spanner.instanceConfigs.list
  • spanner.instanceConfigs.update
  • spanner.instanceOperations.cancel
  • spanner.instanceOperations.delete
  • spanner.instanceOperations.get
  • spanner.instanceOperations.list
  • spanner.instancePartitionOperations.cancel
  • spanner.instancePartitionOperations.delete
  • spanner.instancePartitionOperations.get
  • spanner.instancePartitionOperations.list
  • spanner.instancePartitions.create
  • spanner.instancePartitions.delete
  • spanner.instancePartitions.get
  • spanner.instancePartitions.list
  • spanner.instancePartitions.update
  • spanner.instances.create
  • spanner.instances.createTagBinding
  • spanner.instances.delete
  • spanner.instances.deleteTagBinding
  • spanner.instances.get
  • spanner.instances.getIamPolicy
  • spanner.instances.list
  • spanner.instances.listEffectiveTags
  • spanner.instances.listTagBindings
  • spanner.instances.setIamPolicy
  • spanner.instances.update
  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.editor)

Editor role for Cloud Spanner

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backupOperations.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.delete

spanner.backupSchedules.get

spanner.backupSchedules.getIamPolicy

spanner.backupSchedules.list

spanner.backupSchedules.update

spanner.backups.copy

spanner.backups.create

spanner.backups.delete

spanner.backups.get

spanner.backups.getIamPolicy

spanner.backups.list

spanner.backups.restoreDatabase

spanner.backups.update

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databaseRoles.list

spanner.databases.adapt

spanner.databases.addSplitPoints

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.create

spanner.databases.createBackup

spanner.databases.drop

spanner.databases.get

spanner.databases.getDdl

spanner.databases.getIamPolicy

spanner.databases.list

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.runGraphAlgorithms

spanner.databases.select

spanner.databases.update

spanner.databases.updateDdl

spanner.databases.useDataBoost

spanner.databases.useRoleBasedAccess

spanner.databases.write

spanner.instanceConfigOperations.*

  • spanner.instanceConfigOperations.cancel
  • spanner.instanceConfigOperations.delete
  • spanner.instanceConfigOperations.get
  • spanner.instanceConfigOperations.list

spanner.instanceConfigs.*

  • spanner.instanceConfigs.create
  • spanner.instanceConfigs.delete
  • spanner.instanceConfigs.get
  • spanner.instanceConfigs.list
  • spanner.instanceConfigs.update

spanner.instanceOperations.*

  • spanner.instanceOperations.cancel
  • spanner.instanceOperations.delete
  • spanner.instanceOperations.get
  • spanner.instanceOperations.list

spanner.instancePartitionOperations.*

  • spanner.instancePartitionOperations.cancel
  • spanner.instancePartitionOperations.delete
  • spanner.instancePartitionOperations.get
  • spanner.instancePartitionOperations.list

spanner.instancePartitions.*

  • spanner.instancePartitions.create
  • spanner.instancePartitions.delete
  • spanner.instancePartitions.get
  • spanner.instancePartitions.list
  • spanner.instancePartitions.update

spanner.instances.create

spanner.instances.delete

spanner.instances.get

spanner.instances.getIamPolicy

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

spanner.instances.update

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.viewer)

A principal with this role can:

  • View all Spanner instances (but cannot modify instances).
  • View all Spanner databases (but cannot modify or read from databases).

For example, you can combine this role with the roles/spanner.databaseUser role to grant a user with access to a specific database, but only view access to other instances and databases.

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:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backupOperations.get

spanner.backupOperations.list

spanner.backupSchedules.get

spanner.backupSchedules.getIamPolicy

spanner.backupSchedules.list

spanner.backups.get

spanner.backups.getIamPolicy

spanner.backups.list

spanner.databaseOperations.get

spanner.databaseOperations.list

spanner.databaseRoles.list

spanner.databases.beginReadOnlyTransaction

spanner.databases.get

spanner.databases.getDdl

spanner.databases.getIamPolicy

spanner.databases.list

spanner.databases.useDataBoost

spanner.instanceConfigOperations.get

spanner.instanceConfigOperations.list

spanner.instanceConfigs.get

spanner.instanceConfigs.list

spanner.instanceOperations.get

spanner.instanceOperations.list

spanner.instancePartitionOperations.get

spanner.instancePartitionOperations.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.get

spanner.instances.getIamPolicy

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.backupAdmin)

A principal with this role can:

  • Create, view, update, and delete backups.
  • View and manage a backup's allow policy.

This role cannot restore a database from a backup.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backupOperations.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.delete

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backupSchedules.update

spanner.backups.copy

spanner.backups.create

spanner.backups.delete

spanner.backups.get

spanner.backups.getIamPolicy

spanner.backups.list

spanner.backups.setIamPolicy

spanner.backups.update

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.backupWriter)

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:

  • Instance
  • Database

spanner.backupOperations.get

spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backups.copy

spanner.backups.create

spanner.backups.get

spanner.backups.list

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instances.get

(roles/spanner.databaseAdmin)

A principal with this role can:

  • Get/list all Spanner instances in the project.
  • Create/list/drop databases in an instance.
  • Grant/revoke access to databases in the project.
  • Read from and write to all Cloud Spanner databases in the project.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databaseRoles.list

spanner.databases.adapt

spanner.databases.addSplitPoints

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.create

spanner.databases.drop

spanner.databases.get

spanner.databases.getDdl

spanner.databases.getIamPolicy

spanner.databases.list

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.runGraphAlgorithms

spanner.databases.select

spanner.databases.setIamPolicy

spanner.databases.update

spanner.databases.updateDdl

spanner.databases.useDataBoost

spanner.databases.useRoleBasedAccess

spanner.databases.write

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.getIamPolicy

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReader)

A principal with this role can:

  • Read from the Spanner database.
  • Execute SQL queries on the database.
  • View schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.get

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReaderWithDataBoost)

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:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.get

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.useDataBoost

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseRoleUser)

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:

  • Instance
  • Database

(roles/spanner.databaseUser)

A principal with this role can:

  • Read from and write to the Spanner database.
  • Execute SQL queries on the database, including DML and Partitioned DML.
  • View and update schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.adapt

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.get

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.updateDdl

spanner.databases.write

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.fineGrainedAccessUser)

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:

  • Instance
  • Database

spanner.databaseRoles.list

spanner.databases.useRoleBasedAccess

(roles/spanner.graphIntelligenceUser)

Access to Graph Intelligence features.

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.get

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.runGraphAlgorithms

spanner.databases.select

spanner.databases.useDataBoost

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.restoreAdmin)

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:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backups.get

spanner.backups.list

spanner.backups.restoreDatabase

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.create

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions

(roles/spanner.serviceAgent)

Cloud Spanner API Service Agent

aiplatform.endpoints.get

aiplatform.endpoints.list

aiplatform.endpoints.predict

aiplatform.models.get

aiplatform.models.list

compute.disks.create

compute.disks.createTagBinding

compute.disks.use

compute.instances.create

compute.instances.createTagBinding

compute.instances.delete

compute.instances.get

compute.instances.setLabels

compute.instances.setMetadata

compute.instances.setServiceAccount

compute.networks.create

compute.networks.use

compute.networks.useExternalIp

compute.subnetworks.create

compute.subnetworks.use

compute.subnetworks.useExternalIp

discoveryengine.rankingConfigs.rank

logging.logEntries.create

run.jobs.run

run.routes.invoke

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.partitionQuery

spanner.databases.select

spanner.databases.useDataBoost

spanner.databases.write

spanner.sessions.create

storage.buckets.create

storage.buckets.get

storage.buckets.list

storage.objects.create

storage.objects.delete

storage.objects.get

storage.objects.list

תפקידים בסיסיים

תפקידים בסיסיים הם תפקידים ברמת הפרויקט שנוצרו לפני IAM. לפרטים נוספים, ראו תפקידים בסיסיים.

למרות ש-Spanner תומך בתפקידים הבסיסיים הבאים, כדאי להשתמש באחד מהתפקידים המוגדרים מראש שמוצגים למעלה, כשאפשר. התפקידים הבסיסיים כוללים הרשאות רחבות שחלות על כל המשאבים שלכם ב- Google Cloud , לעומת התפקידים המוגדרים מראש של Spanner שכוללים הרשאות מפורטות שחלות רק על Spanner.

תפקיד בסיסי תיאור
roles/editor יכול לעשות כל מה ש-roles/viewer יכול לעשות. יכול גם ליצור מכונות ומסדי נתונים ולכתוב נתונים במסד נתונים.
roles/owner יכול לעשות כל מה שroles/editor יכול לעשות. יכול גם לשנות את הגישה למסדי נתונים ולמכונות.
roles/viewer יכולים להציג רשימה של סכימות ומכונות ולקבל את המטא-נתונים שלהן. יכול גם לקרוא ולבצע שאילתות באמצעות SQL במסד נתונים.

תפקידים בהתאמה אישית

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

לפני שיוצרים תפקיד בהתאמה אישית, צריך לזהות את המשימות שצריך לבצע. אחרי זה, אתם יכולים לזהות את ההרשאות שנדרשות לכל משימה ולהוסיף אותן לתפקיד בהתאמה אישית.

תפקידים בהתאמה אישית למשימות של חשבונות שירות

ברוב המשימות, ברור אילו הרשאות צריך להוסיף לתפקיד בהתאמה אישית. לדוגמה, אם רוצים שחשבון השירות יוכל ליצור מסד נתונים, מוסיפים את ההרשאה spanner.databases.create לתפקיד בהתאמה אישית.

עם זאת, כשקוראים או כותבים נתונים בטבלה של Spanner, צריך להוסיף כמה הרשאות שונות לתפקיד בהתאמה אישית. בטבלה הבאה מפורטות ההרשאות שנדרשות לקריאה ולכתיבה של נתונים.

משימה של חשבון שירות ההרשאות הנדרשות
יצירת גיבוי spanner.backups.create
spanner.databases.createBackup
קריאת נתונים spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
שחזור מסד נתונים spanner.backups.restoreDatabase
spanner.databases.create
הוספה, עדכון או מחיקה של נתונים spanner.databases.beginOrRollbackReadWriteTransaction
spanner.sessions.create
spanner.sessions.delete
spanner.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.get
  • spanner.databases.getDdl
  • spanner.databases.list
  • spanner.databases.select
  • spanner.instances.get
  • spanner.instances.list
  • spanner.sessions.create
  • spanner.sessions.delete

בטבלה הבאה מפורטות ההרשאות שנדרשות לפעולות במסוףGoogle Cloud .

הרשאות פעולה
spanner.databases.setIamPolicy הוספת ישויות מורשות בכרטיסיית הרשאות בדף פרטי מסד הנתונים
spanner.instances.setIamPolicy הוספת חשבונות משתמשים בכרטיסייה Permissions בדף Instance
spanner.backups.create
spanner.databases.createBackup
spanner.databases.list1
spanner.backupOperations.list1
יצירת גיבוי
spanner.backupSchedules.create
spanner.databases.createBackup
יצירת לוח זמנים לגיבוי
spanner.databases.create יצירת מסד נתונים
spanner.instancePartitions.list
spanner.instancePartitionOperations.get
spanner.instancePartitions.create
יצירת מחיצה של מכונה
spanner.databaseOperations.get
spanner.databaseOperations.list
spanner.databases.updateDdl
יצירת טבלה
עדכון סכימה של טבלה
spanner.instanceConfigs.list
spanner.instanceOperations.get
spanner.instances.create
יצירת מכונה
spanner.backups.delete מחיקת גיבוי
spanner.backupSchedules.delete מחיקת לוח זמנים לגיבוי
spanner.databases.drop מחיקה של מסד נתונים
spanner.instancePartitions.delete מחיקת מחיצה של מכונה
spanner.instances.delete מחיקת מכונה
spanner.instancePartitionOperations.get
spanner.instancePartitions.update
שינוי מחיצה של מכונה
spanner.instanceOperations.get
spanner.instances.update
שינוי של מכונה
spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.select
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete
שינוי נתונים בטבלה
spanner.instanceConfigs.list
spanner.instances.get
spanner.backups.get
spanner.backups.restoreDatabase
spanner.instances.list
spanner.databases.create
שחזור מסד נתונים מגיבוי
spanner.databases.get
spanner.databases.getDdl
בוחרים מסד נתונים מרשימת מסדי הנתונים וצופים בסכימה בדף הפרטים של מסד הנתונים.
spanner.instances.get בוחרים מכונה מרשימת המכונות כדי להציג את דף הפרטים של המכונה.
spanner.backups.update עדכון גיבוי
spanner.backupSchedules.update עדכון של לוח זמנים לגיבוי
spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
הצגת נתונים בכרטיסייה Data בדף פרטי מסד הנתונים
יצירה והרצה של שאילתה
spanner.backups.list
spanner.backups.get
פותחים את הדף "גיבוי/שחזור".
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.timeSeries.list
spanner.instances.get
צפייה בתרשימים בכרטיסייה Monitor בדף הפרטים של המכונה או בדף הפרטים של מסד הנתונים
spanner.backupOperations.list הצגת רשימת פעולות הגיבוי
spanner.databases.list הצגת רשימת מסדי הנתונים בדף הפרטים של המכונה
resourcemanager.projects.get
spanner.instances.list
הצגת רשימת המכונות בדף Instances
spanner.databaseOperations.list הצגת הרשימה של פעולות השחזור
spanner.databases.getIamPolicy הצגת הרשימה בכרטיסייה הרשאות בדף פרטי מסד הנתונים
spanner.instances.getIamPolicy הצגת הרשימה בכרטיסייה Permissions בדף Instance
‫1 נדרש אם יוצרים גיבוי מהדף Backup/Restore ברמת המכונה במקום ברמת מסד הנתונים.

ניהול מדיניות IAM ב-Spanner

אתם יכולים לקבל, להגדיר ולבדוק את מדיניות ה-IAM באמצעות ממשקי ה-API ל-REST או ל-RPC במשאבים של מכונות, מסדי נתונים ומשאבי גיבוי ב-Spanner.

מכונות

‫API בארכיטקטורת REST API ל-RPC
projects.instances.getIamPolicy GetIamPolicy
projects.instances.setIamPolicy SetIamPolicy
projects.instances.testIamPermissions TestIamPermissions

מסדי נתונים

‫API בארכיטקטורת REST API ל-RPC
projects.instances.databases.getIamPolicy GetIamPolicy
projects.instances.databases.setIamPolicy SetIamPolicy
projects.instances.databases.testIamPermissions TestIamPermissions

גיבויים

‫API בארכיטקטורת REST API ל-RPC
projects.instances.backups.getIamPolicy GetIamPolicy
projects.instances.backups.setIamPolicy SetIamPolicy
projects.instances.backups.testIamPermissions TestIamPermissions

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