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

ניהול זהויות והרשאות גישה (IAM) מאפשר לכם לשלוט בגישה של משתמשים וקבוצות למשאבי Spanner ברמת הפרויקט, ברמת מופע Spanner וברמת מסד הנתונים של Spanner. לדוגמה, אתם יכולים לציין שלמשתמש יש שליטה מלאה במסד נתונים ספציפי במופע ספציפי בפרויקט, אבל שהוא לא יכול ליצור, לשנות או למחוק מופעים בפרויקט. שימוש בבקרת גישה עם IAM מאפשר להעניק הרשאה למשתמש או לקבוצה בלי לשנות כל הרשאה של מופע או מסד נתונים של Spanner בנפרד.

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

הרשאות

הרשאות מאפשרות למשתמשים לבצע פעולות ספציפיות במשאבי Spanner. לדוגמה, ההרשאה spanner.databases.read מאפשרת למשתמש לקרוא מתוך מסד נתונים באמצעות ה-API לקריאה של Spanner, וההרשאה spanner.databases.select מאפשרת למשתמש להריץ הצהרת בחירה של SQL במסד נתונים. המשתמשים לא מקבלים הרשאות בצורה ישירה. כדי להעניק להם הרשאות, צריך להקצות להם תפקידים מוגדרים מראש או תפקידים בהתאמה אישית שמוגדרת להם הרשאה אחת או יותר.

בטבלאות הבאות מפורטות ההרשאות של IAM שמשויכות ל-Spanner.

הגדרות של מכונות

ההרשאות הבאות חלות על הגדרות של מופעי Spanner. מידע נוסף זמין בחומרי העזר בנושא הגדרות של מופעים של ממשקי REST ו-RPC.

שם ההרשאה של הגדרת המופע תיאור
spanner.instanceConfigs.create יוצרים הגדרת מכונה בהתאמה אישית.
spanner.instanceConfigs.delete מחיקה של הגדרת מופע בהתאמה אישית.
spanner.instanceConfigs.get אחזור של הגדרת מופע
spanner.instanceConfigs.list הצגת רשימה של הגדרות מופעים.
spanner.instanceConfigs.update עדכון של הגדרות מותאמות אישית של מופע.

פעולות בהגדרות של מכונה וירטואלית

ההרשאות הבאות חלות על פעולות של הגדרת מופע Spanner. מידע נוסף זמין במאמרי העזרה בנושא מופעים של ממשקי REST ו-RPC.

שם ההרשאה להפעלה של הגדרת מופע תיאור
spanner.instanceConfigOperations.cancel ביטול פעולת הגדרה של מופע.
spanner.instanceConfigOperations.delete מחיקת פעולה של הגדרת מופע.
spanner.instanceConfigOperations.get אחזור פעולה של הגדרת מכונה.
spanner.instanceConfigOperations.list הצגת רשימה של פעולות להגדרת מופעים.

מכונות

ההרשאות הבאות חלות על מופעי Spanner. מידע נוסף זמין במאמרי העזרה בנושא הפניות למופעים של ממשקי 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. מידע נוסף זמין במאמרי העזרה בנושא מופעים של ממשקי REST ו-RPC.

שם ההרשאה של פעולת המופע תיאור
spanner.instanceOperations.cancel ביטול פעולה במופע.
spanner.instanceOperations.delete מחיקה של פעולת מופע.
spanner.instanceOperations.get קבלת פעולה ספציפית של מופע.
spanner.instanceOperations.list הצגת רשימה של פעולות שבוצעו במופע.

מחיצות של מכונות

ההרשאות הבאות חלות על מחיצות של מופעי Spanner. מידע נוסף זמין במאמרי העזרה בנושא חלוקת מופעים למחיצות עבור ממשקי REST ו-RPC.

שם ההרשאה של המופע תיאור
spanner.instancePartitions.create יוצרים מחיצה של מופע.
spanner.instancePartitions.delete מחיקה של מחיצת מופע.
spanner.instancePartitions.get אחזור ההגדרה של מחיצת מופע ספציפית.
spanner.instancePartitions.list הצגת רשימה של מחיצות של מכונות.
spanner.instancePartitions.update עדכון של מחיצת מופע.

פעולות על מחיצות של מכונות

ההרשאות הבאות חלות על פעולות של חלוקת מופע של Spanner. מידע נוסף זמין בחומרי העזר בנושא חלוקת מופעים למחיצות עבור ממשקי REST ו-RPC.

שם ההרשאה של פעולת חלוקה למחיצות (partitioning) של מופע תיאור
spanner.instancePartitionOperations.cancel ביטול פעולה של חלוקת מופע למחיצות.
spanner.instancePartitionOperations.delete מחיקה של פעולת חלוקה למחיצות של מופע.
spanner.instancePartitionOperations.get קבלת פעולת חלוקה ספציפית של מופע.
spanner.instancePartitionOperations.list רשימה של פעולות שקשורות למחיצות של מופעים.

מסדי נתונים

