使用 IAM 控管 Bigtable 存取權

您可以使用 Identity and Access Management (IAM) 管理 Bigtable 資源的精細權限。IAM 可協助您強制執行最低權限原則,並保護專案、執行個體和資料表中的資料。

Bigtable 使用 IAM 控管存取權。如要控管資源存取權,請在資源上設定 IAM 政策。

Bigtable 資源會以階層方式整理。Google Cloud 專案是 Bigtable 執行個體的父項,而 Bigtable 執行個體則是叢集和資料表的父項。資料表是授權檢視區塊的父項,而叢集是備份的父項。您可以在各層級設定存取控管機制。

如果您擁有某個層級的權限,系統會自動授予您該層級以下的權限。舉例來說,如果您擁有專案層級的存取權,就能存取該專案中的執行個體、叢集、資料表、授權檢視區塊和持續具體化檢視區塊。如果您獲准存取授權檢視區塊或連續具體化檢視區塊,則不會自動取得授權檢視區塊或連續具體化檢視區塊父項的高階資源存取權,例如資料表和執行個體。這種行為稱為「政策繼承」。

如要進一步瞭解 IAM 階層,請參閱「IAM 政策繼承」。

存取控管範例

在專案層級使用存取控管的範例如下:

  • 授予權限,讓使用者可以讀取專案中的任何資料表,但不能寫入資料。
  • 授予權限,讓使用者可以讀取專案中的任何資料表並寫入資料,但是沒有執行個體的管理權限。
  • 授予權限,讓使用者可以讀取專案中的任何資料表並寫入資料,並且擁有執行個體的管理權限。

在執行個體層級使用存取控管的範例如下:

  • 允許使用者從專案中多個執行個體中的任一資料表讀取資料。
  • 允許使用者在有多個執行個體的專案中,只管理一個執行個體。

在資料表層級使用存取控管的範例如下:

  • 允許使用者寫入資料表,但不允許讀取資料表。
  • 允許使用者讀取資料表,但無法寫入資料表。

以下是使用備份層級存取控管的範例:

  • 禁止使用者刪除備份。
  • 禁止使用者從備份還原。

在授權檢視區塊層級使用存取控管的範例包括:

  • 允許使用者讀取授權檢視畫面,但無法修改。
  • 讓使用者只能查看資料表的多個授權檢視畫面之一。

在持續性 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) 取得這項權限。瞭解如何授予角色。

啟用 API

權限

本節概述 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 修改表格中的資料列,或截斷表格。有條件的寫入作業 (CheckAndMutateRow) 和讀取 - 修改 - 寫入作業 (ReadModifyWriteRow) 也需要 bigtable.tables.readRows。
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 刪除授權 view。
bigtable.authorizedViews.get 取得授權檢視表的相關資訊。
bigtable.authorizedViews.getIamPolicy 取得授權檢視的 IAM 政策。
bigtable.authorizedViews.list 以表格列出授權檢視區。
bigtable.authorizedViews.mutateRows 修改授權檢視區塊中的資料列。有條件的寫入作業 (CheckAndMutateRow) 和讀取 - 修改 - 寫入作業 (ReadModifyWriteRow) 也需要 bigtable.authorizedViews.readRows。
bigtable.authorizedViews.readRows 從授權 view 讀取資料列。
bigtable.authorizedViews.sampleRowKeys 取得授權檢視畫面中使用的資料列索引鍵範例。
bigtable.authorizedViews.setIamPolicy 更新授權檢視區的存取控管政策。
bigtable.authorizedViews.update 更新授權檢視的設定。
持續性 materialized view 權限名稱 說明
bigtable.materializedViews.create 建立持續性 materialized view。
bigtable.materializedViews.delete 刪除持續性 materialized view。
bigtable.materializedViews.get 取得持續性 materialized view 的相關資訊。
bigtable.materializedViews.getIamPolicy 取得持續性 materialized view 的 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

(roles/bigtable.admin)

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:

  • Table

