访问权限控制

多名团队成员在构建代理时通常会进行协作。 使用角色,您可以控制授予团队成员的访问和操作权限。

您可以使用 Dialogflow CX 控制台(访问文档打开控制台)或使用 Google Cloud Console(访问文档打开控制台)以及 Identity and Access Management (IAM) 来配置访问权限。Cloud Console 用于添加具有 IAM 角色的成员,而 Dialogflow 控制台用于添加具有 Dialogflow 代理角色的成员。Dialogflow 代理角色是基于 IAM 角色的便捷角色,用于限制对一个代理的访问。

在某些情况下,您必须使用 Google Cloud Console:

  • Dialogflow CX 控制台为创建了代理所属项目的用户提供 IAM Project Owner 角色。此所有者拥有项目中所有代理的完全访问权限。如果要更改项目所有者,则需要使用 Cloud Console。
  • Dialogflow 代理角色仅用于代理级层的访问。如果要配置项目级层的访问权限,则需要使用 Cloud Console。
  • 部分 IAM 角色具有相应的 Dialogflow 代理角色。如果要授予 Dialogflow CX 控制台上不存在的项目级层角色或代理级层角色,则需要使用 Cloud Console。

如果您使用的是 API,则您可能还有一个或多个向代理发送请求的应用。在这种情况下,您可以使用服务帐号来控制访问权限。

通过 Dialogflow CX 控制台控制访问权限

利用 Dialogflow CX 控制台,您可以应用为代理级层共享配置的便捷代理角色。这些角色与具有限制特定代理访问权限的 IAM 条件的 IAM 角色相关联。

Dialogflow 代理角色 总结 IAM 角色
管理员 提供通过控制台或 API 创建、更新、查询、检测意图以及删除代理的完整访问权限。 Dialogflow > Dialogflow API 管理员
阅读者 提供从控制台或 API 查询代理(不检测意图)的读取权限。 Dialogflow > Dialogflow API 阅读者

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

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

添加成员

  1. 邀请新人员下方输入用户或群组的电子邮件地址。
  2. 选择用户群组作为电子邮件类型。
  3. 选择角色。
  4. 点击添加
  5. 点击保存

更改会员角色

  1. 在列表中找到成员。
  2. 选择其他角色。
  3. 点击保存

移除成员

  1. 在列表中找到成员。
  2. 点击该成员对应的删除 按钮。
  3. 点击保存

使用 Cloud Console 控制访问权限

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

要访问以下设置,请打开 Cloud Console 中的 IAM 页面。

将用户或服务帐号成员添加到项目中

您可以通过将用户或服务帐号添加为 GCP 项目的成员来为其应用角色。添加用户的方法是提供该用户的电子邮件地址。 同样,添加服务帐号的方法是提供与该服务帐号关联的电子邮件地址。 如果要针对多个项目使用一个服务帐号,则需要添加服务帐号成员。要查找与您的服务帐号关联的电子邮件地址,请参阅 Cloud Console 中的 IAM 服务帐号页面。

要添加成员,请执行以下操作:

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

更改权限

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

移除成员

  1. 点击该成员对应的删除 按钮。

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

添加或修改成员时,您可以创建一个 IAM 条件来限制对一个代理的访问。

例如:

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

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

如需向成员添加此条件,请执行以下操作:

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

IAM 角色

下表列出了与 Dialogflow CX 相关的所有 IAM 角色。

要修改代理的访问权限或删除代理,您需要一个提供“完整访问权限”的 IAM Project Owner、IAM Project Editor 或 Dialogflow Agent Admin 角色。

IAM 角色 权限总结 权限详细信息
Project >
Owner
向需要所有 Google Cloud 和 Dialogflow 资源的完整访问权限的 Project Owner 授予:
  • 使用 Cloud Console 或 API 完整访问所有 Google Cloud 项目资源的权限。
  • 拥有对 Dialogflow CX 控制台的完整访问权限,可以创建、修改和删除代理。
  • 使用 API 检测意图的权限。
请参阅 IAM 原初角色定义
Project >
Editor
向需要所有 Google Cloud 和 Dialogflow 的资源编辑权限的 Project Editor 授予:
  • 使用 Cloud Console 或 API 修改所有 Cloud 项目资源的权限。
  • 拥有对 Dialogflow CX 控制台的修改权限,可以创建、修改和删除代理。
  • 使用 API 检测意图的权限。
请参阅 IAM 原初角色定义
Project >
Viewer
向需要所有 Google Cloud 和 Dialogflow 资源读取权限的 Project Viewer 授予:
  • 使用 Cloud Console 或 API 读取所有 Cloud 项目资源的权限。
  • 拥有对 Dialogflow CX 控制台的读取权限。
  • 无权使用 API 检测意图。
请参阅 IAM 原初角色定义
Project >
Browser
向需要读取权限以浏览项目层次结构(包括文件夹、组织和 IAM 政策)的项目浏览者授予:
  • 读取 Cloud 项目层次结构的权限。
  • 无权访问 Dialogflow CX 控制台。
  • 无权使用 API 检测意图。
请参阅 IAM 项目角色定义
Dialogflow >
Dialogflow API Admin
向需要 Dialogflow 特定资源完整访问权限的 Dialogflow API 管理员授予:
  • 使用 Cloud Console 或 API 完整访问 Dialogflow 的权限。
  • 拥有对 Dialogflow CX 控制台的完全访问权限。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义
Dialogflow >
Dialogflow API Client
向执行 Dialogflow 特定修改并使用 API 检测意图调用的 Dialogflow API 客户端授予:
  • 使用 Cloud Console 或 API 修改 Dialogflow 的权限。
  • 无权访问 Dialogflow CX 控制台。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义
Dialogflow >
Dialogflow Console Agent Editor
向修改现有代理的 Dialogflow 控制台编辑者授予:
  • 使用 Cloud Console 完整访问 Dialogflow 的权限。
  • 使用 Dialogflow 控制台修改大部分代理数据的编辑权限。
  • 使用 API 检测意图的权限。
请参阅 Dialogflow IAM 角色定义
Dialogflow >
Dialogflow API Reader
向使用 Dialogflow API 执行 Dialogflow 特定只读调用的 Dialogflow API 客户端授予:
  • 使用 Cloud Console 或 API 读取 Dialogflow 的权限。
  • 拥有对 Dialogflow CX 控制台的读取权限。
  • 无权使用 API 检测意图。
请参阅 Dialogflow IAM 角色定义