

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

# Amazon S3 集成
<a name="s3-integration"></a>

通过在 Amazon Quick 中集成 Amazon S3，您可以根据存储在 S3 存储桶中的文档创建知识库。此集成支持用于索引和搜索 S3 内容的数据提取功能。

**注意**  
本指南涵盖了用于创建知识库的 Amazon S3 数据提取集成。有关执行 Amazon S3 操作（例如上传、下载和删除文件）的 Amazon S3 操作连接器，请参阅[Amazon 服务操作连接器](builtin-services-integration.md)。只有快速自动化才支持 Amazon S3 操作。

## 您能做什么
<a name="s3-integration-capabilities"></a>

Amazon S3 用户可以询问有关存储在其 Amazon S3 存储桶中的内容的问题。例如，用户可以查询文档中的关键发现、跨多种文件类型搜索特定信息或分析数据模式。

该集成使用户能够快速访问和理解其 Amazon S3 内容中的信息，无论文件位置或类型如何。它还提供上下文详细信息，例如修改日期和文件元数据，有助于更有效地发现信息并做出更明智的决策。

## 开始前的准备工作
<a name="s3-integration-prerequisites"></a>

在设置 Amazon S3 集成之前，请确保您具备以下条件：
+ Amazon 具有亚马逊 S3 访问权限的账户。
+ 包含要索引的文档的 Amazon S3 存储桶。
+ 亚马逊快捷企业版订阅。
+ 创建 Amazon S3 集成的必要权限。
+ 您的管理员必须授予 Amazon Quick 访问您要使用的 Amazon S3 存储桶的权限。有关更多信息，请参阅 [授予亚马逊快速访问亚马逊 S3 存储桶的权限](s3-admin-setup.md#s3-grant-bucket-access)。

**注意**  
只有在同一 Amazon 区域内才支持跨账户 Amazon S3 访问。

# 管理员设置
<a name="s3-admin-setup"></a>

在用户创建 Amazon S3 集成和知识库之前，Amazon Quick 管理员必须完成以下设置任务。

## 授予亚马逊快速访问亚马逊 S3 存储桶的权限
<a name="s3-grant-bucket-access"></a>

授予亚马逊快速访问您的组织所需的 Amazon S3 存储桶的权限。无论存储桶位于同一个账户还是不同的 Amazon 账户中，这都适用。

1. 在 Amazon Quick 管理控制台的 “**权限**” 下，选择**Amazon 资源**。

1. 在 “**允许访问和自动发现这些资源**” 下，选中 **Amazon S3** 复选框。

1. 选择**选择 S3 存储桶**。

1. 在**选择 Amazon S3 存储桶**对话框中，选择与您的存储桶位置相匹配的选项卡：
   + 与@@ **快速账户关联的 S3 存储桶** — 从列表中选择您希望 Amazon Quick 访问的存储桶。默认情况下，选定的存储桶具有只读权限。
   + **您可以访问的 S3 存储桶 Amazon** — 对于跨账户存储桶，请确保账户所有者已授权您的账户。选择**使用其他存储桶**，输入存储桶名称，然后选择**添加 S3 存储桶**。

1. （可选）对于跨账户存储桶，请选择**限制知识库创建者对存储桶的访问**权限以限制访问权限，以便只有创建知识库的用户才能使用存储桶。

1. 选择**结束**。

现在，用户可以在创建知识库期间访问选定的存储桶。

## 准备 IAM 角色和策略设置
<a name="s3-integration-authentication"></a>

Amazon S3 集成使用 Amazon 身份验证来访问您的亚马逊 S3 存储桶。在用户设置集成之前，请准备好您的 IAM 角色和策略配置。

### 所需的 IAM 权限
<a name="s3-integration-iam-permissions"></a>

请确保您的 Amazon 账户具有以下对 Amazon S3 存储桶的最低权限：
+ `s3:GetObject`— 读取存储桶中的对象。
+ `s3:ListBucket`— 列出存储桶内容。
+ `s3:GetBucketLocation`— 获取存储桶区域信息。
+ `s3:GetObjectVersion`— 获取对象版本。
+ `s3:ListBucketVersions`— 列出存储桶版本。

### 为跨账户访问配置 Amazon S3 存储桶权限
<a name="s3-cross-account-bucket-policy"></a>

如果您使用其他 Amazon 账户访问 Amazon S3 存储桶，则必须在源 Amazon 账户中配置 IAM 策略。

**配置 Amazon S3 存储桶权限以进行跨账户访问**

1. 登录包含 Amazon S3 存储桶的账户的 Amazon 管理控制台。

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 选择您要授予访问权限的存储桶。

1. 选择 **Permissions**，然后选择 **Bucket Policy**。

1. 添加包含以下元素的存储桶策略：
   + `Version`— 设置为 “2012-10-17”
   + `Statement`— 包含政策声明的数组，其中包含：
     + `Sid`— “AllowQuickSuiteS3Access”
     + `Effect`— “允许”
     + `Principal`— 您账户中的 Amazon Amazon Quick 服务角色的 ARN。例如，校长应如下所示：` "Principal": { "AWS": "arn:aws:iam::<quick_account_id>:role/service-role/aws-quicksight-service-role-v0" }`
     + `Action`— Amazon S3 权限数组：s3: GetObject、s3: ListBucket、s3:、s3: GetBucketLocation、s3: GetObjectVersion、s3：ListBucketVersions
     + `Resource`— “\$1”（适用于当前密钥），Amazon S3 存储桶路径应如下所示：`"Resource": [ "arn:aws:s3:::bucket_name"]`

1. 选择**保存更改**。

### 配置 KMS 密钥权限（如果您的存储桶使用加密）
<a name="s3-kms-permissions"></a>

如果您的 Amazon S3 存储桶使用 Amazon KMS 加密，请完成以下步骤。

**配置 KMS 密钥权限**

1. 在 [https://console.aws.amazon.com/](https://console.amazonaws.cn/kms)km Amazon s 上打开密钥管理服务 (Amazon KMS) 控制台。

1. 选择用于加密您的 Amazon S3 存储桶的 KMS 密钥。

1. 选择**密钥策略**，然后选择**编辑**。

1. 在密钥策略中添加包含以下结构元素的声明：
   + `Sid` – "AllowQuickSuiteKMSAccess"
   + `Effect`— “允许”
   + `Principal`— 您账户中的 Amazon Amazon Quick 服务角色的 ARN。例如，校长应如下所示：` "Principal": { "AWS": "arn:aws:iam::<quick_account_id>:role/service-role/aws-quicksight-service-role-v0" }`
   + `Action`— KMS 权限数组： kms:解密， kms:DescribeKey
   + `Resource`— “\$1”（适用于当前密钥），Amazon S3 存储桶路径应如下所示：`"Resource": [ "arn:aws:s3:::bucket_name"]`

1. 选择**保存更改**。

1. 等待 2-3 分钟，让策略更改传播。

## 在 Amazon Quick 中配置 Amazon S3 连接器的 VPC 访问权限
<a name="s3-vpc-support"></a>

VPC 权限可确保 Amazon Quick 只能通过安全的 VPC 或 VPC 终端节点连接访问您的 Amazon S3 存储桶。

### 必要的政策变更
<a name="s3-vpc-required-policy"></a>

将此声明添加到您的存储桶访问策略中，以允许 Amazon Quick 通过 VPC 终端节点访问您的存储桶：

```
{
  "Sid": "Allow-Quick-access"		 	 	 ,
  "Principal": "arn:aws:iam::Quick Account:role/service-role/aws-quicksight-service-role-v0",
  "Action": "s3:*",
  "Effect": "Allow",
  "Resource": [
    "arn:aws:s3:::amzn-s3-demo-bucket",
    "arn:aws:s3:::amzn-s3-demo-bucket/*"
  ],
  "Condition": {
    "Null": {
      "aws:SourceVpce": "false"
    }
  }
}
```
+ 将 `amzn-s3-demo-bucket`替换为存储桶名称。
+ `Quick Account`用您的 Amazon Quick 账户替换。

该`"aws:SourceVpce": "false"`条件可确保 Amazon Quick 只能通过 VPC 终端节点访问您的存储桶，从而满足您的安全要求。

### 拒绝策略
<a name="s3-vpc-deny-policies"></a>

如果您的存储桶的策略通过拒绝策略限制流向特定 VPC 或 VPC 终端节点，则必须撤消此政策，因为拒绝策略优先于允许策略。

例如：

```
{
   "Version":"2012-10-17"		 	 	 ,                   
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpce": "vpce-0abcdef1234567890"
         }
       }
     }
   ]
}
```

应反转为：

```
{
   "Version":"2012-10-17"		 	 	 ,                   
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Allow",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringEquals": {
           "aws:SourceVpce": "vpce-0abcdef1234567890"
         }
       }
     }
   ]
}
```

### 最佳实践
<a name="s3-vpc-best-practices"></a>

**限制访问您的 Amazon Quick 角色**

访问策略应强制要求来电者是你的 Amazon Quick 角色 ARN，或者至少是你的 Amazon Quick 账户。这样可以确保尽管允许 VPC 流量，但呼叫仅来自预期来源。

### 安全建议
<a name="s3-vpc-security-recommendations"></a>
+ 将策略限制在您的 Amazon Quick 角色上，以获得最安全的流量
+ 定期查看您的存储桶策略，确保它们遵循最低权限原则

## 通过 IAM 策略分配限制 Amazon S3 存储桶的访问权限
<a name="s3-restrict-bucket-access"></a>

您可以通过创建 IAM 策略并通过 Amazon Quick IAM 策略分配将其分配给特定用户、群组或所有用户，来控制您的 Amazon Quick 用户可以使用哪些 Amazon S3 存储桶来创建知识库。这允许您限制谁可以针对特定的存储分区创建知识库，包括支持 ACL 的知识库。

**注意**  
通过 Amazon Quick 分配的 IAM 策略优先于 Amazon 资源级策略。为确保满足您的访问要求，请适当配置您的 IAM 策略。

例如，您可以为需要访问支持 ACL 的存储桶的特定用户分配限制性策略，同时为非 ACL 存储桶的所有用户分配更广泛的策略。

### 步骤 1：在 IAM 中创建 Amazon S3 访问策略
<a name="s3-create-iam-policy"></a>

在 IAM 控制台中创建一个 Amazon IAM 策略，定义用户可以访问哪些 Amazon S3 存储桶来创建知识库。以下示例策略授予对两个特定存储桶的访问权限：

```
{
    "Version": "2012-10-17"		 	 	 ,
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-1",
                "arn:aws:s3:::amzn-s3-demo-bucket-2"
            ]
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-2/*"
            ]
        },
        {
            "Action": [
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-1",
                "arn:aws:s3:::amzn-s3-demo-bucket-2"
            ]
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:AbortMultipartUpload",
                "s3:ListMultipartUploadParts"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-2/*"
            ]
        }
    ]
}
```

将`amzn-s3-demo-bucket-1`和`amzn-s3-demo-bucket-2`替换为您想要授予访问权限的 Amazon S3 存储桶的名称。

### 第 2 步：在 Amazon Quick 中分配策略
<a name="s3-assign-iam-policy"></a>

创建 IAM 策略后，将其分配给 Amazon Quick 用户或群组。

1. 在 Amazon Quick 管理控制台的 “**权限**” 下，选择 **IAM 策略分配**。

1. 选择 “**添加新作业”**。

1. 输入任务的名称。

1. 在**选择 IAM 策略**页面上，搜索并选择您在步骤 1 中创建的 IAM 策略。选择**下一步**。

1. 在**分配用户和群组**页面上，选择以下选项之一：
   + 选择 “**分配给所有用户和群组**”，将该策略应用于所有当前和未来的用户。
   + 搜索并选择要向其分配策略的特定用户或组。

   选择**下一步**。

1. 在 “**查看并启用更改**” 页面上，验证您的任务详细信息，然后选择 “**保存并启用**”。

未通过 IAM 策略分配明确授予访问权限的用户将无法访问受限的 Amazon S3 存储桶来创建集成或知识库。

# 文档级 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`。

# 文档元数据
<a name="s3-metadata"></a>

您可以向 Amazon S3 存储桶中的文档添加元数据，以自定义聊天结果并控制文档级访问权限。元数据是关于文档的其他信息，例如其标题、创建日期和访问权限。

Amazon Quick 支持使用引文进行来源归因。如果您指定`_source_uri`元数据字段，聊天结果中的来源归因链接会将用户引导至配置的网址。如果您未指定`_source_uri`，则用户仍然可以通过可点击的引文链接访问源文档，这些引文链接会在查询时下载文件。

## 文档元数据位置
<a name="s3-metadata-location"></a>

在 Amazon S3 中，每个元数据文件都可与一个已编制索引的文档相关联。您的元数据文件必须与已编入索引的文件存储在同一 Amazon S3 存储桶中。在 Amazon Quick 中配置 Amazon S3 集成时，您可以在 Amazon S3 存储桶中为元数据文件指定一个位置。

如果您未指定 Amazon S3 前缀，则您的元数据文件必须与已编入索引的文档存储在相同的位置。如果您为元数据文件指定 Amazon S3 前缀，则这些文件必须位于与已编入索引的文档平行的目录结构中。Amazon Quick 仅在指定目录中查找您的元数据。如果未读取元数据，请检查目录位置是否与元数据的位置相匹配。

以下示例展示了如何将已编入索引的文档位置映射到元数据文件位置。文档的 Amazon S3 密钥将附加到元数据的 Amazon S3 前缀中，然后`.metadata.json`以后缀为构成元数据文件的 Amazon S3 路径。

**注意**  
组合`.metadata.json`后的 Amazon S3 密钥、元数据的亚马逊 S3 前缀和后缀的总长度不得超过 1,024 个字符。我们建议您的 Amazon S3 密钥长度少于 1,000 个字符，以考虑将密钥与前缀和后缀组合时出现的额外字符。

**Example 示例 1：未指定元数据路径**  

```
Bucket name:
     s3://bucketName
Document path:
     documents
Metadata path:
     none
File mapping
     s3://bucketName/documents/file.txt -> 
        s3://bucketName/documents/file.txt.metadata.json
```

**Example 示例 2：指定元数据路径**  

```
Bucket name:
     s3://bucketName
Document path:
     documents/legal
Metadata path:
     metadata
File mapping
     s3://bucketName/documents/legal/file.txt -> 
        s3://bucketName/metadata/documents/legal/file.txt.metadata.json
```

## 文档元数据结构
<a name="s3-metadata-structure"></a>

您在 JSON 文件中定义文档元数据本身。该文件必须是没有 BOM 标记的 UTF-8 文本文件。JSON 文件的文件名必须是 `<document>.<extension>.metadata.json`。在此示例中，`document`是元数据所应用的文档的名称，`extension`也是该文档的文件扩展名。在 `<document>.<extension>.metadata.json` 中，文档 ID 必须是唯一的。

JSON 文件的内容使用以下模板：

```
{
    "DocumentId": "document ID",
    "Attributes": {
        "_authors": ["author of the document"],
        "_category": "document category",
        "_created_at": "ISO 8601 encoded string",
        "_last_updated_at": "ISO 8601 encoded string",
        "_source_uri": "document URI",
        "_version": "file version",
        "_view_count": number of times document has been viewed
    },
    "AccessControlList": [
        {
            "Name": "user1@example.com",
            "Type": "GROUP | USER",
            "Access": "ALLOW | DENY"
        }
    ],
    "Title": "document title",
    "ContentType": "PDF | HTML | MS_WORD | PLAIN_TEXT | PPT | RTF | XML | XSLT | MS_EXCEL | CSV | JSON | MD"
}
```

如果您提供元数据路径，请确保元数据目录内的目录结构与数据文件的目录结构完全匹配。

例如，如果数据文件位置在 `s3://bucketName/documents/legal/file.txt`，则元数据文件位置应在 `s3://bucketName/metadata/documents/legal/file.txt.metadata.json`。

所有属性和字段均可选，因此不必包含所有属性。但是，您必须为要包含的每个属性提供一个值；该值不能为空。

`_created_at` 和 `_last_updated_at` 元数据字段是 ISO 8601 编码的日期。例如，2012-03-25T12:30:10\$101:00 是中部欧洲时间 2012 年 3 月 25 日中午 12:30（10 秒）的 ISO 8601 日期-时间格式。

该`AccessControlList`字段是一个可选数组，用于定义文档级访问控制。数组中的每个条目都包含以下字段：
+ `Name`— 对于`USER`类型，指用户在 Quick 中的电子邮件地址。对于`GROUP`类型，使用 Quick 中的群组名称。
+ `Type` – `USER` 或 `GROUP`。
+ `Access` – `ALLOW` 或 `DENY`。

**注意**  
要使用该`AccessControlList`字段，必须在创建知识库 ACLs 时启用文档级别。有关更多信息，请参阅 [文档级 ACLs](s3-acl.md)。

# 设置和管理 Amazon S3 集成
<a name="s3-setup-manage"></a>

## 设置 Amazon S3 集成
<a name="s3-integration-setup"></a>

管理员完成设置任务后，请按照以下步骤创建您的 Amazon S3 知识库。

1. 在 Amazon Quick 控制台中，选择**集成。**

1. 在 **Amazon S3** 下，选择**添加**（加号 **\$1** 按钮）。

1. 在 **Connect S3 存储桶**页面上，选择您的数据源：
   + 要重复使用现有的 Amazon S3 数据源，请从下拉列表中选择该数据源。然后选择 “**下一**步” 跳至知识库详细信息步骤。
   + 要连接新的 Amazon S3 存储桶，请从下拉列表中选择 **\$1 添加账户**。

1. 如果您要连接新的存储桶，请填写连接详细信息：
   + **名称**-您的 Amazon S3 集成的描述性名称。
   + **S3 存储桶位置** — 选择 **Quick Suite 实例账户**以在启用 Amazon Quick 的同一 Amazon 账户中访问 Amazon S3 存储桶，或者选择**其他 Amazon 账户**访问其他账户中的存储桶。
   + **S3 存储桶 URL** — 包含您的文档的 Amazon S3 存储桶路径。您的 Amazon S3 存储桶必须与您的 Amazon Quick 区域位于同一区域。

   选择**下一步**。系统会验证您的配置。如果出现错误，请查看错误消息以了解具体的修复步骤。
**注意**  
如果您收到访问错误，请联系您的管理员以验证您的用户是否拥有 Amazon S3 存储桶所需的权限。

1. 在**创建知识库**页面上，完成以下操作：
   + **名称**-输入知识库的描述性名称。
   + **描述**-描述此知识库的用途（可选）。
   + **内容**-选择**添加所有内容**以同步存储桶中的所有内容，或者选择**添加特定内容**为要包含的文件夹和文件指定 S3 前缀。过滤器区分大小写。

1. **选择 “**下一步：其他设置”** 以配置 ACL 和元数据选项，或者选择 “创建” 以使用默认设置创建知识库。**

1. 在**其他设置**页面上，配置 ACL 管理和元数据：
**重要**  
启用或禁用的决定 ACLs 必须在创建知识库时做出。完成此步骤后，您无法更改此选项。有关的更多信息 ACLs，请参阅[文档级 ACLs](s3-acl.md)。
   + 要启用文档级别 ACLs，请选择使用**控制文档访问权限**。 ACLs启用后，将显示以下选项：
     + **全局 ACL 文件位置** — 如果您使用全局 ACL 配置文件进行文件夹级别的集中访问控制管理，请输入全局 ACL 文件（例如 acl.json）的 Amazon S3 路径。
     + **元数据文件文件夹位置**-如果您使用的是包含 ACL 条目的文档级元数据文件，请输入元数据文件夹的 Amazon S3 路径。
     + 如果您的元数据文件使用 sidecar 方法（存储在与原始文档相同的文件夹中），则可以将两个字段都留空。
   + 即使未 ACLs 启用，您也可以选择指定**元数据文件文件夹的位置**。

1. 选择**创建**。

选择创建后，数据同步将自动开始。

## 管理知识库
<a name="s3-integration-knowledge-base"></a>

设置 Amazon S3 集成后，您可以根据您的 Amazon S3 内容创建和管理知识库。

### 编辑现有知识库
<a name="s3-edit-knowledge-base"></a>

您可以修改现有的 Amazon S3 知识库：

1. 在 Amazon Quick 控制台中，选择**知识库**。

1. 从列表中选择您的 Amazon S3 知识库。

1. 选择 “**操作**” 下的三点图标，然后选择 “**编辑知识库**”。

1. 根据需要更新您的配置设置，然后选择 “**保存**”。

### 创建其他知识库
<a name="s3-create-additional-knowledge-base"></a>

您可以通过同一 Amazon S3 集成创建多个知识库：

1. 在 Amazon Quick 控制台中，选择 “**集成**”，然后选择 “**数据**” 选项卡。

1. 从列表中选择您现有的 Amazon S3 集成。

1. 选择 “**操作**” 下的三点图标，然后选择 “**创建知识库**”。

1. 配置您的知识库设置，然后选择**创建**。

有关知识库配置选项的详细信息，请参阅[常用配置设置](knowledge-base-integrations.md#common-configuration-settings)。

**注意**  
在 Amazon Quick 中创建知识库时，默认情况下，只有您才能从知识库中获得见解。对于共享内容，您可以通过更新知识库权限为不同的用户和群组提供访问权限。要控制知识库中的文档级访问权限，请参阅。[文档级 ACLs](s3-acl.md)

# 对 Amazon S3 集成问题进行故障排除
<a name="s3-integration-troubleshooting"></a>

如果您在连接 Amazon S3 存储桶时遇到问题，请查看以下常见原因和解决方案。

## 文档未出现在启用 ACL 的知识库中
<a name="s3-troubleshooting-acl-documents-missing"></a>

**问题：**文档未导入支持 ACL 的知识库。

**解决方案：**对于启用 ACL 的知识库，不采集没有关联 ACL 条目的文档。确认每个文档都有通过全局 ACL 文件或其元数据文件定义的 ACL。有关更多信息，请参阅 [文档级 ACLs](s3-acl.md)。

## 未配置跨账户访问权限
<a name="s3-troubleshooting-cross-account"></a>

**问题：**您的管理员未授予使用 Amazon Quick 中其他 Amazon 账户的 Amazon S3 存储桶的权限。

**解决方案：**请您的管理员授予跨账户 Amazon S3 访问权限。有关更多信息，请参阅 [授予亚马逊快速访问亚马逊 S3 存储桶的权限](s3-admin-setup.md#s3-grant-bucket-access)。

## 存储桶不在允许列表中
<a name="s3-troubleshooting-bucket-not-approved"></a>

**问题：**您尝试访问的存储桶未获得管理员的授权。

**解决方案：**
+ 确认存储桶名称拼写正确。
+ 向管理员确认该存储桶是否包含在允许列表中。
+ 如有必要，请您的管理员将该存储桶添加到已授权存储桶列表中。

## IAM 权限不足
<a name="s3-troubleshooting-iam-permissions"></a>

**问题：**您的 IAM 角色或用户缺乏访问 Amazon S3 存储桶所需的权限。

**解决方案：**
+ 验证您的 IAM 策略是否包含所需的 Amazon S3 权限：
  + `s3:GetObject`
  + `s3:ListBucket`
  + `s3:GetBucketLocation`
  + `s3:GetObjectVersion`
  + `s3:ListBucketVersions`
+ 检查您自己的存储桶中是否存在任何可能阻止访问的明确拒绝语句。

**注意**  
ARN `arn:aws:iam::account-id:role/service-role/aws-quicksight-service-role-v0` 是未创建自定义角色时使用的默认服务角色。如果存在自定义服务角色，请联系您的管理员获取自定义服务角色 ARN 并使用它来代替默认服务角色。

## 跨区域限制
<a name="s3-troubleshooting-cross-region"></a>

**问题：**Amazon S3 存储桶与您的 Amazon Quick 账户或服务位于不同的 Amazon 区域。

**解决方案：**
+ 验证存储桶区域是否与您的 Amazon Quick 服务区域相匹配。
+ 使用 Amazon CLI 检查存储桶区域：`aws s3api get-bucket-location --bucket bucket-name`
+ 使用与您的服务位于同一区域的存储桶。

## 其他故障排除步骤
<a name="s3-troubleshooting-additional-steps"></a>
+ 使用 Amazon CLI **测试存储桶的可访问性**：

  ```
  aws s3 ls s3://bucket-name --profile your-profile
  ```
+ **查看 CloudTrail 日志**中 AccessDenied 是否存在错误，以确定具体的权限问题。
+ **检查 Amazon S3 阻止公共访问设置**-虽然这些设置通常不会影响经过身份验证的访问，但请确认它们不会干扰您的特定用例。
+ **验证存储桶所有权**-确保存储桶存在且您的存储桶名称正确。

# 限制
<a name="s3-limitations"></a>

在 Amazon Quick 中使用 Amazon S3 集成时，请注意以下限制：
+ Amazon S3 存储桶必须与您的 Amazon Quick 应用程序位于同一 Amazon 区域。
+ 每个文档最多可以有 2,500 个个人用户或群组 ACL 条目。
+ 全局 ACL 配置文件的最大大小：100 MB。
+ 文档元数据文件最大大小：5 MB。

有关文档级 ACL 限制的更多信息，请参阅。[限制](acl-best-practices-kb.md#acl-limitations)