访问权限控制

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

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

您可以使用身份和访问权限管理 (IAM)Dialogflow 控制台来控制访问权限。在某些情况下,您必须使用 Google Cloud Console:

  • Dialogflow 控制台为创建代理的用户提供 Owner/Admin 角色。如果要更改 Owner/Admin、为一个代理添加多个 Owner/Admin,或者为代理移除 Owner/Admin,则需要使用 Cloud Console。
  • 如果与其他 Google Cloud 资源(如 Cloud Functions)集成,并且不希望为应用授予完整项目访问权限,则必须在 Cloud Console 中为 IAM 分配 Dialogflow API 角色(Admin、Client 或 Reader)。
  • 一部分 IAM 角色具有相应的 Dialogflow 控制台角色。 如果要授予 Dialogflow 控制台上不存在的角色,则需要使用 Cloud Console。

角色

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

若要修改代理的访问权限或删除代理,您需要一个提供“完整访问权限”的 Owner/Admin 角色。

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

使用 Cloud Console 控制访问权限

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

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

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

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

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

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

更改权限

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

移除成员

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

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

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

  1. 转到 Dialogflow 控制台
  2. 在左侧边栏菜单顶部附近选择您的代理。
  3. 点击代理名称旁边的设置 按钮。
  4. 点击共享 (Share) 标签页。如果您没有所需的 Owner/Admin 角色,则无法看到共享 (Share) 标签页。

显示用户及其访问权限级别的“共享”标签页。

添加用户

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

更改权限

  1. 在列表中查找该用户。
  2. 选择其他角色。
  3. 点击保存

移除用户

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

自动创建的服务帐号

创建并使用代理时,Dialogflow 会自动创建一些服务帐号。访问 IAM 服务帐号页面,查看项目的服务帐号列表。您不应删除、修改或下载其中任何服务帐号的密钥,也不应使用这些服务帐号进行直接 API 调用。它们只能由 Dialogflow 服务用于连接到代理使用的各种 Google Cloud 服务。配置某些 Dialogflow 功能时,您可能需要通过电子邮件引用这些服务帐号。下表介绍其中一些服务帐号:

IAM 电子邮件表单 目的
dialogflow-alphanum
@project-id.iam.gserviceaccount.com
Dialogflow 模拟器用于调用 Dialogflow API。这是在 Dialogflow 控制台的代理常规设置页面上显示的服务帐号。
service-project-num
@gcp-sa-dialogflow.iam.gserviceaccount.com
用于将您的代理连接到处理集成流量的服务。
firebase-adminsdk-alphanum
@project-id.iam.gserviceaccount.com
用于将代理连接到处理 Google 助理集成流量的服务。
project-id
@appspot.gserviceaccount.com
用于将代理连接到处理 Google 助理集成流量的服务。