bigtable.*

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.appProfiles.update
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.createTagBinding
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.deleteTagBinding
  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.listEffectiveTags
  • bigtable.authorizedViews.listTagBindings
  • bigtable.authorizedViews.mutateRows
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.update
  • bigtable.backups.create
  • bigtable.backups.delete
  • bigtable.backups.get
  • bigtable.backups.getIamPolicy
  • bigtable.backups.list
  • bigtable.backups.read
  • bigtable.backups.restore
  • bigtable.backups.setIamPolicy
  • bigtable.backups.update
  • bigtable.clusters.create
  • bigtable.clusters.delete
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.clusters.update
  • bigtable.hotTablets.list
  • bigtable.instances.create
  • bigtable.instances.createTagBinding
  • bigtable.instances.delete
  • bigtable.instances.deleteTagBinding
  • bigtable.instances.executeQuery
  • bigtable.instances.get
  • bigtable.instances.getIamPolicy
  • bigtable.instances.list
  • bigtable.instances.listEffectiveTags
  • bigtable.instances.listTagBindings
  • bigtable.instances.ping
  • bigtable.instances.setIamPolicy
  • bigtable.instances.update
  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list
  • bigtable.locations.list
  • bigtable.logicalViews.create
  • bigtable.logicalViews.delete
  • bigtable.logicalViews.get
  • bigtable.logicalViews.getIamPolicy
  • bigtable.logicalViews.list
  • bigtable.logicalViews.readRows
  • bigtable.logicalViews.setIamPolicy
  • bigtable.logicalViews.update
  • bigtable.materializedViews.create
  • bigtable.materializedViews.delete
  • bigtable.materializedViews.get
  • bigtable.materializedViews.getIamPolicy
  • bigtable.materializedViews.list
  • bigtable.materializedViews.readRows
  • bigtable.materializedViews.sampleRowKeys
  • bigtable.materializedViews.setIamPolicy
  • bigtable.materializedViews.update
  • bigtable.memoryLayers.get
  • bigtable.memoryLayers.list
  • bigtable.memoryLayers.update
  • bigtable.schemaBundles.create
  • bigtable.schemaBundles.delete
  • bigtable.schemaBundles.get
  • bigtable.schemaBundles.getIamPolicy
  • bigtable.schemaBundles.list
  • bigtable.schemaBundles.setIamPolicy
  • bigtable.schemaBundles.update
  • bigtable.tables.checkConsistency
  • bigtable.tables.create
  • bigtable.tables.delete
  • bigtable.tables.generateConsistencyToken
  • bigtable.tables.get
  • bigtable.tables.getIamPolicy
  • bigtable.tables.list
  • bigtable.tables.mutateRows
  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys
  • bigtable.tables.setIamPolicy
  • bigtable.tables.undelete
  • bigtable.tables.update

cloudkms.keyHandles.*

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

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.timeSeries.*

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

resourcemanager.projects.get

(roles/bigtable.editor)

Editor role for bigtable

bigtable.appProfiles.*

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.appProfiles.update

bigtable.authorizedViews.create

bigtable.authorizedViews.delete

bigtable.authorizedViews.get

bigtable.authorizedViews.getIamPolicy

bigtable.authorizedViews.list

bigtable.authorizedViews.listEffectiveTags

bigtable.authorizedViews.listTagBindings

bigtable.authorizedViews.mutateRows

bigtable.authorizedViews.readRows

bigtable.authorizedViews.sampleRowKeys

bigtable.authorizedViews.update

bigtable.backups.create

bigtable.backups.delete

bigtable.backups.get

bigtable.backups.getIamPolicy

bigtable.backups.list

bigtable.backups.read

bigtable.backups.restore

bigtable.backups.update

bigtable.clusters.*

  • bigtable.clusters.create
  • bigtable.clusters.delete
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.clusters.update

bigtable.hotTablets.list

bigtable.instances.create

bigtable.instances.delete

bigtable.instances.executeQuery

bigtable.instances.get

bigtable.instances.getIamPolicy

