

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Connect 中应用基于层次结构的访问控制
<a name="hierarchy-based-access-control"></a>

您可以根据分配给用户的座席层次结构限制对联系的访问权限。您可以使用安全配置文件权限（例如[限制联系访问](contact-search.md#required-permissions-search-contacts)）完成这一工作。除了这些权限之外，您还可以使用层次结构来强制执行对资源（例如用户）的精细化访问控制，并且也可以使用标签。

本主题介绍有关配置基于层次结构的访问控制的信息。

**Topics**
+ [概述](#hierarchy-based-access-control-background)
+ [使用 API/SDK 应用基于层次结构的访问控制](#hierarchy-based-access-control-api-sdk)
+ [使用 Amazon Connect 管理网站应用基于层次结构的访问控制](#hierarchy-based-access-control-console)
+ [配置限制](#hierarchy-based-access-control-config-limitations)
+ [应用基于层次结构的访问控制的最佳实践](#hierarchy-based-access-control-best-practices)

## 概述
<a name="hierarchy-based-access-control-background"></a>

基于层次结构的访问控制使您能够根据分配给用户的[代理层次结构](agent-hierarchy.md)配置对特定资源的精细访问权限。 您可以使用 API/SDK 或 Amazon Connect 管理员网站配置基于层次结构的访问控制。 

唯一支持基于层次结构的访问控制的资源是用户。此授权模型与[基于标签的访问控制](tag-based-access-control.md)协同工作，因此您可以限制用户的访问权限，允许他们仅查看属于其同一层次结构组以及带有特定标签的其他用户。

**注意**  
对用户应用基于层次结构的访问控制后，他们可以访问其层次结构组及其所有后代（超出子级别）。

## 使用 API/SDK 应用基于层次结构的访问控制
<a name="hierarchy-based-access-control-api-sdk"></a>

要使用层次结构来控制对 AWS 账户内资源的访问权限，您需要在 IAM 策略的条件元素中提供层次结构的信息。例如，要控制对属于特定层次结构的用户的访问权限，可使用 `connect:HierarchyGroupL3Id/hierarchyGroupId` 条件键以及特定的操作符（如 `StringEquals`）来指定用户必须属于哪个层次结构组才能被允许执行给定的操作。

支持的条件键如下所示：

1. `connect:HierarchyGroupL1Id/hierarchyGroupId`

1. `connect:HierarchyGroupL2Id/hierarchyGroupId`

1. `connect:HierarchyGroupL3Id/hierarchyGroupId`

1. `connect:HierarchyGroupL4Id/hierarchyGroupId`

1. `connect:HierarchyGroupL5Id/hierarchyGroupId`

每个键都代表用户层次结构中特定层级上的一个给定层次结构组的 ID。

## 使用 Amazon Connect 管理网站应用基于层次结构的访问控制
<a name="hierarchy-based-access-control-console"></a>

 要使用层次结构来控制对 Amazon Connect 管理网站资源的访问，请在给定的安全配置文件中配置访问控制部分。

 例如，要基于用户所属的层次结构来为其启用精细化访问控制，您需要将该用户配置为一个访问受控的资源。为此，您有以下两个选项：

1. 根据**用户的层次结构**实施基于层次结构的访问控制

   此选项确保被授予访问权限的用户只能管理属于此层次结构的其他用户。例如，为给定用户启用此配置将使他们能够管理属于其层次结构组或子层次结构组的其他用户。

1. 基于一个**特定的层次结构**强制执行基于层次结构的访问控制

   此选项确保被授予访问权限的用户只能管理属于安全配置文件中定义的层次结构的其他用户。例如，为给定用户启用此配置将使他们能够管理属于安全配置文件中指定的层次结构组或子层次结构组的其他用户。

## 配置限制
<a name="hierarchy-based-access-control-config-limitations"></a>

 精细的访问控制是在安全配置文件上配置的。最多可以为用户分配两个安全配置文件，以执行精细的访问控制。在这种情况下，权限会变得限制更少，并作为两个权限集的并集生效。

例如，如果一个安全配置文件强制执行基于层次结构的访问控制，而另一个配置文件强制执行基于标签的访问控制，则该用户将能够管理任何属于同一层次结构或带有给定标签的用户。如果将基于标签的访问控制和基于层次结构的访问控制配置为同一个安全配置文件的一部分，则需要同时满足这两个条件。在这种情况下，该用户只能管理既属于同一层次结构又带有给定标签的用户。 

用户可以拥有两个以上的安全配置文件，只要这些额外的安全配置文件不执行精细的访问控制。如果存在多个具有重叠资源权限的安全配置文件，那么，不包含基于层次结构访问控制的安全配置文件的效力优先于包含基于层次结构控制的安全配置文件。

需要服务相关角色才能配置基于层次结构访问控制。如果您的实例是在 2018 年 10 月之后创建的，则默认情况下，Amazon Connect 实例将提供此功能。但是，如果您使用的是较旧的实例，请参阅[使用 Amazon Connect 的服务相关角色](connect-slr.md)，了解有关如何启用服务相关角色的说明。

## 应用基于层次结构的访问控制的最佳实践
<a name="hierarchy-based-access-control-best-practices"></a>
+ 审查 [AWS 责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)。

  应用基于层次结构的访问控制是一项高级配置功能，由 Amazon Connect 支持，遵循责任 AWS 共担模式。请务必确保正确配置您的实例以符合所需的授权需求。
+ 对于启用了基于层次结构的访问控制的资源，请确保至少启用了*查看*权限。

  这将确保您避免因权限不一致而导致的访问请求被拒绝。基于层次结构的访问控制在资源级别启用，这意味着可以独立限制每个资源。
+ 请仔细审查当基于层次结构的访问控制被强制执行时所授予的权限。

  例如，启用层次结构限制了用户的访问权限view/edit permissions security profiles would allow a user to create/update，以及具有取代目标用户访问控制设置的权限的安全配置文件。
  + 当用户在应用了基于层次结构的访问控制的情况下登录 Amazon Connect 控制台时，将无法访问受限资源的历史变更日志。
  +  尝试将子资源分配给具有基于层次结构的子资源访问控制的父资源时，如果子资源不属于您的层次结构，则此操作会被拒绝。

    例如，如果您尝试将一个用户分配到一个“快速连接”，但您无权访问该用户所在的层次结构，那么该操作将会失败。但是，解除关联的情况并非如此。即使强制执行了基于层次结构的访问控制，只要您有权访问该“快速连接”，您仍然可以自由地解除关联某个用户。这是因为解除关联是关于丢弃两个资源之间的现有关系（这与建立新的关联相反），并且该操作被建模为父资源（在此例中，即“快速连接”）的一部分，而用户已经拥有对该父资源的访问权限。
+ 在授予对父资源的权限时务必深思熟虑，因为用户可能会在其主管不知情的情况下被解除关联。
+ 在 Amazon Connect 管理网站中应用基于层次结构的访问控制时，请禁用对以下功能的访问权限。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/hierarchy-based-access-control.html)

  如果您不禁用对这些资源的访问权限，则在 Amazon Connect 管理网站上查看这些页面的特定资源上拥有基于层次结构的访问控制的用户可能会看到不受限制的用户列表。有关如何管理权限的更多信息，请参阅[安全配置文件权限列表](security-profile-list.md)。