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

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

确定授权视图的范围

适当确定授权视图的范围可确保用户仅能访问所需的数据。确定视图范围需要仔细定义每个授权视图公开的数据。范围设置恰当的视图只会允许访问必要的数据,而范围设置不当的视图可能会公开超出预期的数据。

  • 谨慎过滤数据:使用过滤表达式来定义每个授权视图应公开的确切数据。确保过滤条件足够具体,能够满足用户的需求。
  • 针对特定客服人员使用 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.editorroles/contactcenterinsights.viewer 授予对授权视图的项目级权限。对于特定授权视图中的用户,请使用 roles/contactcenterinsights.authorizedEditorroles/contactcenterinsights.authorizedViewer 通过这些视图授予用户访问权限。
  • 避免在项目级层授予授权视图集权限:在项目级层授予授权视图集权限会导致用户能够访问所有授权视图集。请改为在特定的授权视图集上授予这些角色。
  • 为授权视图授予项目级层访问权限时,请遵循最小权限原则:仅授予授权视图所需的最低权限。用户的权限不得超过对项目的授权视图的权限。示例:如果授权视图 view-123 具有 roles/contactcenterinsights.viewer,而用户对授权视图 view-123 具有 roles/contactcenterinsights.authorizedEditor,则该用户无法修改任何内容,因为视图的权限会限制最终权限。
  • 授予对授权视图的访问权限时,请遵循最小权限原则:仅向授权视图授予最低限度的必要权限。例如,如果用户只需要查看特定团队的数据,请向其授予该团队的授权视图集的 roles/contactcenterinsights.authorizedViewer 角色。
    • 通过向授权视图集授予角色,您可以一次性管理多个视图的权限。这样可以降低管理权限的复杂性,并确保用户只能访问所需的数据。
    • 例如,经理可能在其团队的授权视图集中具有 roles/contactcenterinsights.authorizedEditor 角色,而客服人员可能在其自己的对话的授权视图集中具有 roles/contactcenterinsights.authorizedViewer 角色。

使用描述性显示名称

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

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

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

尽量减少每位用户的观看次数

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

  • 隔离用户访问权限:避免在不同用户之间共享授权视图。这样可确保每个用户只能访问其所需的数据。
    • 而是将单个用户的过滤表达式与 OR 结合起来,形成单个授权视图。
    • 这样可减少用户切换视图的需求。
  • 为每个用户按角色创建不同的授权视图:为每个用户按角色创建不同的授权视图。这可确保每个用户都拥有适当级别的访问权限。
    • 例如,为经理创建单独的视图,以区分其对对话的编辑权限和查看权限。

指定派生标识符

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

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

定期检查和更新权限

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

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

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

了解限制

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

授权视图具有以下限制:

  • 无法修改或导入对话数据:授权视图无法用于修改或导入对话数据。
  • 无法训练主题模型或创建统计信息摘要:授权视图无法用于训练主题模型或创建统计信息摘要。