bigtable.instances.list

bigtable.instances.listEffectiveTags

bigtable.instances.listTagBindings

bigtable.instances.ping

bigtable.instances.update

bigtable.keyvisualizer.*

  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list

bigtable.locations.list

bigtable.logicalViews.create

bigtable.logicalViews.delete

bigtable.logicalViews.get

bigtable.logicalViews.getIamPolicy

bigtable.logicalViews.list

bigtable.logicalViews.readRows

bigtable.logicalViews.update

bigtable.materializedViews.create

bigtable.materializedViews.delete

bigtable.materializedViews.get

bigtable.materializedViews.getIamPolicy

bigtable.materializedViews.list

bigtable.materializedViews.readRows

bigtable.materializedViews.sampleRowKeys

bigtable.materializedViews.update

bigtable.memoryLayers.*

  • bigtable.memoryLayers.get
  • bigtable.memoryLayers.list
  • bigtable.memoryLayers.update

bigtable.schemaBundles.create

bigtable.schemaBundles.delete

bigtable.schemaBundles.get

bigtable.schemaBundles.getIamPolicy

bigtable.schemaBundles.list

bigtable.schemaBundles.update

bigtable.tables.checkConsistency

bigtable.tables.create

bigtable.tables.delete

bigtable.tables.generateConsistencyToken

bigtable.tables.get

bigtable.tables.getIamPolicy

bigtable.tables.list

bigtable.tables.mutateRows

bigtable.tables.readRows

bigtable.tables.sampleRowKeys

bigtable.tables.undelete

bigtable.tables.update

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/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:

  • Table

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.authorizedViews.get

bigtable.authorizedViews.list

bigtable.authorizedViews.mutateRows

bigtable.authorizedViews.readRows

bigtable.authorizedViews.sampleRowKeys

bigtable.backups.get

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.executeQuery

bigtable.instances.get

bigtable.instances.list

bigtable.instances.ping

bigtable.keyvisualizer.*

  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list

bigtable.locations.list

bigtable.logicalViews.get

bigtable.logicalViews.list

bigtable.logicalViews.readRows

bigtable.materializedViews.get

bigtable.materializedViews.list

bigtable.materializedViews.readRows

bigtable.materializedViews.sampleRowKeys

bigtable.memoryLayers.get

bigtable.memoryLayers.list

bigtable.schemaBundles.get

bigtable.schemaBundles.list

bigtable.tables.checkConsistency

bigtable.tables.generateConsistencyToken

bigtable.tables.get

bigtable.tables.list

bigtable.tables.mutateRows

bigtable.tables.readRows

bigtable.tables.sampleRowKeys

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.timeSeries.*

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

resourcemanager.projects.get

(roles/bigtable.viewer)

Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable.

Lowest-level resources where you can grant this role:

  • Table

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.authorizedViews.get

bigtable.authorizedViews.getIamPolicy

bigtable.authorizedViews.list

bigtable.authorizedViews.listEffectiveTags

bigtable.authorizedViews.listTagBindings

bigtable.backups.get

bigtable.backups.getIamPolicy

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.get

bigtable.instances.getIamPolicy

bigtable.instances.list

bigtable.instances.listEffectiveTags

bigtable.instances.listTagBindings

bigtable.locations.list

bigtable.logicalViews.get

bigtable.logicalViews.getIamPolicy

bigtable.logicalViews.list

bigtable.materializedViews.get

bigtable.materializedViews.getIamPolicy

bigtable.materializedViews.list

bigtable.memoryLayers.get

bigtable.memoryLayers.list

bigtable.schemaBundles.get

bigtable.schemaBundles.getIamPolicy

bigtable.schemaBundles.list

bigtable.tables.checkConsistency

bigtable.tables.generateConsistencyToken

bigtable.tables.get

bigtable.tables.getIamPolicy

bigtable.tables.list

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.timeSeries.list

resourcemanager.projects.get

(roles/bigtable.reader)

Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios.

Lowest-level resources where you can grant this role:

  • Table

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.authorizedViews.get