ההרשאות הבאות חלות על מסדי נתונים ב-Spanner. מידע נוסף זמין במאמרי העזרה בנושא מסדי נתונים של ממשקי 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 קריאה ממסד נתונים באמצעות read API.
spanner.databases.select הפעלת משפט SQL select במסד נתונים.
spanner.databases.setIamPolicy הגדרת מדיניות IAM של מסד נתונים.
spanner.databases.update עדכון המטא-נתונים של מסד נתונים.
spanner.databases.updateDdl עדכון הסכימה של מסד נתונים.
spanner.databases.useDataBoost אפשר להשתמש במשאבי החישוב של Spanner Data Boost כדי לעבד שאילתות של מופעים מחולקים.
spanner.databases.useRoleBasedAccess שימוש בבקרת גישה פרטנית.
spanner.databases.write כתיבה למסד נתונים.

תפקידים במסד הנתונים

ההרשאות הבאות חלות על תפקידים במסד נתונים של Spanner. מידע נוסף זמין במאמרי העזרה בנושא מסדי נתונים של ממשקי REST ו-RPC.

שם ההרשאה של תפקיד במסד הנתונים תיאור
spanner.databaseRoles.list הצגת רשימת התפקידים במסד הנתונים.
spanner.databaseRoles.use שימוש בתפקיד ספציפי במסד הנתונים.

פעולות במסד נתונים

ההרשאות הבאות חלות על פעולות במסד נתונים של Spanner. מידע נוסף זמין במאמרי העזרה בנושא מסדי נתונים של ממשקי REST ו-RPC.

שם ההרשאה לפעולת מסד הנתונים תיאור
spanner.databaseOperations.cancel ביטול פעולה במסד נתונים.
spanner.databaseOperations.get קבלת פעולה ספציפית במסד נתונים.
spanner.databaseOperations.list רשימת מסדי נתונים ושחזור פעולות של מסדי נתונים.

גיבויים

ההרשאות הבאות חלות על גיבויים של Spanner. מידע נוסף זמין במאמרי העזרה בנושא גיבויים של ממשקי 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 ו-RPC.

שם ההרשאה של פעולת הגיבוי תיאור
spanner.backupOperations.cancel ביטול פעולת גיבוי.
spanner.backupOperations.get קבלת פעולת גיבוי ספציפית.
spanner.backupOperations.list הצגת רשימה של פעולות גיבוי.

לוחות זמנים לגיבויים

ההרשאות הבאות חלות על לוחות זמנים לגיבוי ב-Spanner. מידע נוסף זמין במאמרי העזרה בנושא מסדי נתונים של ממשקי REST ו-RPC.

שם ההרשאה של לוח הזמנים לגיבוי תיאור
spanner.backupSchedules.create יוצרים לוח זמנים לגיבוי. נדרשת גם הרשאת spanner.databases.createBackup במסד הנתונים של המקור.
spanner.backupSchedules.delete מחיקת לוח זמנים לגיבוי.
spanner.backupSchedules.get לקבלת לוח זמנים לגיבוי.
spanner.backupSchedules.list מציגים את לוחות הזמנים של הגיבויים.
spanner.backupSchedules.update עדכון של לוח זמנים לגיבוי.

סשנים

ההרשאות הבאות חלות על סשנים של Spanner. מידע נוסף זמין במאמרי העזרה בנושא מסדי נתונים של ממשקי 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.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.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.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.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

(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

logging.logEntries.create

run.jobs.run

run.routes.invoke

spanner.databases.beginReadOnlyTransaction

spanner.databases.partitionQuery

spanner.databases.select

spanner.databases.useDataBoost

spanner.sessions.create

storage.buckets.create

storage.buckets.get

storage.buckets.list

storage.objects.create

storage.objects.delete

storage.objects.get

storage.objects.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.databases.get

spanner.databases.list

spanner.instanceConfigs.get

spanner.instanceConfigs.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

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

תפקידים בסיסיים הם תפקידים ברמת הפרויקט שקדמו ל-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 בוחרים מופע מרשימת המופעים כדי להציג את הדף Instance Details (פרטי המופע).
spanner.backups.update עדכון גיבוי
spanner.backupSchedules.update עדכון לוח זמנים לגיבוי
spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
צפייה בנתונים בכרטיסייה 'נתונים' בדף הפרטים של מסד הנתונים
יצירה והרצה של שאילתה
spanner.backups.list
spanner.backups.get
הצגת הדף 'גיבוי/שחזור'
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.timeSeries.list
spanner.instances.get
צפייה בתרשימים בכרטיסייה 'מעקב' בדף הפרטים של המופע או בדף הפרטים של מסד הנתונים
spanner.backupOperations.list צפייה ברשימת פעולות הגיבוי
spanner.databases.list הצגת רשימת מסדי הנתונים בדף פרטי המופע
resourcemanager.projects.get
spanner.instances.list
הצגת רשימת המכונות בדף Instances (מכונות)
spanner.databaseOperations.list הצגת רשימת פעולות השחזור
spanner.databases.getIamPolicy צפייה ברשימה בכרטיסייה Permissions (הרשאות) בדף פרטי מסד הנתונים
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

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