身分與存取權管理 (IAM)

Google Cloud Platform 提供「身分與存取權管理」(IAM) 功能,可讓您以更精細的方式授予使用者特定 Google Cloud Platform 資源的存取權限,避免其他資源遭到未經授權者擅自存取。這個頁面說明 Cloud Firestore (Datastore 模式) 身分與存取權管理角色。如需 Cloud IAM 的詳細說明,請參閱 IAM 說明文件

IAM 能讓您採用最低權限安全性原則,僅授予必要的資源存取權限給使用者。

設定 IAM 政策之後,即可控管哪些使用者具備何種角色權限,可以存取哪些資源。IAM 政策可授予使用者特定角色,讓對方擁有特定權限。例如,您可以將 datastore.indexAdmin 角色授予使用者,讓該使用者能夠建立、修改、刪除、列出或查看索引。

權限與角色

本節概述 Cloud Firestore (Datastore 模式) 支援的權限與角色。

必要權限

下表列出了呼叫方呼叫每個方法時必須具備的權限:

方法 必要權限
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit (插入) datastore.entities.create
commit (更新插入) datastore.entities.create
datastore.entities.update
commit (更新) datastore.entities.update
commit (刪除) datastore.entities.delete
commit (查閱) datastore.entities.get

若是與中繼資料或統計資料相關的查閱,請參閱中繼資料與統計資料必要權限
commit (查詢) datastore.entities.list
datastore.entities.get (若該項查詢並非純索引鍵查詢)

若是與中繼資料或統計資料相關的查詢,請參閱中繼資料與統計資料必要權限一節。
lookup datastore.entities.get

若是與中繼資料或統計資料相關的查閱,請參閱中繼資料與統計資料必要權限一節。
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (若該項查詢並非純索引鍵查詢)

若是與中繼資料或統計資料相關的查詢,請參閱中繼資料與統計資料必要權限一節。

中繼資料與統計資料必要權限

下表列出呼叫者呼叫中繼資料統計資料方法時必須具備的權限。

方法 所需權限
lookup 查閱種類名稱符合 __Stat_*__ 的實體 datastore.statistics.get
runQuery 使用名稱符合 __Stat_*__ 的種類執行查詢 datastore.statistics.get
datastore.statistics.list
runQuery 使用 __namespace__ 種類執行查詢 datastore.namespaces.get
datastore.namespaces.list

角色

透過身分與存取權管理功能,凡是需要帳戶發送 API 要求的 Cloud Datastore API 方法都具備使用該項資源的適當權限。只要設定政策將角色授予使用者、群組或服務帳戶,即可授予權限。除了原始角色 (即擁有者、編輯者和檢視者) 外,您還可以將 Cloud Firestore (Datastore 模式) 角色授予專案使用者。

下表列出 Cloud Firestore (Datastore 模式) 的 IAM 角色。您可以將多個角色授予使用者、群組或服務帳戶。

角色 權限 說明
roles/datastore.owner
且為
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
具備資料庫執行個體的完整存取權。
roles/datastore.owner
並非
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
具備資料庫執行個體的完整存取權,但使用者、群組或服務帳戶無法執行以下功能:
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
在 Datastore 模式資料庫讀取/寫入資料的存取權。適用於應用程式開發人員和服務帳戶。
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
具備所有 Datastore 模式資料庫資源的讀取存取權。
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
具備管理匯入及匯出項目的完整存取權。
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
具備管理索引定義的完整存取權。

權限

下表列出 Cloud Firestore (Datastore 模式) 支援的權限。

資料庫權限名稱 說明
datastore.databases.export 自資料庫匯出實體。
datastore.databases.get 開始或復原交易。
自資料庫讀取中繼資料。
datastore.databases.import 將實體匯入資料庫。
實體權限名稱 說明
datastore.entities.allocateIds 針對金鑰路徑不完整的金鑰分配 ID。
datastore.entities.create 建立實體。
datastore.entities.delete 刪除實體。
datastore.entities.get 讀取實體。
datastore.entities.list 列出專案中的實體金鑰。
(必須具備 datastore.entities.get 才能存取實體資料)。
datastore.entities.update 更新實體。
索引權限名稱 說明
datastore.indexes.create 建立索引。
datastore.indexes.delete 刪除索引。
datastore.indexes.get 自索引讀取中繼資料。
datastore.indexes.list 列出專案中的索引。
datastore.indexes.update 更新索引。
命名空間權限名稱 說明
datastore.namespaces.get 自命名空間擷取中繼資料。
datastore.namespaces.list 列出專案中的命名空間。
作業權限名稱 說明
datastore.operations.cancel 取消長時間執行的作業。
datastore.operations.delete 刪除長時間執行的作業。
datastore.operations.get 取得長時間執行的作業的最新狀態。
datastore.operations.list 列出長時間執行的作業。
專案權限名稱 說明
resourcemanager.projects.get 瀏覽專案中的資源。
resourcemanager.projects.list 列出擁有的專案。
統計資料權限名稱 說明
datastore.statistics.get 擷取統計資料實體。
datastore.statistics.list 列出統計資料實體的金鑰 
(必須具備 datastore.statistics.get 才能存取統計資料實體資料)。
App Engine 權限名稱 說明
appengine.applications.get 將所有 App Engine 應用程式配置和設定設為唯讀存取權。

建立 Datastore 模式資料庫執行個體所需的角色

如要建立新的 Datastore 模式資料庫執行個體,您必須具備擁有者角色Cloud Datastore 擁有者角色

Datastore 模式資料庫必須要有可用的 App Engine 應用程式。若專案不具任何應用程式,Cloud Firestore (Datastore 模式) 會為您建立一個應用程式。在此情況下,您必須具備 appengine.applications.create 權限,權限來源可以是擁有者角色,也可以是包含該項權限的 IAM 自訂角色

角色變更延遲

Cloud Firestore (Datastore 模式) 快取身分與存取權管理權限的時間是 5 分鐘,因此,角色變更約需 5 分鐘才會生效。

管理身分與存取權管理

您可以使用 Google Cloud Platform 主控台、身分與存取權管理方法或 gcloud 指令列工具取得和設定身分與存取權管理政策。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Datastore 說明文件