bigtable.authorizedViews.list

bigtable.authorizedViews.readRows

bigtable.authorizedViews.sampleRowKeys

bigtable.backups.get

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.executeQuery

bigtable.instances.get

bigtable.instances.list

bigtable.instances.ping

bigtable.keyvisualizer.*

  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list

bigtable.locations.list

bigtable.logicalViews.get

bigtable.logicalViews.list

bigtable.logicalViews.readRows

bigtable.materializedViews.get

bigtable.materializedViews.list

bigtable.materializedViews.readRows

bigtable.materializedViews.sampleRowKeys

bigtable.memoryLayers.get

bigtable.memoryLayers.list

bigtable.schemaBundles.get

bigtable.schemaBundles.list

bigtable.tables.checkConsistency

bigtable.tables.generateConsistencyToken

bigtable.tables.get

bigtable.tables.list

bigtable.tables.readRows

bigtable.tables.sampleRowKeys

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.timeSeries.*

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

resourcemanager.projects.get

自訂角色

如果 Bigtable 的預先定義的角色無法滿足您的業務需求,您可以使用自訂角色,並設定這些角色的權限。

如果自訂角色需要支援存取 Google Cloud 控制台,您必須找出使用者將執行的工作,然後確保自訂角色具備每項工作所需的權限,如下表所示。如果自訂角色不具備執行工作所需的所有權限,使用者嘗試執行該工作時, Google Cloud 控制台將無法正常運作。

Google Cloud 控制台工作 所需權限
基本存取 Google Cloud 控制台
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • bigtable.tables.get
  • bigtable.tables.list
  • resourcemanager.projects.get
新增執行個體或是叢集

基本操作權限,以及:

  • bigtable.clusters.create
  • bigtable.instances.create
變更執行個體或是叢集

基本操作權限,以及:

  • bigtable.clusters.update
  • bigtable.instances.update
管理複製設定

基本操作權限,以及:

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.update
刪除執行個體或叢集

基本操作權限,以及:

  • bigtable.clusters.delete
  • bigtable.instances.delete
透過圖表對執行個體進行監控

基本操作權限,以及:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list
建立及更新表格

基本操作權限,以及:

  • bigtable.tables.create
  • bigtable.tables.update
還原備份

基本操作權限,以及:

  • bigtable.backups.list
  • bigtable.tables.create
  • bigtable.backups.restore

IAM 管理

本節說明如何在專案、執行個體、資料表和備份層級管理 IAM 角色和相關權限。

專案層級的 IAM 管理

在專案層級,您可以使用 Google Cloud 控制台、IAM API 或 Google Cloud CLI,授予、變更及撤銷 IAM 角色。詳情請參閱「授予、變更及撤銷存取權」。

建立專案後,您可以根據特定存取層級,將專案層級的 IAM 角色授予使用者。

必要的角色

為使用者設定執行個體層級、資料表層級、備份層級、授權檢視層級或連續具體化檢視層級 IAM 角色之前,請確保使用者至少具備下列其中一個專案層級 IAM 角色:

  • Bigtable 檢視者 (推薦)
  • Bigtable 讀取者
  • Bigtable 使用者
  • Bigtable 系統管理員

選擇專案層級角色時,請確保該角色在專案中的所有執行個體、資料表、備份、授權檢視區塊或持續具體化檢視區塊中,具備的權限不超過使用者實際需求。因此,您幾乎在所有情況下都應授予 Bigtable 檢視者角色。

如果使用者沒有至少一個專案層級角色,就無法透過 Google Cloud 控制台存取 Bigtable。 Google Cloud 控制台需要其中一個專案層級角色,才能代表使用者擷取執行個體、叢集、表格或備份的相關資訊。

授予執行個體層級的 IAM 角色

在執行個體層級,您可以將任何 Bigtable 預先定義的角色授予使用者或服務帳戶。您也可以授予已定義的任何自訂角色。

