多名团队成员在构建代理时通常会进行协作。 使用角色,您可以控制授予团队成员的访问和操作权限。
您可以使用 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 阅读者 |
共享选项位于代理的设置中。 要打开代理共享设置,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择 GCP 项目。
- 选择您的代理。
- 点击代理设置。
- 点击共享标签页。
添加成员
- 在邀请新人员下方输入用户或群组的电子邮件地址。
- 选择用户或群组作为电子邮件类型。
- 选择角色。
- 点击添加。
- 点击保存。
更改会员角色
- 在列表中找到成员。
- 选择其他角色。
- 点击保存。
移除成员
- 在列表中找到成员。
- 点击该成员对应的删除 delete 按钮。
- 点击保存。
使用 Cloud Console 控制访问权限
您可以使用 IAM 设置来控制访问权限。如需详细了解添加、修改和移除权限的说明,请参阅 IAM 快速入门。
要访问以下设置,请打开 Cloud Console 中的 IAM 页面。
将用户或服务帐号成员添加到项目中
您可以通过将用户或服务帐号添加为 GCP 项目的成员来为其应用角色。添加用户的方法是提供该用户的电子邮件地址。 同样,添加服务帐号的方法是提供与该服务帐号关联的电子邮件地址。 如果要针对多个项目使用一个服务帐号,则需要添加服务帐号成员。要查找与您的服务帐号关联的电子邮件地址,请参阅 Cloud Console 中的 IAM 服务帐号页面。
要添加成员,请执行以下操作:
- 点击页面顶部的添加 按钮。
- 输入该成员的电子邮件地址。
- 选择角色。
- 点击保存。
更改权限
- 点击该成员对应的修改 按钮。
- 选择其他角色。
- 点击保存。
移除成员
- 点击该成员对应的删除 按钮。
添加条件以限制对一个代理的访问
添加或修改成员时,您可以创建一个 IAM 条件来限制对一个代理的访问。
例如:
{
"expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/global/agents/AGENT_ID\")",
"title": "For Dialogflow Agent AGENT_ID"
}
此条件授予您对特定代理的基本访问权限。例如,具有此条件的服务帐号只能调用 Dialogflow API 来访问在项目条件中指定的代理,而不能访问项目中的其他代理。
如需向成员添加此条件,请执行以下操作:
- 选择一个成员。
- 点击该成员对应的修改 按钮。
- 点击添加条件。
- 在标题字段中,输入
For Dialogflow Agent AGENT_ID
,并将 AGENT_ID 替换为您的代理 ID。 - 您可以添加任何说明。
- 选择条件编辑器以创建条件。
- 添加表达式
resource.name.startsWith("projects/PROJECT_ID/locations/global/agents/AGENT_ID")
,将 AGENT_ID 替换为您的代理 ID,并将 PROJECT_ID 替换为您的项目 ID。 - 点击保存。
IAM 角色
下表列出了与 Dialogflow CX 相关的所有 IAM 角色。
要修改代理的访问权限或删除代理,您需要一个提供“完整访问权限”的 IAM Project Owner、IAM Project Editor 或 Dialogflow Agent Admin 角色。
IAM 角色 | 权限总结 | 权限详细信息 |
---|---|---|
Project > Owner |
向需要所有 Google Cloud 和 Dialogflow 资源的完整访问权限的 Project Owner 授予:
|
请参阅 IAM 基本角色定义。 |
Project > Editor |
向需要所有 Google Cloud 和 Dialogflow 的资源编辑权限的 Project Editor 授予:
|
请参阅 IAM 基本角色定义。 |
Project > Viewer |
向需要所有 Google Cloud 和 Dialogflow 资源读取权限的 Project Viewer 授予:
|
请参阅 IAM 基本角色定义。 |
Project > Browser |
向需要读取权限以浏览项目层次结构(包括文件夹、组织和 IAM 政策)的项目浏览者授予:
|
请参阅 IAM 项目角色定义。 |
Dialogflow > Dialogflow API Admin |
向需要 Dialogflow 特定资源完整访问权限的 Dialogflow API 管理员授予:
|
请参阅 Dialogflow IAM 角色定义。 |
Dialogflow > Dialogflow API Client |
向执行 Dialogflow 特定修改并使用 API 检测意图调用的 Dialogflow API 客户端授予:
|
请参阅 Dialogflow IAM 角色定义。 |
Dialogflow > Dialogflow Console Agent Editor |
向修改现有代理的 Dialogflow 控制台编辑者授予:
|
请参阅 Dialogflow IAM 角色定义。 |
Dialogflow > Dialogflow API Reader |
向使用 Dialogflow API 执行 Dialogflow 特定只读调用的 Dialogflow API 客户端授予:
|
请参阅 Dialogflow IAM 角色定义。 |