IAM 簡介

Identity and Access Management (IAM) 可控管使用者對 Spanner Omni 資源的存取權。舉例來說,使用者可以完全控管特定資料庫,但無法在部署作業中建立或修改其他資料庫。使用 IAM 授予使用者權限時,不必個別修改每個 Spanner Omni 資料庫權限。

本文著重於與 Spanner Omni 相關的 IAM 權限,以及授予這些權限的 IAM 角色。如要進一步瞭解 IAM 及其功能,請參閱「身分與存取權管理」開發人員指南。

權限

擁有權限的使用者才能對 Spanner Omni 資源執行特定操作。舉例來說,spanner.databases.read 權限可讓使用者透過 Spanner Omni 的讀取 API 從資料庫讀取資料,而 spanner.databases.export 則可讓使用者匯出 Spanner Omni 資料庫。您不會直接授予使用者權限,而是授予預先定義的角色,這些角色內含一或多個權限。

下表列出與 Spanner Omni 相關的 IAM 權限。部分權限會與 Spanner 共用,部分權限則僅供 Spanner Omni 使用。

資料庫

下列權限適用於 Spanner Omni 資料庫。

資料庫權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.databases.create 建立資料庫。 ✔
spanner.databases.createBackup 從資料庫建立備份。此外,您也需要「spanner.backups.create」才能建立備份資源。 ✔
spanner.databases.get 取得資料庫中繼資料。 ✔
spanner.databases.getIamPolicy 取得資料庫的 IAM 政策。 ✔
spanner.databases.list 列出資料庫。 ✔
spanner.databases.read 使用讀取 API 從資料庫中讀取。 ✔
spanner.databases.setIamPolicy 設定資料庫的 IAM 政策。 ✔
spanner.databases.update 更新資料庫中繼資料。 ✔
spanner.databases.updateDdl 更新資料表結構定義。 ✔
spanner.databases.write 寫入資料庫。 ✔
spanner.databases.compact 壓縮資料庫中的資料表 ✔
spanner.databases.export 匯出 Spanner Omni 資料庫 ✔
spanner.databases.import 匯入 Spanner Omni 資料庫 ✔
spanner.databases.addSplitPoints 將分割點新增至資料庫。 ✔

資料庫作業

下列權限適用於 Spanner Omni 資料庫作業。

資料庫作業權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.databaseOperations.cancel 取消資料庫作業。 ✔
spanner.databaseOperations.delete 刪除資料庫作業。 ✔
spanner.databaseOperations.get 取得特定資料庫作業。 ✔
spanner.databaseOperations.list 列出資料庫和還原資料庫作業。 ✔

備份

下列權限適用於 Spanner Omni 備份。

備份權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.backups.copy 複製備份。 ✔
spanner.backups.create 建立備份。來源資料庫也必須啟用 spanner.databases.createBackup。 ✔
spanner.backups.createDatabaseFromBackup 從備份建立資料庫。 ✔
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.backups.import 從外部儲存空間匯入備份 ✔

備份作業

下列權限適用於 Spanner Omni 備份作業。

備份作業權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.backupOperations.cancel 取消備份作業。 ✔
spanner.backupOperations.get 取得特定備份作業。 ✔
spanner.backupOperations.list 列出備份作業。 ✔

備份排程

下列權限適用於 Spanner Omni 備份排程。

備份排程權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.backupSchedules.create 建立備份排程。來源資料庫也必須啟用 spanner.databases.createBackup。 ✔
spanner.backupSchedules.delete 刪除備份排程。 ✔
spanner.backupSchedules.get 取得備份排程。 ✔
spanner.backupSchedules.list 列出備份排程。 ✔
spanner.backupSchedules.update 更新備份排程。 ✔
spanner.backupSchedules.getIamPolicy 取得備份排程的 IAM 政策。 ✔
spanner.backupSchedules.setIamPolicy 設定備份排程的 IAM 政策。 ✔

備份描述元

下列權限適用於 Spanner Omni 備份描述元。

備份描述元權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.backupDescriptors.import 從備份描述元匯入備份 ✔
spanner.backupDescriptors.list 列出備份描述元。 ✔

工作階段

下列權限適用於 Spanner Omni 工作階段。

工作階段權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.sessions.create 建立工作階段。 ✔
spanner.sessions.delete 刪除工作階段。 ✔
spanner.sessions.get 取得工作階段。 ✔
spanner.sessions.list 列出工作階段。 ✔

位置和可用區

下列權限適用於 Spanner Omni 位置和區域。