若您要在執行個體層級下授予預先定義角色或自訂角色給使用者或服務帳戶,請進行以下操作:

控制台

  1. 前往Google Cloud 控制台的 Bigtable 執行個體頁面。

    前往執行個體頁面

  2. 在執行個體旁邊的方塊勾選您所要管理的角色,資訊面板隨即顯示。

  3. 在資訊面板中,按一下「權限」。

  4. 在「新增主體」下方,開始輸入要新增的使用者或服務帳戶電子郵件地址,然後按一下該使用者或服務帳戶的電子郵件地址。

  5. 按一下「Select a role」(選取角色) 清單,然後按一下「Bigtable」選取預先定義的角色,或按一下「Custom」(自訂) 選取自訂角色。

  6. 點選您所想要指派的角色名稱。

  7. 點擊 [新增]。這時,系統即會將您在執行個體層級中所指派的角色授予使用者或服務帳戶。

gcloud

  1. 如果不知道執行個體 ID,請使用 bigtable instances list 指令查看專案的執行個體清單:

    gcloud bigtable instances list
    
  2. 使用 bigtable instances set-iam-policy 指令:

    gcloud bigtable instances set-iam-policy \
      INSTANCE_ID \
      POLICY_FILE
    

    請提供下列資訊:

    • INSTANCE_ID: 執行個體的永久 ID。
    • POLICY_FILE:本機 JSON 或 YAML 檔案的路徑,其中包含有效的 IAM 政策。

授予資料表層級的 IAM 角色

在表格層級,您可以將 Bigtable 的任何預先定義角色授予使用者或服務帳戶。您也可以授予已定義的任何自訂角色。

如要在資料表層級將預先定義或自訂角色授予使用者或服務帳戶,請按照下列步驟操作:

控制台

  1. 前往Google Cloud 控制台的 Bigtable 執行個體頁面。

    前往執行個體頁面

  2. 按一下含有您要設定 IAM 角色的資料表的執行個體名稱。

  3. 選取左側導覽窗格中的「表格」。

  4. 找出要管理角色的表格,然後勾選旁邊的方塊。資訊面板隨即顯示。

  5. 在資訊面板中,按一下「權限」。

  6. 在「新增主體」下方,開始輸入要新增的使用者或服務帳戶電子郵件地址,然後按一下該使用者或服務帳戶的電子郵件地址。

  7. 按一下「Select a role」(請選擇角色) 下拉式選單,然後按一下「Bigtable」選取預先定義的角色,或按一下「Custom」(自訂) 選取自訂角色。

  8. 點選您所想要指派的角色名稱。

  9. 按一下「Add」(新增)。使用者或服務帳戶會取得您在表格層級指定的角色。

gcloud

  1. 如果不知道執行個體 ID,請使用 bigtable instances list 指令查看專案的執行個體清單:

    gcloud bigtable instances list
    
  2. 如果不知道執行個體的資料表 ID,請使用 bigtable instances tables list 指令查看執行個體中的資料表清單。

    gcloud bigtable instances tables list --instances=INSTANCE_ID
    

    請提供下列資訊:

    • INSTANCE_ID: 執行個體的永久 ID。
  3. 使用 bigtable instances tables set-iam-policy 指令:

    gcloud bigtable instances tables set-iam-policy \
      TABLE_ID \
      --instance=INSTANCE_ID \
      POLICY_FILE
    

    請提供下列資訊:

    • TABLE_ID:資料表的永久 ID。
    • INSTANCE_ID: 執行個體的永久 ID。
    • POLICY_FILE:本機 JSON 或 YAML 檔案的路徑,其中包含有效的 IAM 政策。

授予備份層級的 IAM 角色

在備份層級,您可以將任何 Bigtable 預先定義的角色授予使用者或服務帳戶。您也可以授予已定義的任何自訂角色。

如要在備份層級將預先定義或自訂角色授予使用者或服務帳戶,請按照下列步驟操作:

