代理程式經常是由多名小組成員合作建構,且服務會存取代理程式。使用「角色」即可控管存取權,並將權限授予「主體」。
您可以使用 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 Conversation 使用者介面建立資料儲存庫虛擬服務專員,請使用 Google Cloud 控制台。
如果使用 API,可能也有一個或多個應用程式會傳送要求至代理程式。在這種情況下,您可以使用服務帳戶控管存取權。
使用 Conversational Agents 控制台控管存取權
您可以在 Conversational Agents 控制台中,套用為代理程式層級共用設定的代理程式角色。這些角色與具有 IAM 條件 的 IAM 角色相關,可限制對特定代理程式或代理程式子項資源子集的存取權。
如要透過對話式代理程式控制台存取代理程式角色設定,您必須獲得相關聯專案的專案 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 用戶端) |
| 服務代理 | 請參閱「服務代理」一節 | 請參閱「服務代理」一節 |
| 流程編輯器 | 提供存取權,可透過主控台或 API 更新及查詢特定流程,並建立、更新、刪除或查詢流程資源 (頁面、路徑群組和版本)。 | Dialogflow > Dialogflow 流程編輯者 |
| 環境編輯器 | 可透過控制台或 API 更新及查詢特定環境,並建立、更新、刪除或查詢環境資源 (實驗)。 | Dialogflow > Dialogflow 環境編輯者 |
| 實體類型管理員 | 可透過主控台或 API 建立、更新、刪除或查詢代理程式的實體類型。 | Dialogflow > Dialogflow 實體類型管理員 |
| 意圖管理員 | 提供權限,可透過控制台或 API 建立、更新、刪除或查詢代理程式的意圖。 | Dialogflow > Dialogflow Intent Admin (Dialogflow 意圖管理員) |
| 測試案例管理員 | 可透過控制台或 API 建立、更新、刪除或查詢代理程式的測試案例。 | Dialogflow > Dialogflow 測試案例管理員 |
| Webhook 管理員 | 提供權限,可從主控台或 API 建立、更新、刪除或查詢代理程式的 Webhook。 | Dialogflow > Dialogflow Webhook Admin (Dialogflow Webhook 管理員) |
在代理程式的設定中可找到共用選項。如何開啟代理程式的共用設定:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 按一下「Agent Settings」(代理程式設定)。
- 按一下 [Share] (共用) 分頁標籤。
新增主體
- 按一下「新增」。
- 輸入使用者、群組或服務帳戶的電子郵件地址。
- 選取「使用者」、「群組」或「服務帳戶」做為電子郵件類型。
- 系統預設會新增「Dialogflow Reader」角色,使用者必須具備這個角色才能存取對話式代理程式控制台。
- 在「指派角色」下方按一下「新增角色」。
- 在「類型」下方選取角色類型。
- 針對「流程編輯器」和「環境編輯器」角色,選取特定流程或環境,或保留預設的「全部」選項。
- (選用) 設定角色的到期日。
- 按一下 [儲存]。
變更主體角色
- 按一下清單中的主體。
- 在彈出式視窗中更新這個主體的角色。
- 按一下 [儲存]。
移除主體
- 在清單中找出主體。
- 按一下主體的刪除 delete 按鈕。
- 按一下 [確定]。
使用 Google Cloud 控制台控管存取權
您可以使用 IAM 設定控管存取權。如需新增、編輯及移除權限的詳細操作說明,請參閱身分與存取權管理快速入門導覽課程。
如要存取下列設定,請在 Google Cloud 控制台中開啟「IAM」頁面。
在專案中新增使用者或服務帳戶
您可以將角色授予 Google Cloud 專案中的使用者或服務帳戶,藉此提供權限。只要提供使用者的電子郵件地址即可新增使用者,服務帳戶也是透過提供相關聯的電子郵件地址來進行新增。如果您想在多個專案使用單一服務帳戶,則需要新增服務帳戶。如要找出與服務帳戶相關聯的電子郵件地址,請在 Google Cloud 控制台中查看 IAM「服務帳戶」頁面。
如要新增主體,請按照下列步驟操作:
- 按一下頁面頂端的新增 按鈕。
- 輸入主體的電子郵件地址。
- 選取一個角色。
- 按一下 [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 管理員 |
授予專案 IAM 管理員權限,讓他們編輯 Dialogflow CX 虛擬服務專員角色設定。 | 請參閱 IAM 資源管理員角色定義。 |
| 專案 > 瀏覽者 |
授予專案瀏覽者權限,讓他們擁有瀏覽專案階層的讀取權限,包括資料夾、機構和 IAM 政策:
|
請參閱 IAM 專案角色定義。 |
| Dialogflow > Dialogflow API 管理員 |
授予 Dialogflow CX API 管理員權限,
讓他們具備 Dialogflow CX 專屬資源的完整存取權:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Dialogflow API 用戶端 |
授予給使用 API 執行意圖偵測呼叫的 Dialogflow CX API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Conversational Agents 控制台代理程式編輯者 |
授予對話式代理主控台編輯者權限,編輯現有代理程式:
|
請參閱 Dialogflow IAM 角色定義。 |
| Dialogflow > Dialogflow API 讀取者 |
授予給使用 API 執行 Dialogflow CX 專屬唯讀呼叫的 Dialogflow API 用戶端:
|
請參閱 Dialogflow IAM 角色定義。 |
| Discovery Engine 管理員 | 授予權限給透過 Vertex AI Agents 使用者介面建立資料儲存庫虛擬服務專員的使用者。 | 請參閱其他角色定義。 |
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(可存取所有專案資源)
應對手冊工具存取權的自訂角色
您可以透過權限和自訂角色,為劇本工具提供精細的存取權控管。
如要列出可用權限,請前往權限搜尋工具,然後搜尋 dialogflow.tools。
您可以使用這些權限建立自訂角色。