存取權控管

代理程式經常是由多名小組成員合作建構,且服務會存取代理程式。使用「角色」即可控管存取權,並將權限授予「主體」

如果使用 API,可能也有一個或多個應用程式會傳送要求至代理程式。在這種情況下,您可以使用服務帳戶控管存取權。

您可以使用身分與存取權管理 (IAM)Dialogflow 主控台來控管存取權。

Dialogflow 主控台會將代理程式管理員角色提供給建立代理程式的使用者。該使用者會自動取得與代理程式相關聯專案的 IAM 專案擁有者角色。

代理程式管理員可以在 Dialogflow 控制台中,將開發人員和審查人員新增至代理程式。在 Dialogflow 控制台中授予「開發人員」或「審查人員」角色時,使用者會分別獲得 IAM 專案編輯者角色或 IAM 專案檢視者角色。如要將開發人員和審查人員新增至代理程式,也可以在 Google Cloud 控制台中授予使用者對應的 IAM 專案編輯者或 IAM 專案檢視者角色。

在某些狀況下,您必須使用 Google Cloud 控制台:

  • 如要變更管理員、為單一代理程式新增多個管理員,或為某個代理程式移除管理員,您必須使用 Google Cloud 主控台。
  • 如果您已整合其他 Google Cloud 資源 (例如 Cloud Functions),但不想向應用程式授予整個專案的存取權,則必須在 IAM 的 Google Cloud 主控台中指派 Dialogflow API 角色 (管理員、用戶端或讀取者)。
  • 部分 IAM 角色具有對應的 Dialogflow 主控台角色。如果想要授予 Dialogflow 主控台中沒有的角色,則需要使用 Google Cloud 主控台。

角色

下表列出與 Dialogflow 相關的常見角色、Dialogflow 主控台角色與 IAM 角色的關聯,以及權限詳細資料。

表格中的權限摘要使用下列詞彙:

  • 完整存取權: 可修改存取權、建立、刪除、編輯及讀取任何資源。
  • 編輯權限: 可建立、刪除、編輯及讀取任何資源的權限。
  • 工作階段存取權: 在對話期間呼叫僅限執行階段資源的方法,例如偵測意圖、更新情境、更新工作階段實體,或 Agent Assist 對話互動。 這項存取權提供的權限是完整存取權和編輯存取權的子集。
  • 讀取權限: 讀取任何資源的權限。
Dialogflow 主控台角色 IAM 角色 權限摘要 權限詳細資料
管理員 專案 >
擁有者
授予需要所有 Google Cloud 和 Dialogflow 資源完整存取權的專案擁有者:
  • 具備使用 Google Cloud 主控台或 API 存取所有 Google Cloud 專案資源的完整權限。
  • 具備使用 Dialogflow 主控台存取代理程式的完整權限。
  • 可使用 API 偵測意圖。
  • 具備在 Dialogflow 主控台或使用 API 變更代理程式版本的權限。
請參閱 IAM 基本角色定義
開發人員 專案 >
編輯者
授予需要所有 Google Cloud 和 Dialogflow 資源編輯存取權的專案編輯者:
  • 具備使用主控台或 API 編輯所有 Google Cloud 專案資源的權限。 Google Cloud
  • 具備使用 Dialogflow 主控台編輯代理程式的權限。
  • 可使用 API 偵測意圖。
請參閱 IAM 基本角色定義
審查者 專案 >
檢視者
授予需要所有 Google Cloud 和 Dialogflow 資源讀取權的專案檢視者:
  • 具備使用主控台或 API 讀取所有專案資源的權限。 Google Cloud Google Cloud
  • 具備使用 Dialogflow 主控台或 API 讀取代理程式的權限,但無法使用模擬器。
  • 無法使用 API 偵測意圖。
請參閱 IAM 基本角色定義
不適用 專案 >
瀏覽者
授予專案瀏覽者權限,讓他們擁有瀏覽專案階層的讀取權限,包括資料夾、機構和 IAM 政策:
  • 具備 Google Cloud 專案階層的讀取權限。
  • 無法透過 Dialogflow 主控台存取代理程式。
  • 無法使用 API 偵測意圖。
請參閱 IAM 專案角色定義
不適用 Dialogflow >
Dialogflow API 管理員
授予需要 Dialogflow 特定資源完整存取權的 Dialogflow API 管理員:
  • 具備使用 Google Cloud 主控台或 API 存取所有 Dialogflow 資源的完整權限。
  • 具備使用 Dialogflow 主控台讀取代理程式的權限。
  • 可使用 API 偵測意圖。
請參閱 Dialogflow IAM 角色定義
不適用 Dialogflow >
Dialogflow API 用戶端
授予給使用 API 執行意圖偵測呼叫的 Dialogflow API 用戶端:
  • 使用 Dialogflow 模擬器或 API,取得 Dialogflow 執行階段資源的存取權。
  • 透過 Dialogflow 主控台存取代理程式的權限有限。
  • 可使用 API 偵測意圖。
請參閱 Dialogflow IAM 角色定義
不適用 Dialogflow >
Dialogflow 主控台代理程式編輯者
授予 Dialogflow 主控台編輯者權限,讓他們編輯現有代理程式:
  • 具備使用 Google Cloud 主控台存取所有 Dialogflow 資源的完整權限。
  • 具備使用 Dialogflow 主控台編輯大部分代理程式資料的權限。無法存取 Cloud Functions 或 Google 助理整合的內嵌編輯器。
  • 可使用 API 偵測意圖。
