多位團隊成員共同建構代理,並讓服務存取代理,是常見的做法。您可以使用角色,控管授予主體的存取權和權限。
您可以使用 Conversational Agents 控制台,或透過 Google Cloud 控制台 (查看說明文件、開啟控制台) 搭配 Identity and Access Management (IAM) 設定存取權。 Google Cloud 控制台用於將 IAM 角色授予主體,而 Conversational Agents 控制台則用於將 Dialogflow CX 代理角色授予主體。Dialogflow CX 代理角色是 Dialogflow CX 定義的便利預先定義角色,可限制對單一代理或特定代理子資源的存取權。
在某些情況下,您必須使用 Google Cloud 控制台:
- 根據預設,IAM 專案擁有者角色會授予建立專案的使用者,該專案擁有代理。這位擁有者具備專案中所有代理的完整存取權。如要變更專案擁有者,請使用 Google Cloud 控制台。
- 您只能透過 Dialogflow CX 控制台設定代理層級的存取權。如要設定專案層級存取權,請使用 Google Cloud 控制台。
- 部分 IAM 角色有對應的 Dialogflow CX 代理角色。如要授予 Dialogflow CX 控制台沒有的專案層級或代理層級角色,請使用 Google Cloud 控制台。
- 如果您使用 Vertex AI Agents 使用者介面建立資料儲存庫 AI 代理,則必須使用 Google Cloud 控制台。
如果使用 API,可能也有一個或多個應用程式會傳送要求至代理程式。在這種情況下,您可以使用服務帳戶控管存取權。
使用 Conversational Agents 控制台控管存取權
您可以使用 Conversational Agents 控制台,套用為代理層級共用設定的便利代理角色。這些角色與 IAM 角色相關,並具有 IAM 條件,可限制對特定代理或代理子資源子集的存取權。
如要透過 Conversational Agents 控制台存取代理角色設定,您必須具備相關聯專案的專案 IAM 管理員角色。這個角色是透過 Google Cloud 控制台授予。
| Dialogflow CX 代理角色 | 摘要 | IAM 角色 |
|---|---|---|
| 對話讀取器 | 具備讀取權限,可透過控制台或 API 查詢代理 (而非偵測意圖)。 | Dialogflow > Dialogflow API Reader (Dialogflow API 讀取者) |
| 對話式管理員 | 提供完整存取權,可透過控制台或 API 建立、更新、查詢、偵測意圖及刪除代理。 | Dialogflow > Dialogflow API Admin (Dialogflow API 管理員) |
| 對話式用戶端 | 可透過控制台或 API 偵測意圖。 | Dialogflow > Dialogflow API Client (Dialogflow API 用戶端) |
| 服務代理 | 請參閱「服務代理」 | 請參閱「服務代理」 |
| Flow 編輯者 | 可透過控制台或 API 更新、查詢特定流程,以及建立、更新、刪除或查詢流程資源 (頁面、路徑群組和版本)。 | Dialogflow > Dialogflow 流程編輯者 |
| 環境編輯器 | 可更新、查詢特定環境,以及透過控制台或 API 建立、更新、刪除或查詢環境資源 (實驗)。 | Dialogflow > Dialogflow 環境編輯者 |
| 實體類型管理員 | 可透過控制台或 API 建立、更新、刪除或查詢代理的實體類型。 | Dialogflow > Dialogflow 實體類型管理員 |
| 意圖管理員 | 可透過控制台或 API 建立、更新、刪除或查詢代理的意圖。 | Dialogflow > Dialogflow 意圖管理員 |
| 測試案例管理員 | 可透過控制台或 API 建立、更新、刪除或查詢代理的測試案例。 | Dialogflow > Dialogflow 測試案例管理員 |
| Webhook 管理員 | 可透過控制台或 API 建立、更新、刪除或查詢代理的 Webhook。 | Dialogflow > Dialogflow Webhook 管理員 |
在代理程式的設定中可找到共用選項。如何開啟代理程式的共用設定:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 按一下「Agent Settings」(代理程式設定)。
- 按一下 [Share] (共用) 分頁標籤。
新增主體
- 按一下「新增」。
- 輸入使用者、群組或服務帳戶的電子郵件地址。
- 選取「使用者」、「群組」或「服務帳戶」做為電子郵件類型。
- 系統預設會新增「Dialogflow 讀取者」角色,使用者必須具備這個角色,才能存取 Conversational Agents 控制台。
- 按一下「指派角色」下方的「新增角色」。
- 在「Type」(類型) 下方選取角色類型。
- 針對「Flow Editor」和「Environment Editor」角色,選取特定流程或環境,或保留預設的「All」選項。
- (選用) 設定角色的到期日。
- 按一下 [儲存]。
變更主體角色
- 在清單中按一下主體。
- 在彈出式視窗中更新這個主體的角色。
- 按一下 [儲存]。
移除主體
- 在清單中找出主體。
- 按一下主體的刪除 delete 按鈕。
- 按一下 [確定]。
使用 Google Cloud 控制台控管存取權
您可以透過 IAM 設定控管存取權。如需新增、編輯及移除權限的詳細操作說明,請參閱身分與存取權管理快速入門導覽課程。
在專案中新增使用者或服務帳戶
您可以將 Google Cloud 專案的角色授予使用者或服務帳戶,藉此提供權限。只要提供使用者的電子郵件地址即可新增使用者,服務帳戶也是透過提供相關聯的電子郵件地址來進行新增。如要將一個服務帳戶用於多項專案,則須新增服務帳戶。如要找出與服務帳戶相關聯的電子郵件地址,請前往 Google Cloud 控制台的 IAM「Service Accounts」(服務帳戶) 頁面。
如要新增主體,請按照下列步驟操作:
- 按一下頁面頂端的「新增」按鈕 。
- 輸入主體的電子郵件地址。
- 選取一個角色。
- 按一下 [Save] (儲存)。
變更權限
- 按一下主體的「編輯」 按鈕。
- 選取其他角色。
- 按一下 [儲存]。
移除主體
- 按一下主體的刪除按鈕 。
新增條件,限制單一代理的存取權
新增或編輯主體時,您可以建立 IAM 條件,限制只能存取一個代理。
例如:
{
"expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
"title": "For Dialogflow CX Agent AGENT_ID"
}
這項條件可讓您取得特定代理的基本存取權。舉例來說,如果服務帳戶具備這項條件,就只能呼叫 Dialogflow CX API,存取專案條件中指定的代理,但無法存取專案中的其他代理。
如要將這項條件新增至授予主體的角色,請按照下列步驟操作:
- 選取主體。
- 按一下主體的「編輯」 按鈕。
- 按一下「新增條件」。
- 在「Title」(標題) 欄位中輸入
For Dialogflow CX Agent AGENT_ID,並將 AGENT_ID 替換為您的代理 ID。 - 您可以新增任何說明。
- 選取「條件編輯器」建立條件。
- 新增運算式
resource.name.startsWith("projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID"),並將 AGENT_ID 替換為代理 ID,PROJECT_ID 替換為專案 ID。 - 按一下 [儲存]。
IAM 角色
下表列出與 Dialogflow CX 相關的常見 IAM 角色。表格中的權限摘要使用下列詞彙:
- 完整存取權:可修改存取權,以及建立、刪除、編輯和讀取任何資源。
- 編輯權限:可建立、刪除、編輯及讀取任何資源。
- 工作階段存取權:在對話期間呼叫僅限執行階段資源的方法,例如偵測意圖、更新情境、更新工作階段實體,或 Agent Assist 對話互動。
- 讀取權限:可讀取任何資源。
| IAM 角色 | 權限摘要 | 權限詳細資料 |
|---|---|---|
| 專案 > 擁有者 |
授予需要所有 Google Cloud 和 Dialogflow CX 資源完整存取權的專案擁有者:
|
請參閱 IAM 基本角色定義。 |
| 專案 > 編輯者 |
授予需要所有 Google Cloud 和 Dialogflow CX 資源編輯權限的專案編輯者:
|
請參閱 IAM 基本角色定義。 |
| 專案 > 檢視者 |
授予需要所有 Google Cloud 和 Dialogflow CX 資源讀取權限的專案檢視者:
|
請參閱 IAM 基本角色定義。 |
| 專案 > IAM 管理員 |
授予需要 Dialogflow CX 代理角色設定編輯權限的專案 IAM 管理員。 | 請參閱 IAM Resource Manager 角色定義。 |
| 專案 > 瀏覽者 |
授予需要讀取權限,才能瀏覽專案階層 (包括資料夾、組織和 IAM 政策) 的專案瀏覽者:
|
請參閱 IAM 專案角色定義。 |
| Dialogflow > Dialogflow API 管理員 |
授予需要 Dialogflow CX 專屬資源完整存取權的 Dialogflow CX API 管理員:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Dialogflow API 用戶端 |
授予使用 API 執行偵測意圖呼叫的 Dialogflow CX API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Conversational Agents 控制台代理編輯者 |
授予 Conversational Agents 控制台編輯者,用於編輯現有代理:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Dialogflow API 讀取者 |
授予使用 API 執行 Dialogflow CX 專屬唯讀呼叫的 Dialogflow API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
| Discovery Engine 管理員 | 授予使用 Vertex AI Agents 使用者介面建立資料儲存庫 AI 代理的使用者。 | 請參閱 Discovery Engine IAM 角色定義。 |
OAuth
如果您使用 Google 用戶端程式庫存取 Dialogflow CX,則不需要直接使用 OAuth,因為這些程式庫會為您處理實作。不過,如果您要導入自己的用戶端,可能需要導入自己的 OAuth 流程。如要存取 Dialogflow CX API,必須具備下列其中一個 OAuth 範圍:
https://www.googleapis.com/auth/cloud-platform(可存取所有專案資源)https://www.googleapis.com/auth/dialogflow(可存取 Dialogflow CX 資源)
涉及 Cloud Storage 存取權的要求
部分 Dialogflow CX 要求會存取 Cloud Storage 中的物件,以便讀取或寫入資料。當您呼叫其中一項要求時,Dialogflow CX 會代表呼叫者存取 Cloud Storage 資料。也就是說,要求驗證必須具備 Dialogflow CX 和 Cloud Storage 物件的存取權限。
使用 Google 用戶端程式庫和 IAM 角色時,請參閱 Cloud Storage 存取控管指南,瞭解 Cloud Storage 角色。
實作自己的用戶端並使用 OAuth 時,必須使用下列 OAuth 範圍:
https://www.googleapis.com/auth/cloud-platform(可存取所有專案資源)
Playbook 工具存取權的自訂角色
您可以使用權限和自訂角色,精細控管 playbook 工具的存取控管。
如要列出可用權限,請前往權限搜尋工具,然後搜尋 dialogflow.tools。
您可以使用這些權限建立自訂角色。