

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理員設定
<a name="s3-admin-setup"></a>

Amazon Quick 管理員必須先完成下列設定任務，使用者才能建立 Amazon S3 整合和知識庫。

## 授予 Amazon Quick 對 Amazon S3 儲存貯體的存取權
<a name="s3-grant-bucket-access"></a>

授予 Amazon Quick 存取您組織所需的 Amazon S3 儲存貯體。無論儲存貯體位於相同 AWS 帳戶或不同帳戶中，這都會套用。

1. 在 Amazon Quick admin 主控台**的許可**下，選擇**AWS 資源**。

1. 在**允許這些資源的存取和自動探索**下，選取 **Amazon S3** 核取方塊。

1. 選擇**選取 S3 儲存貯體**。

1. 在**選取 Amazon S3 儲存貯**體對話方塊中，選擇符合您儲存貯體位置的標籤：
   + **連結至快速帳戶的 S3 儲存貯**體 – 從清單中選取您希望 Amazon Quick 存取的儲存貯體。根據預設，選取的儲存貯體具有唯讀許可。
   + **您可以跨帳戶存取的 S3 儲存貯 AWS**體 – 對於跨帳戶儲存貯體，請確定帳戶擁有者已授權您的帳戶。選擇**使用不同的儲存貯**體，輸入儲存貯體名稱，然後選擇**新增 S3 儲存貯**體。

1. （選用） 對於跨帳戶儲存貯體，選取**限制儲存貯體存取知識庫建立者**以限制存取，以便只有建立知識庫的使用者才能使用儲存貯體。

1. 選擇**完成**。

使用者現在可以在知識庫建立期間存取選取的儲存貯體。

## 準備 IAM 角色和政策設定
<a name="s3-integration-authentication"></a>

Amazon S3 整合使用 AWS 身分驗證來存取您的 Amazon S3 儲存貯體。在使用者設定整合之前，準備您的 IAM 角色和政策組態。

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

請確定 AWS 您的帳戶具有下列 Amazon S3 儲存貯體的最低許可：
+ `s3:GetObject` – 從儲存貯體讀取物件。
+ `s3:ListBucket` – 列出儲存貯體內容。
+ `s3:GetBucketLocation` – 取得儲存貯體區域資訊。
+ `s3:GetObjectVersion` – 取得物件版本。
+ `s3:ListBucketVersions` – 列出儲存貯體版本。

### 設定跨帳戶存取的 Amazon S3 儲存貯體許可
<a name="s3-cross-account-bucket-policy"></a>

如果您要在不同 AWS 帳戶中存取 Amazon S3 儲存貯體，您必須在來源 AWS 帳戶中設定 IAM 政策。

**設定跨帳戶存取的 Amazon S3 儲存貯體許可**

1. 登入包含 Amazon S3 儲存貯體之帳戶的 AWS 管理主控台。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選擇您要授予存取權的儲存貯體。

1. 選擇 **Permissions (許可)**，然後選擇 **Bucket Policy (儲存貯體政策)**。

1. 使用下列元素新增儲存貯體政策：
   + `Version` – 設定為 "2012-10-17"
   + `Statement` – 陣列包含具有下列項目的政策陳述式：
     + `Sid` –「AllowQuickSuiteS3Access」
     + `Effect` –「允許」
     + `Principal` –您帳戶中 Amazon Quick 服務角色的 AWS 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：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 儲存貯體使用 AWS KMS 加密，請完成下列步驟。

**設定 KMS 金鑰許可**

1. 在 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 開啟 AWS Key Management Service (AWS KMS) 主控台。

1. 選擇用於加密 Amazon S3 儲存貯體的 KMS 金鑰。

1. 選擇 **Key policy (金鑰政策)**，然後選擇 **Edit (編輯)**。

1. 使用下列結構元素將陳述式新增至金鑰政策：
   + `Sid` –「AllowQuickSuiteKMSAccess」
   + `Effect` –「允許」
   + `Principal` –您帳戶中 Amazon Quick 服務角色的 AWS ARN。例如，委託人看起來應該如下所示：` "Principal": { "AWS": "arn:aws:iam::<quick_account_id>:role/service-role/aws-quicksight-service-role-v0" }`
   + `Action` – KMS 許可陣列： kms:Decrypt、 kms:DescribeKey
   + `Resource` – "\$1" （適用於目前的金鑰），Amazon S3 儲存貯體路徑應如下所示： `"Resource": [ "arn:aws:s3:::bucket_name"]`

1. 選擇**儲存變更**。

1. 等待 2-3 分鐘，讓政策變更傳播。

## 在 Amazon Quick 中設定 Amazon S3 Connector 的 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 S3 Quick IAM 政策指派特定使用者、群組或所有使用者，來控制 Amazon Quick 使用者可用來建立知識庫的 Amazon S3 儲存貯體。這可讓您限制誰可以針對特定儲存貯體建立知識庫，包括 ACL 感知知識庫。

**注意**  
透過 Amazon Quick 指派的 IAM 政策優先於 AWS 資源層級政策。為了確保符合您的存取需求，請適當設定您的 IAM 政策。

例如，您可以將限制性政策指派給需要存取 ACL 感知儲存貯體的特定使用者，同時將更廣泛的政策指派給非 ACL 儲存貯體的所有使用者。

### 步驟 1：在 IAM 中建立 Amazon S3 存取政策
<a name="s3-create-iam-policy"></a>

在 IAM 主控台中建立 IAM AWS 政策，定義使用者可以存取哪些 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-2` `amzn-s3-demo-bucket-1`和 取代為您要授予存取權的 Amazon S3 儲存貯體名稱。

### 步驟 2：在 Amazon Quick 中指派政策
<a name="s3-assign-iam-policy"></a>

建立 IAM 政策後，將其指派給 Amazon Quick 使用者或群組。

1. 在 Amazon Quick admin 主控台**的許可**下，選擇 **IAM 政策指派**。

1. 選擇**新增指派**。

1. 輸入指派的名稱。

1. 在**選取 IAM 政策**頁面上，搜尋並選取您在步驟 1 中建立的 IAM 政策。選擇**下一步**。

1. 在**指派使用者和群組**頁面上，選擇下列其中一項：
   + 選取**指派給所有使用者和群組**，將政策套用至所有目前和未來的使用者。
   + 搜尋並選取要指派政策的特定使用者或群組。

   選擇**下一步**。

1. 在**檢閱並啟用變更**頁面上，驗證您的指派詳細資訊，然後選擇**儲存並啟用**。

未透過 IAM 政策指派明確授予存取權的使用者，將無法存取受限的 Amazon S3 儲存貯體來建立整合或知識庫。