請參閱 Dialogflow IAM 角色定義
不適用 Dialogflow >
Dialogflow API 讀取者
授予給使用 API 執行 Dialogflow 專屬唯讀呼叫的 Dialogflow API 用戶端:
  • 具備使用 Google Cloud 主控台或 API 讀取所有 Dialogflow 資源的權限。
  • 具備使用 Dialogflow 主控台讀取代理程式的權限,但無法使用模擬工具。
  • 無法使用 API 偵測意圖。
請參閱 Dialogflow IAM 角色定義

使用 Google Cloud 控制台控管存取權

您可以使用 IAM 設定控管存取權。如需新增、編輯及移除權限的詳細操作說明,請參閱身分與存取權管理快速入門導覽課程

如要存取下列設定,請在 Google Cloud 控制台中開啟「IAM」頁面。

在專案中新增使用者或服務帳戶

您可以將角色授予 Google Cloud 專案中的使用者或服務帳戶,藉此提供權限。只要提供使用者的電子郵件地址即可新增使用者,服務帳戶也是透過提供相關聯的電子郵件地址來進行新增。如果您想在多個專案和代理程式上使用單一服務帳戶,則需要新增服務帳戶成員。如要查看與服務帳戶相關聯的電子郵件地址,請前往 Google Cloud 控制台的 IAM「服務帳戶」頁面。

如何新增成員:

  1. 按一下頁面頂端的新增 按鈕。
  2. 輸入成員的電子郵件地址。
  3. 選取一個角色。
  4. 按一下 [Save] (儲存)

變更權限

  1. 針對要變更權限的成員,按一下對應的編輯 按鈕。
  2. 選取其他角色。
  3. 按一下 [Save] (儲存)

移除成員

  1. 針對要移除的成員,按一下對應的刪除 按鈕。

使用 Dialogflow 主控台控管存取權

在代理程式的設定中可找到共用選項。如何開啟代理程式的共用設定:

  1. 前往 Dialogflow ES 主控台
  2. 從左側欄選單中接近頂端的位置選取您的代理程式。
  3. 按一下代理程式名稱旁邊的設定 按鈕。
  4. 按一下 [Share] (共用) 標籤。如未顯示「共用」分頁標籤,表示您沒有必要的代理程式管理員角色。

「共用」分頁,顯示使用者及其存取層級。

新增使用者

  1. 在「Invite New People」(邀請新人員) 底下輸入使用者的電子郵件地址。
  2. 選取一個角色。
  3. 然後按一下 [Add] (新增)
  4. 按一下 [Save] (儲存)

變更權限

  1. 在清單中找出使用者。
  2. 選取其他角色。
  3. 按一下 [Save] (儲存)

移除使用者

  1. 在清單中找出使用者。

  2. 針對該使用者上按一下刪除 按鈕。

  3. 按一下 [儲存]

自動建立的服務帳戶

建立及使用代理程式時,Dialogflow 會自動建立一些服務代理程式

如要查看授予這些服務代理的角色,請在 IAM 頁面上啟用「Include Google-provided role grants」(包含 Google 提供的角色授權) 選項。

您不應刪除、編輯或下載任何這類服務代理程式的金鑰,也不應使用這些服務代理程式直接呼叫 API。Dialogflow 服務只會使用這些憑證,連線至代理程式使用的各種 Google Cloud 服務。設定特定 Dialogflow 功能時,您可能需要透過電子郵件與這些服務專員聯絡。

下表說明部分服務代理程式:

IAM 電子郵件表單 目的
service-project-number
@gcp-sa-dialogflow.iam.gserviceaccount.com
用來將代理程式連結至處理整合流量的服務。
firebase-adminsdk-alphanum
@project-id.iam.gserviceaccount.com
用於將代理程式連線至處理 Google 助理整合流量的服務。
project-id
@appspot.gserviceaccount.com
用於將代理程式連線至處理 Google 助理整合流量的服務。

轉移管理員角色

如要轉移代理商的管理員角色,現任管理員必須按照上述步驟新增管理員。新管理員接受授予的角色後,即可安全地移除舊管理員。

如果現任管理員已離職,且您需要將管理員角色轉移給其他員工,可以採取下列兩種做法:

  • 與代理程式專案相關聯的機構管理員有權修改代理程式管理員。
  • 如果您擁有代理程式的讀取權限,可以匯出代理程式,然後匯入至所需員工為管理員的代理程式。遷移代理程式及更新任何整合時,可能會導致即時製作代理程式停機。

OAuth

如果您使用 Google 用戶端程式庫存取 Dialogflow,則不需要直接使用 OAuth,因為這些程式庫會為您處理實作作業。不過,如果您要導入自己的用戶端,可能需要導入自己的 OAuth 流程。如要存取 Dialogflow API,需要下列其中一種 OAuth 範圍:

  • https://www.googleapis.com/auth/cloud-platform (可存取所有專案資源)
  • https://www.googleapis.com/auth/dialogflow (存取 Dialogflow 資源)

涉及 Cloud Storage 存取權的要求

部分 Dialogflow 要求會存取 Cloud Storage 中的物件,以便讀取或寫入資料。當您呼叫其中一項要求時,Dialogflow 會代表呼叫者存取 Cloud Storage 資料。也就是說,您的要求驗證必須具備存取 Dialogflow 和 Cloud Storage 物件的權限。

使用 Google 用戶端程式庫和 IAM 角色時,請參閱 Cloud Storage 存取權控管指南,瞭解 Cloud Storage 角色。

實作自己的用戶端並使用 OAuth 時,請務必使用下列 OAuth 範圍:

  • https://www.googleapis.com/auth/cloud-platform (可存取所有專案資源)