多名团队成员通常会协作构建代理,并且服务会访问该代理。 使用角色,您可以控制授予主账号的访问和操作权限。
您可以使用对话式代理控制台或使用 Google Cloud 控制台(访问文档、打开控制台)以及 Identity and Access Management (IAM) 来配置访问权限。 Google Cloud 控制台用于向主账号授予 IAM 角色,而 Conversational Agents 控制台用于向主账号授予 Dialogflow CX 代理角色。Dialogflow CX 代理角色是 Dialogflow CX 定义的便捷预定义角色,用于限制对某个代理或特定代理的子资源的访问权限。
在以下情况下,您必须使用 Google Cloud 控制台:
- 系统默认已将 IAM Project Owner 角色授予创建拥有代理的项目的用户。此所有者拥有项目中所有代理的完全访问权限。如果要更改项目所有者,则需要使用 Google Cloud 控制台。
- 通过 Dialogflow CX 控制台只能配置代理级别的访问权限。如果要配置项目级层的访问权限,则需要使用 Google Cloud 控制台。
- 部分 IAM 角色具有相应的 Dialogflow CX 代理角色。如果要授予 Dialogflow CX 控制台上不存在的项目级层角色或代理级层角色,则需要使用 Google Cloud 控制台。
- 如果您要使用 Vertex AI Agents 界面创建数据存储区代理,则需要使用 Google Cloud 控制台。
如果您使用的是 API,则您可能还有一个或多个向代理发送请求的应用。在这种情况下,您可以使用服务账号来控制访问权限。
通过 Conversational Agents 控制台控制访问权限
利用对话式代理控制台,您可以应用为代理级层共享配置的便捷代理角色。这些角色与具有 IAM 条件的 IAM 角色相关联,而 IAM 条件用于限制特定代理或代理的一部分子资源的访问权限。
如需从对话式代理控制台访问代理角色配置,您必须具有关联项目的 Project IAM Admin 角色。此角色通过 Google Cloud 控制台授予。
| Dialogflow CX 代理角色 | 摘要 | IAM 角色 |
|---|---|---|
| 对话式阅读器 | 提供从控制台或 API 查询代理(不检测意图)的读取权限。 | Dialogflow > Dialogflow API 阅读者 |
| Conversational Admin | 提供通过控制台或 API 创建、更新、查询、检测意图以及删除代理的完整访问权限。 | Dialogflow > Dialogflow API Admin |
| 对话式客户端 | 提供通过控制台或 API 检测意图的权限。 | Dialogflow > Dialogflow API Client |
| 服务代理 | 请参阅服务代理 | 请参阅服务代理 |
| Flow editor | 提供通过控制台或 API 更新、查询特定流以及创建、更新、删除或查询流资源(页面、路由组和版本)的权限。 | Dialogflow > Dialogflow Flow editor |
| Environment editor | 提供通过控制台或 API 更新、查询特定环境以及创建、更新、删除或查询环境资源(实验)的权限。 | Dialogflow > Dialogflow Environment editor |
| Entity Type Admin | 提供通过控制台或 API 创建、更新、删除或查询代理的实体类型的权限。 | Dialogflow > Dialogflow Entity Type Admin |
| Intent Admin | 提供通过控制台或 API 创建、更新、删除或查询代理意图的权限。 | Dialogflow > Dialogflow Intent Admin |
| Test Case Admin | 提供通过控制台或 API 创建、更新、删除或查询代理的测试用例的权限。 | Dialogflow > Dialogflow Test Case Admin |
| Webhook Admin | 提供通过控制台或 API 创建、更新、删除或查询代理的网络钩子的权限。 | Dialogflow > Dialogflow Webhook Admin |
共享选项位于代理的设置中。 要打开代理共享设置,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 点击代理设置。
- 点击共享标签页。
添加主账号
- 点击添加。
- 输入用户、群组或服务账号的电子邮件地址。
- 对于电子邮件类型,选择用户、群组或服务账号。
- 系统默认会添加 Dialogflow Reader 角色,用户需要该角色才能访问对话智能体控制台。
- 点击分配角色下的添加角色。
- 在类型下选择角色类型。
- 对于 Flow Editor 和 Environment Editor 角色,选择特定流或环境或保留默认的全部选项。
- (可选)设置角色的失效日期。
- 点击保存。
更改主账号角色
- 在列表中点击主账号。
- 在弹出式窗口中更新此主账号的角色。
- 点击保存。
移除主账号
- 在列表中找到主账号。
- 点击该主账号对应的删除 delete 按钮。
- 点击确定。
使用 Google Cloud 控制台控制访问权限
您可以使用 IAM 设置来控制访问权限。如需详细了解添加、修改和移除权限的说明,请参阅 IAM 快速入门。
将用户或服务账号添加到项目中
您可以通过向用户或服务账号授予 Google Cloud 项目的角色来向其提供权限。添加用户的方法是提供该用户的电子邮件地址。 同样,添加服务账号的方法是提供与该服务账号关联的电子邮件地址。 如果要针对多个项目使用一个服务账号,则需要添加服务账号。如需查找与您的服务账号关联的电子邮件地址,请参阅 Google Cloud 控制台中的 IAM 服务账号页面。
要添加主账号,请执行以下操作:
- 点击页面顶部的添加 按钮。
- 输入主账号的电子邮件地址。
- 选择角色。
- 点击保存。
更改权限
- 点击该主账号对应的修改 按钮。
- 选择其他角色。
- 点击保存。
移除主账号
- 点击该主账号对应的删除 按钮。
添加条件以限制对一个代理的访问
添加或修改主账号时,您可以创建一个 IAM 条件来限制对一个代理的访问。
例如:
{
"expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
"title": "For Dialogflow CX Agent AGENT_ID"
}
此条件授予您对特定代理的基本访问权限。例如,具有此条件的服务账号只能调用 Dialogflow CX API 来访问在项目条件中指定的代理,而不能访问项目中的其他代理。
要将此条件添加到授予主账号的角色,请执行以下操作:
- 选择主账号。
- 点击该主账号对应的修改 按钮。
- 点击添加条件。
- 在标题字段中,输入
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 角色 | 权限总结 | 权限详细信息 |
|---|---|---|
| Project > Owner |
向需要完整访问所有 Google Cloud 和 Dialogflow CX 资源的项目所有者授予:
|
请参阅 IAM 基本角色定义。 |
| Project > Editor |
向需要所有 Google Cloud 和 Dialogflow CX 资源编辑权限的项目编辑者授予:
|
请参阅 IAM 基本角色定义。 |
| Project > Viewer |
向需要所有 Google Cloud 和 Dialogflow CX 资源读取权限的项目查看者授予:
|
请参阅 IAM 基本角色定义。 |
| Project > IAM Admin |
向需要 Dialogflow CX 代理角色配置修改权限的项目 IAM 管理员授予。 | 请参阅 IAM 资源管理员角色定义。 |
| Project > Browser |
向需要读取权限以浏览项目层次结构(包括文件夹、组织和 IAM 政策)的项目浏览者授予:
|
请参阅 IAM 项目角色定义。 |
| Dialogflow > Dialogflow API Admin |
向需要 Dialogflow CX 特定资源完整访问权限的 Dialogflow CX API 管理员授予:
|
请参阅 Dialogflow IAM 角色定义。 |
| Dialogflow > Dialogflow API Client |
向使用 API 执行检测意图调用的 Dialogflow CX API 客户端授予:
|
请参阅 Dialogflow IAM 角色定义。 |
| Dialogflow > 对话代理控制台代理编辑器 |
向修改现有代理的对话智能体控制台编辑者授予:
|
请参阅 Dialogflow IAM 角色定义。 |
| Dialogflow > Dialogflow API Reader |
向使用 Dialogflow API 执行 Dialogflow CX 特定只读调用的 Dialogflow API 客户端授予:
|
请参阅 Dialogflow IAM 角色定义。 |
| Discovery Engine Admin | 授予通过 Vertex AI Agents 界面创建数据存储区代理的用户。 | 请参阅 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 工具的自定义角色
您可以使用权限和自定义角色为剧本工具提供精细的访问权限控制。
您可以访问权限搜索工具并搜索 dialogflow.tools,以列出可用的权限。
您可以使用这些权限创建自定义角色。