访问权限控制

多个团队成员协作构建代理以及服务访问代理是很常见的。您可以使用角色控制授予主账号的访问权限和权限。

您可以使用对话智能体控制台或通过 Identity and Access Management (IAM) 使用 Google Cloud 控制台(访问文档,打开控制台)来配置访问权限。 Google Cloud 控制台用于向主体授予 IAM 角色,而 Conversational Agents 控制台用于向主体授予 Dialogflow CX 智能体角色。Dialogflow CX 智能体角色是 Dialogflow CX 定义的便捷预定义角色,用于限制对一个智能体或特定智能体的子资源的访问权限。

在某些情况下,您必须使用 Google Cloud 控制台:

  • 系统默认已将 IAM Project Owner 角色授予创建拥有代理的项目的用户。此所有者拥有项目中所有代理的完全访问权限。如果您想更改 Project Owner,则需要使用 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 控制台访问智能体角色配置,您必须获得关联项目的 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

共享选项位于代理的设置中。 要打开代理共享设置,请执行以下操作:

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击代理设置。
  5. 点击共享标签页。

添加主账号

  1. 点击添加。
  2. 输入用户、群组或服务账号的电子邮件地址。
  3. 对于电子邮件类型,选择用户、群组或服务账号。
  4. 系统会默认添加 Dialogflow Reader 角色,用户需要该角色才能访问 Conversational Agents 控制台。
  5. 点击分配角色下的添加角色。
  6. 在类型下选择角色类型。
  7. 对于 Flow Editor 和 Environment Editor 角色,选择特定流或环境或保留默认的全部选项。
  8. (可选)设置角色的失效日期。
  9. 点击保存。

更改主账号角色

  1. 在列表中点击主账号。
  2. 在弹出式窗口中更新此主账号的角色。
  3. 点击保存。

移除主账号

  1. 在列表中找到主账号。
  2. 点击该主账号对应的删除 按钮。
  3. 点击确定。

使用 Google Cloud 控制台控制访问权限

您可以使用 IAM 设置来控制访问权限。如需详细了解添加、修改和移除权限的说明,请参阅 IAM 快速入门。

将用户或服务账号添加到项目中

您可以通过为用户或服务账号授予 Google Cloud 项目中的角色来向其提供权限。添加用户的方法是提供该用户的电子邮件地址。 同样,添加服务账号的方法是提供与该服务账号关联的电子邮件地址。 如果要针对多个项目使用一个服务账号,则需要添加服务账号。如需查找与您的服务账号关联的邮箱,请参阅 Google Cloud 控制台中的 IAM 服务账号页面。

要添加主账号,请执行以下操作:

  1. 点击页面顶部的添加 按钮。
  2. 输入主账号的电子邮件地址。
  3. 选择角色。
  4. 点击保存。

更改权限

  1. 点击该主账号对应的修改 按钮。
  2. 选择其他角色。
  3. 点击保存。

移除主账号

  1. 点击该主账号对应的删除 按钮。

添加条件以限制对一个代理的访问

添加或修改主账号时,您可以创建 IAM 条件,以限制对一个智能体的访问权限。

例如:

{
    "expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
    "title": "For Dialogflow CX Agent AGENT_ID"
}

此条件授予您对特定代理的基本访问权限。例如,具有此条件的服务账号只能调用 Dialogflow CX API 来访问项目中条件中指定的代理,而不能访问项目中的其他代理。

要将此条件添加到授予主账号的角色,请执行以下操作:

  1. 选择主账号。
  2. 点击该主账号对应的修改 按钮。
  3. 点击添加条件。
  4. 在标题字段中,输入 For Dialogflow CX Agent AGENT_ID,并将 AGENT_ID 替换为您的代理 ID。
  5. 您可以添加任何说明。
  6. 选择条件编辑器以创建条件。
  7. 添加表达式 resource.name.startsWith("projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID"),将 AGENT_ID 替换为您的代理 ID,并将 PROJECT_ID 替换为您的项目 ID。
  8. 点击保存。

IAM 角色