gcloud

  1. 如果不知道執行個體 ID,請使用 bigtable instances list 指令查看專案的執行個體清單:

    gcloud bigtable instances list
    
  2. 如果您不知道執行個體中的備份 ID,請使用 bigtable instances backups list 指令查看執行個體中的備份清單。

    gcloud bigtable backups list --instances=INSTANCE_ID
    

    請提供下列資訊:

    • INSTANCE_ID: 執行個體的永久 ID。
  3. 使用 gcloud bigtable backups set-iam-policy 指令:

    gcloud bigtable backups set-iam-policy BACKUP_ID \
      --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID \
      POLICY_FILE
    

    請提供下列資訊:

    • BACKUP_ID:備份的永久 ID。
    • INSTANCE_ID: 執行個體的永久 ID。
    • TABLE_ID:資料表的永久 ID。
    • POLICY_FILE:本機 JSON 或 YAML 檔案的路徑,其中包含有效的 IAM 政策。

授予授權檢視層級的 IAM 角色

在授權的檢視畫面層級,您可以將 Bigtable 的任何預先定義角色授予使用者或服務帳戶。您也可以授予已定義的任何自訂角色。

如要在授權檢視層級將預先定義或自訂角色授予使用者或服務帳戶,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

  2. 按一下包含授權 view 的例項。

  3. 在導覽窗格中,按一下「Bigtable Studio」。

  4. 在檔案總管中,展開資料表和「已授權檢視區塊」。

  5. 找到要修改的授權檢視畫面,按一下旁邊的 more_vert 動作選單,然後按一下「授予存取權」。

  6. 新增至少一個主體,並選取要指派給該主體或主體群組的角色。

  7. 選用:如要授予其他角色的存取權,請按一下「新增其他角色」,然後輸入每個其他角色的主體和角色。

  8. 按一下 [儲存]。

gcloud

  1. 如果不知道執行個體 ID,請使用 bigtable instances list 指令查看專案的執行個體清單:

    gcloud bigtable instances list
    
  2. 如果不知道執行個體的資料表 ID,請使用 bigtable instances tables list 指令查看執行個體中的資料表清單。

    gcloud bigtable instances tables list --instances=INSTANCE_ID
    
  3. 如不知道檢視區塊 ID,請使用 bigtable authorized-views list 指令查看資料表的所有授權檢視區塊清單。

    gcloud bigtable instances tables authorized-views list \
      --instance=INSTANCE_ID \
      --table=TABLE_ID
    
  4. 使用 bigtable authorized-views set-iam-policy 指令:

    gcloud bigtable authorized-views set-iam-policy TABLE_ID{"</var>"}} \
      AUTHORIZED_VIEW_ID{"</var>"}} --instance=INSTANCE_ID{"</var>"}} POLICY_FILE{"</var>"}}
    

    請提供下列資訊:

    • INSTANCE_ID: 執行個體的永久 ID。
    • TABLE_ID:資料表的永久 ID。
    • AUTHORIZED_VIEW_ID:檢視區塊的永久 ID。
    • POLICY_FILE:本機 JSON 或 YAML 檔案的路徑,其中包含有效的 IAM 政策。

IAM 條件

IAM 條件可讓您針對部分 Google Cloud資源 (包括 Bigtable 資源),定義及強制執行條件式、以屬性為基礎的存取控管。

在 Bigtable 中,您可以根據下列屬性強制執行條件式存取權:

  • 日期/時間屬性:用於設定 Bigtable 資源的暫時 (有效期)、排定時間或有限時間存取權。舉例來說,您可以允許使用者存取表格至指定日期為止。
  • 資源屬性:根據資源名稱、資源類型或資源服務屬性,設定條件式存取權。在 Bigtable 中,您可以運用執行個體、叢集、資料表、備份和授權檢視區塊的屬性,設定條件式存取權。舉例來說,您可以允許使用者只管理開頭為特定前置字元的資料表,也可以只允許使用者存取特定資料表。

如要進一步瞭解 IAM 條件,請參閱「條件總覽」。

後續步驟

進一步瞭解身分與存取權管理。