使用 IAM 控管 Bigtable 存取權
本頁面說明 Bigtable 的存取控管選項。
總覽
Bigtable 使用身分與存取權管理 (IAM) 控管存取權。如要控管哪些人具備何種資源的哪些存取權,請對資源設定 IAM 政策。
Bigtable 資源會以階層方式整理。Google Cloud 專案是 Bigtable 執行個體的父項,而執行個體則是叢集和資料表的父項。資料表是授權檢視區塊的父項,而叢集是備份的父項。您可以在各層級設定存取控管。
如果您擁有某個層級的權限,系統會自動授予您該層級以下的權限。舉例來說,如果您有專案層級的存取權,就能存取該專案中的執行個體、叢集、資料表、授權檢視區塊和持續具體化檢視區塊。如果您獲准存取已授權檢視區塊或連續具體化檢視區塊,則不會自動取得已授權檢視區塊或連續具體化檢視區塊的父項資源 (例如資料表和執行個體) 的存取權。這種行為稱為「政策繼承」。
如要進一步瞭解 IAM 階層,請參閱「IAM 政策繼承」。
以下列舉幾個在專案層級使用存取控管的範例:
- 授予權限,讓使用者可以讀取專案中的任何資料表,但不能寫入資料。
- 授予權限,讓使用者可以讀取專案中的任何資料表並寫入資料,但是沒有執行個體的管理權限。
- 授予權限,讓使用者可以讀取專案中的任何資料表並寫入資料,並且擁有執行個體的管理權限。
在執行個體層級使用存取控管的範例如下:
- 允許使用者從專案中某個執行個體的任何資料表讀取資料,但該專案有多個執行個體。
- 如果專案有多個執行個體,允許使用者只管理其中一個。
在資料表層級使用存取控管的範例如下:
- 允許使用者寫入資料表,但無法從資料表讀取資料。
- 允許使用者讀取資料表,但無法寫入資料表。
在「備份」層級使用存取權控管的範例如下:
- 禁止使用者刪除備份。
- 禁止使用者從備份還原。
在授權 view 層級使用存取控管的範例如下:
- 允許使用者讀取授權檢視畫面,但無法修改。
- 允許使用者只查看資料表的多個授權檢視畫面之一。
在持續性 materialized view層級使用存取控管的範例如下:
- 允許使用者從連續具體化檢視區塊讀取資料,但不得修改基礎資料表。
如要進一步瞭解 IAM 及其功能,請參閱 IAM 開發人員指南。其中以授予、變更及撤銷存取權的部分最為重要。
在 Bigtable 中,您無法將存取權授予下列類型的主體:
如需 Bigtable 支援的權限與角色清單,請參閱下列各節。
啟用 Bigtable API
如要查看及指派 Bigtable IAM 角色,請為專案啟用 Bigtable API。您必須先啟用 API,Bigtable 角色才會顯示在Google Cloud 控制台中。
啟用 API 時所需的角色
如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
權限
本節概述 Bigtable 支援的權限。
擁有權限的使用者才能對 Bigtable 資源執行特定操作。舉例來說,bigtable.instances.list 權限可讓使用者列出專案中的所有 Bigtable 執行個體。您不能直接授予使用者特定權限,而只能指派預先定義的角色或自訂角色給他們;每個角色可用來授予一或多個權限。
下表列出與 Bigtable 相關的 IAM 權限:
| 應用程式設定檔權限指令 | 說明 |
|---|---|
bigtable.appProfiles.create |
建立 Bigtable 應用程式設定檔。 |
bigtable.appProfiles.delete |
刪除 Bigtable 應用程式設定檔。 |
bigtable.appProfiles.get |
取得 Bigtable 應用程式設定檔的相關資訊。 |
bigtable.appProfiles.list |
列出執行個體的 Bigtable 應用程式設定檔。 |
bigtable.appProfiles.update |
更新 Bigtable 應用程式設定檔的設定。 |
| 備份權限名稱 | 說明 |
|---|---|
bigtable.backups.create |
建立 Bigtable 備份。 |
bigtable.backups.delete |
刪除 Bigtable 備份。 |
bigtable.backups.get |
取得 Bigtable 備份的相關資訊。 |
bigtable.backups.getIamPolicy |
取得備份的 IAM 政策。 |
bigtable.backups.list |
列出 Bigtable 備份。 |
bigtable.backups.restore |
從 Bigtable 備份還原。 |
bigtable.backups.testIamPermissions |
取得呼叫者對指定備份的權限。 |
bigtable.backups.read |
從 Bigtable 備份讀取資料。 |
bigtable.backups.setIamPolicy |
更新備份 ACL。 |
bigtable.backups.update |
修改 Bigtable 備份的到期日。 |
| 叢集權限指令 | 說明 |
|---|---|
bigtable.clusters.create |
建立 Bigtable 叢集。 |
bigtable.clusters.delete |
刪除 Bigtable 叢集。 |
bigtable.clusters.get |
取得 Bigtable 叢集的相關資訊。 |
bigtable.clusters.list |
列出執行個體的 Bigtable 叢集。 |
bigtable.clusters.update |
更新 Bigtable 叢集的設定。 |
| 資源使用率不均的子表權限名稱 | 說明 |
|---|---|
bigtable.hotTablets.list |
列出叢集的高用量子表。 |
| 記憶體內層 (預先發布版) 權限名稱 | 說明 |
|---|---|
bigtable.memoryLayer.get |
查看 Bigtable 記憶體內層的相關資訊。 |
bigtable.memoryLayer.list |
列出 Bigtable 記憶體內層等級。 |
bigtable.memoryLayer.update |
啟用、停用或調整 Bigtable 記憶體內層的大小。 |
| 執行個體權限名稱 | 說明 |
|---|---|
bigtable.instances.create |
建立 Bigtable 執行個體。 |
bigtable.instances.createTagBinding |
建立代碼。 |
bigtable.instances.delete |
刪除 Bigtable 執行個體。 |
bigtable.instances.deleteTagBinding |
刪除標記。 |
bigtable.instances.get |
取得 Bigtable 執行個體的相關資訊。 |
bigtable.instances.getIamPolicy |
取得執行個體的 IAM 政策。 |
bigtable.instances.list |
列出專案的 Bigtable 執行個體。 |
bigtable.instances.listEffectiveTagBindings |
列出執行個體的所有有效標記。 |
bigtable.instances.listTagBindings |
列出執行個體的標記。 |
bigtable.instances.ping |
傳送頻道預熱要求。 |
bigtable.instances.executeQuery |
將 ExecuteQuery 和 PrepareQuery 要求傳送至執行個體。 |
bigtable.instances.setIamPolicy |
更新 ACL。 |
bigtable.instances.update |
更新 Bigtable 執行個體的設定。 |
| Key Visualizer 權限名稱 | 說明 |
|---|---|
bigtable.keyvisualizer.get |
取得資料表的 Key Visualizer 資訊,包括存取模式和資料列索引鍵分布情形的中繼資料。 |
bigtable.keyvisualizer.list |
列出資料表的可用 Key Visualizer 資訊。 |
| 位置存取權名稱 | 說明 |
|---|---|
bigtable.locations.list |
列出 Bigtable 位置。 |
| 資料表權限指令 | 說明 |
|---|---|
bigtable.tables.checkConsistency |
檢查複寫資料表是否為最新版本。 |
bigtable.tables.create |
建立資料表。 |
bigtable.tables.delete |
刪除資料表。 |
bigtable.tables.generateConsistencyToken |
建立憑證來檢查複寫資料表是否為最新版本。 |
bigtable.tables.get |
取得資料表的資訊,包含資料欄系列及每欄的個別設定。 |
bigtable.tables.getIamPolicy |
取得資料表的 IAM 政策。 |
bigtable.tables.list |
列舉出執行個體中的資料表。 |
bigtable.tables.mutateRows |
修改資料表中的列,或截斷資料表中的資料。 |
bigtable.tables.readRows |
從資料表讀取資料列。包括資料表資訊,例如資料欄系列及其個別設定。 |
bigtable.tables.sampleRowKeys |
從資料表所使用的資料列索引鍵值中取樣。 |
bigtable.tables.setIamPolicy |
更新資料表 ACL。 |
bigtable.tables.undelete |
復原已刪除的資料表。 |
bigtable.tables.update |
更新資料表的設定,包含資料欄系列及每欄的個別設定。 |
| 位置存取權名稱 | 說明 |
|---|---|
bigtable.locations.list |
列出 Bigtable 位置。 |
| 授權 view 權限名稱 | 說明 |
|---|---|
bigtable.authorizedViews.create |
建立授權 view。 |
bigtable.authorizedViews.delete |
刪除授權檢視表。 |
bigtable.authorizedViews.get |
取得授權檢視表的相關資訊。 |
bigtable.authorizedViews.getIamPolicy |
取得授權檢視區塊的 IAM 政策。 |
bigtable.authorizedViews.list |
以表格列出授權檢視區。 |
bigtable.authorizedViews.mutateRows |
修改授權檢視表中的資料列。 |
bigtable.authorizedViews.readRows |
從授權檢視表讀取資料列。 |
bigtable.authorizedViews.sampleRowKeys |
取得授權檢視畫面中使用的資料列鍵範例。 |
bigtable.authorizedViews.setIamPolicy |
更新授權 view 的存取控管政策。 |
bigtable.authorizedViews.update |
更新授權檢視的設定。 |
| 持續性 materialized view 權限名稱 | 說明 |
|---|---|
bigtable.materializedViews.create |
建立持續性 materialized view。 |
bigtable.materializedViews.delete |
刪除持續性具體化檢視畫面。 |
bigtable.materializedViews.get |
取得持續性 materialized view 的相關資訊。 |
bigtable.materializedViews.getIamPolicy |
取得持續性具體化檢視區塊的 IAM 政策。 |
bigtable.materializedViews.list |
列出執行個體中的持續性 materialized view。 |
bigtable.materializedViews.readRows |
從持續性 materialized view 讀取資料列。 |
bigtable.materializedViews.sampleRowKeys |
取得連續具體化檢視區塊中使用的資料列鍵範例。 |
bigtable.materializedViews.setIamPolicy |
更新持續性具體化檢視表的存取權控管政策。 |
bigtable.materializedViews.update |
更新持續性具體化檢視表的設定。 |
預先定義的角色
每個預先定義的角色是由一或多個權限集合而成。舉例來說,roles/bigtable.reader 提供 Bigtable 執行個體、叢集、資料表和資料欄系列相關資訊的唯讀存取權,以及資料表內含的資料。您可以分配角色給使用者或群組,讓他們能夠對專案中的資源進行操作。
下表列出 Bigtable 的預先定義角色,包括與每個角色關聯的權限清單:
| Role | Permissions |
|---|---|
Bigtable Administrator( Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators. Lowest-level resources where you can grant this role:
|
|
Bigtable Editor( Editor role for bigtable |
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|