下表列出了与 Dialogflow CX 相关的常见 IAM 角色。 表中的权限总结使用以下术语:

  • 完全访问权限:有权修改访问权限,以及创建、删除、修改和读取任何资源。
  • 编辑权限:有权创建、删除、编辑和读取任何资源。
  • 会话访问权限:在对话期间调用仅限运行时资源的方法(例如检测 intent、更新上下文、更新会话实体或 Agent Assist 对话互动)的权限。
  • 读取权限:读取任何资源的权限。
IAM 角色 权限总结 权限详细信息
Project >
Owner
向需要对所有 Google Cloud 和 Dialogflow CX 资源拥有完整访问权限的 Project Owner 授予权限:
  • 拥有对所有 Google Cloud 项目资源的完整访问权限,可以使用 Google Cloud 控制台或 API。
  • 拥有对使用 Conversational Agents 控制台的智能体的完整访问权限。
  • 使用 API 检测意图的权限。
请参阅 IAM 基本角色定义。
Project >
Editor
向需要对所有 Google Cloud 和 Dialogflow CX 资源拥有编辑权限的项目编辑者授予权限:
  • 使用 Google Cloud 控制台或 API 拥有对所有 Google Cloud 项目资源的编辑权限。
  • 使用 Conversational Agents 控制台修改对智能体的访问权限。
  • 使用 API 检测意图的权限。
请参阅 IAM 基本角色定义。
Project >
Viewer
向需要对所有 Google Cloud 和 Dialogflow CX 资源具有读取权限的项目查看者授予权限:
  • 拥有使用 Google Cloud 控制台或 API 对所有 Google Cloud 项目资源的读取权限。
  • 可以使用 Conversational Agents 控制台或 API 读取智能体,但无法使用模拟器。
  • 无权使用 API 检测意图。
请参阅 IAM 基本角色定义。
Project >
IAM Admin
授予需要对 Dialogflow CX 智能体角色配置具有修改权限的项目 IAM 管理员。 请参阅 IAM 资源管理员角色定义。
Project >
Browser
向需要读取权限以浏览项目层次结构(包括文件夹、组织和 IAM 政策)的项目浏览者授予:
  • 拥有对 Google Cloud 项目层次结构的读取权限。
  • 无法使用 Conversational Agents 控制台访问智能体。
  • 无权使用 API 检测意图。
请参阅 IAM 项目角色定义。
Dialogflow >
Dialogflow API Admin
向需要对 Dialogflow CX 特定资源完整访问权限的 Dialogflow CX API 管理员授予权限:
  • 拥有使用 Google Cloud 控制台或 API 对所有 Dialogflow CX 资源的完整访问权限。
  • 拥有对使用 Conversational Agents 控制台的智能体的完整访问权限。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义。
Dialogflow >
Dialogflow API Client
授予使用 Dialogflow CX API 执行意图检测调用的 Dialogflow CX API 客户端:
  • 使用 Dialogflow CX 模拟器或 API 对运行时 Dialogflow CX 资源的会话访问权限。
  • 通过 Conversational Agents 控制台访问智能体的权限受限。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义。
Dialogflow >
Conversational Agents 控制台 Agent Editor
授予修改现有智能体的 Conversational Agents 控制台编辑者:
  • 拥有使用 Google Cloud 控制台对所有 Dialogflow CX 资源的完整访问权限。
  • 使用 Conversational Agents 控制台修改对大多数代理数据的访问权限。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义。
Dialogflow >
Dialogflow API Reader
授予使用 Dialogflow API 执行 Dialogflow CX 特定只读调用的 Dialogflow API 客户端:
  • 拥有使用 Google Cloud 控制台或 API 对所有 Dialogflow CX 资源的读取权限。
  • 可以使用 Conversational Agents 控制台对智能体进行读取访问,但无法使用模拟器。
  • 无权使用 API 检测意图。
请参阅 Dialogflow IAM 角色定义。
Discovery Engine Admin 授予使用 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,列出可用权限。

您可以使用这些权限创建自定义角色。