

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

# 文档级 ACLs
<a name="s3-acl"></a>

您可以使用两种配置方法中的一种在 Amazon S3 知识库级别启用访问控制列表 (ACLs)，每种方法均针对不同的用例进行了优化。

**重要**  
文档级 ACL 配置是永久性的。您无法 ACLs 在没有 ACL 支持的情况下创建的知识库中启用，启用 ACLs 后也无法禁用。要更改 ACL 配置，请从一开始就使用所需的设置创建一个新的知识库。

**注意**  
对于启用 ACL 的知识库，不采集没有关联 ACL 条目的文档。确保每个文档都有通过全局 ACL 文件或其元数据文件定义的 ACL。

**全局 ACL 配置文件**  
创建一个用于定义文件夹级别访问权限的单个集中式文件。这为管理大型文档层次结构中的权限提供了一种简化的方法。这种方法非常适合权限结构稳定的组织。对全局文件的任何更改都需要重新索引整个受影响的前缀，对于包含数千万个文档的知识库，这可能需要几个小时。有关文件格式的信息，请参阅 [全局 ACL 文件结构](#s3-global-acl)。

**文档级元数据文件**  
每个文档都有自己的元数据文件，其中包含特定的访问控制信息。这种方法要求您为每个文档创建和维护单独的元数据文件。当权限发生变化时，它可以显著加快索引更新速度，因为只有受影响的文档需要重新编制索引，而不是整个文件夹结构。有关 ACLs 在元数据文件中进行配置的更多信息，请参阅[文档元数据](s3-metadata.md)。

选择最适合您的运营需求的方法：使用全局 ACL 文件进行集中管理以简化管理，或者使用文档级元数据文件进行更快的权限更新和更精细的控制。

定期更新 Amazon S3 ACL 配置以满足贵组织的访问要求，使您的文档级别 ACLs 保持最新。有关常见最佳实践的更多信息，请参阅[ACLs 在知识库中进行管理的最佳实践](acl-best-practices-kb.md)。

## 全局 ACL 文件结构
<a name="s3-global-acl"></a>

全局文件提供文件夹级别的集中访问控制管理。文件中的每个条目都将 Amazon S3 密钥前缀映射到一组 ACL 条目，这些条目适用于该前缀下的所有文档。

全局 ACL json 文件使用以下结构：

```
[
    {
        "keyPrefix": "s3://BUCKETNAME/prefix1/",
        "aclEntries": [
            {
                "Name": "user1@example.com",
                "Type": "USER",
                "Access": "ALLOW"
            },
            {
                "Name": "group1",
                "Type": "GROUP",
                "Access": "DENY"
            }
        ]
    },
    {
        "keyPrefix": "s3://BUCKETNAME/prefix1/document_1.txt",
        "aclEntries": [
            {
                "Name": "user1@example.com",
                "Type": "USER",
                "Access": "ALLOW"
            },
            {
                "Name": "group1",
                "Type": "GROUP",
                "Access": "DENY"
            }
        ]
    },
    {
        "keyPrefix": "s3://BUCKETNAME/prefix2/",
        "aclEntries": [
            {
                "Name": "user2@example.com",
                "Type": "USER",
                "Access": "ALLOW"
            },
            {
                "Name": "user1@example.com",
                "Type": "USER",
                "Access": "DENY"
            },
            {
                "Name": "group1",
                "Type": "GROUP",
                "Access": "DENY"
            }
        ]
    }
]
```

数组中的每个条目都包含以下字段：

`keyPrefix`  
ACL 条目所适用的 Amazon S3 路径前缀。此前缀下的所有文档都继承指定的权限。

`aclEntries`  
一组访问控制条目，每个条目都包含以下字段：  
+ `Name`— 对于`USER`类型，指用户在 Quick 中的电子邮件地址。对于`GROUP`类型，使用 Quick 中的组名。
+ `Type` – `USER` 或 `GROUP`。
+ `Access` – `ALLOW` 或 `DENY`。