權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.locations.create 建立 Spanner Omni 位置 ✔
spanner.locations.delete 刪除 Spanner Omni 位置 ✔
spanner.locations.get 取得 Spanner Omni 位置 ✔
spanner.locations.list 列出 Spanner Omni 位置 ✔
spanner.locationDistances.create 建立 Spanner Omni 位置距離 ✔
spanner.locationDistances.delete 刪除 Spanner Omni 位置距離 ✔
spanner.locationDistances.get 取得 Spanner Omni 位置距離 ✔
spanner.locationDistances.list 列出 Spanner Omni 位置距離 ✔
spanner.locationDistances.update 更新 Spanner Omni 位置距離 ✔
spanner.zones.create 建立 Spanner Omni 區域 ✔
spanner.zones.delete 刪除 Spanner Omni 區域 ✔
spanner.zones.get 取得 Spanner Omni 區域 ✔
spanner.zones.list 列出 Spanner Omni 區域 ✔

伺服器

下列權限適用於 Spanner Omni 伺服器。

伺服器權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.servers.create 建立 Spanner Omni 伺服器 ✔
spanner.servers.delete 刪除 Spanner Omni 伺服器 ✔
spanner.servers.get 取得 Spanner Omni 伺服器 ✔
spanner.servers.list 列出 Spanner Omni 伺服器 ✔

使用者與角色

下列權限適用於 Spanner Omni 使用者和角色。

權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.users.create 建立 Spanner Omni 使用者 ✔
spanner.users.delete 刪除 Spanner Omni 使用者 ✔
spanner.users.get 取得 Spanner Omni 使用者 ✔
spanner.users.list 列出 Spanner Omni 使用者 ✔
spanner.users.update 更新 Spanner Omni 使用者 ✔
spanner.roles.get 取得 Spanner Omni 角色 ✔
spanner.roles.list 列出 Spanner Omni 角色 ✔

外部儲存空間

下列權限適用於 Spanner Omni 外部儲存空間。

外部儲存空間權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.externalStorages.create 建立外部儲存空間 ✔
spanner.externalStorages.delete 刪除外部儲存空間 ✔
spanner.externalStorages.get 取得外部儲存空間 ✔
spanner.externalStorages.getIamPolicy 取得外部儲存空間的 IAM 政策 ✔
spanner.externalStorages.list 列出外部儲存空間 ✔
spanner.externalStorages.setIamPolicy 設定外部儲存空間的 IAM 政策 ✔

檔案系統和描述元

下列權限適用於 Spanner Omni 檔案系統。

權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.filesystem.cat 列印 Spanner Omni 檔案系統中的檔案 ✔
spanner.filesystem.ls 列出 Spanner Omni 檔案系統中的檔案 ✔
spanner.descriptors.print 列印 Spanner Omni 檔案系統中的描述元 ✔

其他管理員權限

下列權限適用於其他 Spanner Omni 管理員工作。

權限名稱 說明 Spanner 和 Spanner Omni 僅限 Spanner Omni
spanner.chubby.list 列出 Chubby 儲存格 ✔
spanner.chubby.print 列印 Chubby 儲存格內容 ✔
spanner.deployment.get 取得 Spanner Omni 部署作業 ✔
spanner.diagnostics.create 從 Spanner Omni 伺服器收集構件,以進行偵錯 ✔
spanner.internal-tables.sql 對內部資料表執行 SQL 查詢 ✔
spanner.logs.copy 從 Spanner Omni 伺服器複製記錄 ✔
spanner.tablet.move 將平板電腦從一個 Spanner Omni 伺服器移至另一個伺服器 ✔
spanner.workflows.delete 刪除資料庫中的工作流程 ✔
spanner.groups.compact 壓縮群組中的平板電腦 ✔
spanner.directories.compact 目錄中的平板電腦 ✔

預先定義的角色

預先定義的角色是一或多個權限的組合。Spanner Omni 支援下列預先定義的角色:

角色 說明
roles/spanner.admin 具備所有 Spanner Omni 資源的完整存取權。包含所有權限。
roles/spanner.backupAdmin 具備 Spanner Omni 備份和備份作業的完整存取權。
roles/spanner.backupWriter 可以建立備份,但無法更新或刪除。
roles/spanner.databaseAdmin 可完整存取專案中的所有 Spanner Omni 資料庫。
roles/spanner.databaseReader 可以從 Spanner Omni 資料庫讀取資料,並查看結構定義。
roles/spanner.databaseUser 可讀取及寫入 Spanner Omni 資料庫。
roles/spanner.editor Spanner Omni 的編輯者角色。
roles/spanner.restoreAdmin 可從備份還原資料庫。
roles/spanner.viewer 可查看所有 Spanner Omni 資源,但無法修改。 包括唯讀權限。

Spanner Omni 還有一些值得注意的限制:

  • 沒有自訂角色。
  • 無法精細控管存取權。
  • 沒有 IAM 條件。

後續步驟