精细访问权限控制的最佳实践

您可以授予用户对对话数据的特定部分的访问权限,而无需授予他们对整个数据集的访问权限。当您使用授权视图时,可以实现这种精细的访问权限控制。以下建议包含使用授权视图实现精细访问权限控制的最佳实践。

限定授权视图的范围

正确限定授权视图的范围可确保用户只能访问他们所需的数据。限定视图的范围需要仔细定义每个授权视图公开的数据。范围限定正确的视图只会限制对必要数据的访问,而范围限定不正确的视图可能会公开超出预期的数据。

  • 仔细过滤数据: 使用过滤表达式来定义每个授权视图应公开的确切数据。确保过滤条件足够具体,能够满足用户的需求。
  • 针对特定于智能体的视图使用 agent_id: 为智能体创建授权视图 时,请使用 agent_id 字段过滤对话。这样可确保每个智能体只能访问自己的对话。
    • 例如,名为 Carol 的智能体的过滤表达式为 agent_id = "agent-carol"。
  • 针对特定于经理的视图使用 agent_id: 为经理创建授权 视图时,请使用 agent_id 字段过滤其各自团队的对话。
    • 例如,负责 Carol 和 Dave 两位智能体的经理可以使用 过滤表达式 agent_id = "agent-carol" or agent_id = "agent-dave"。
  • 避免使用空过滤条件: 空过滤条件或 "" 允许无限制的访问。

使用授权视图集进行组织

授权视图集可帮助您组织和管理相关的授权视图。 将相关视图分组到集合中可简化一次性授予对多个视图的访问权限的过程。

请遵循以下准则,将授权视图分组到集合中:

  • 对相关视图进行分组: 使用授权视图集对相关角色的授权视图进行分组。
    • 例如,您可以创建一个名为 manager-views 的授权视图集,用于对经理的所有授权视图进行分组。
  • 通过授权视图集级别授予访问权限: 不要针对单个授权视图授予角色,而是针对授权视图集授予角色。
    • 例如,向 agent-views 授权视图集授予 roles/contactcenterinsights.viewer 角色,该视图集包含智能体的所有授权视图。

授予项目访问权限

授予项目访问权限是用户使用控制台并与项目资源互动的前提条件。

  • 向所有授权用户授予roles/browser: 此角色允许用户 查看项目及其资源。这是使用控制台的前提条件。

最小权限原则

最小权限原则是一种安全最佳实践,可确保用户仅拥有执行任务所需的权限。此原则有助于最大限度地降低未经授权访问数据和资源的风险。

请遵循以下准则来应用最小权限原则:

  • 授予必要的最低权限: 仅授予用户执行任务所需的权限。避免授予过于广泛的访问权限。
  • 使用预定义角色: 使用 roles/contactcenterinsights.editor 和 roles/contactcenterinsights.viewer 授予授权视图的项目级权限。针对特定授权视图的用户,使用 roles/contactcenterinsights.authorizedEditor 和 roles/contactcenterinsights.authorizedViewer 通过这些视图授予他们访问权限。
  • 避免针对授权视图集权限授予项目级权限: 在项目级授予授权视图集权限会导致用户可以访问所有授权视图集。请改为针对特定授权视图集授予这些角色。
  • 针对授权视图授予项目级访问权限时,请遵循最小权限原则: 仅授予授权视图所需的最低权限。用户的权限不得超过授权视图对项目的权限。示例:如果授权视图 view-123 具有 roles/contactcenterinsights.viewer,并且用户对授权视图 view-123 具有 roles/contactcenterinsights.authorizedEditor,则用户无法进行任何修改,因为视图的权限会限制最终权限。
  • 授予对授权视图的访问权限时,请遵循最小权限原则: 仅授予授权视图所需的最低权限。 例如,如果用户只需要查看特定团队的数据,请针对该团队的授权视图集向其授予 roles/contactcenterinsights.authorizedViewer 角色。
    • 通过向授权视图集授予角色,您可以一次性管理多个视图的权限。这样可以降低管理权限的复杂性,并确保用户只能访问他们所需的数据。
    • 例如,经理可能对其团队的授权视图集具有 roles/contactcenterinsights.authorizedEditor 角色,而智能体可能对其自己的对话的授权视图集具有 roles/contactcenterinsights.authorizedViewer 角色。

使用描述性显示名称

描述性显示名称有助于您更轻松地了解和管理授权视图和集合。使用有意义的名称有助于快速识别每个资源的用途。

请遵循以下准则来使用描述性显示名称:

  • 使用有意义的显示名称: 创建授权视图和授权视图集时,请使用描述性显示名称,清楚指明视图或集合的用途。这样有助于您更轻松地了解和管理资源。
    • 例如,不要使用 view1,而是使用 Manager Team A Conversations 或 Agent Carol's Conversations 等显示名称。
  • 遵循一致的命名惯例: 为授权视图和集合建立一致的命名惯例。这样有助于您更轻松地查找和管理资源。
    • 例如,您可以使用 [Role] - [Team/Agent] 等惯例。

最大限度地减少每个用户的视图数量

最大限度地减少每个用户的视图数量有助于简化访问权限管理,并确保用户只能访问他们所需的数据。

  • 隔离用户访问权限: 避免在不同用户之间共享授权视图。这样可确保每个用户只能访问他们所需的数据。
    • 请改为将单个用户的过滤表达式与 OR 组合到单个授权视图中。
    • 这样可以减少用户切换视图的需求。
  • 为每个用户按角色创建唯一的授权视图: 为每个用户按角色创建唯一的授权视图。这样可确保每个用户都具有适当的访问权限级别。
    • 例如,为经理的对话修改权限和对话查看权限创建单独的视图。

指定派生标识符

派生标识符有助于识别资源,而无需存储映射。这样可以简化授权视图的管理。

  • 使用派生 ID: 从角色和对话组派生 ID。例如,特定团队的经理角色的授权视图可以具有 manager-team-a 等 ID。这样有助于识别资源,而无需存储其他状态。
    • 例如,管理团队 A 的名为 Bob 的经理的授权视图可以具有 manager-bob-team-a 等 ID。名为 Carol 的智能体的授权视图可以具有 agent-carol 等 ID。

定期审核和更新权限

定期审核和更新权限可确保用户拥有访问所需数据的适当权限级别。这有助于维护安全性和合规性。

请遵循以下准则来更新权限:

  • 撤消不必要的访问权限: 移除不再需要权限的用户的权限。
  • 更新过滤条件: 根据需要更新授权视图的过滤表达式,以反映组织或业务需求的变化。

了解限制

授权视图在用途方面存在一定的限制。在设计访问权限控制策略时,务必了解这些限制。

授权视图具有以下限制:

  • 无法修改或导入对话数据: 授权视图无法用于修改或导入对话数据。
  • 无法训练主题模型或创建记分卡: 授权视图无法用于训练主题模型或创建记分卡。