IAM 簡介

身分與存取權管理 (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 條件。

後續步驟