

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

# 設定 Amazon S3 清查
<a name="configure-inventory"></a>

Amazon S3 清查在您定義的排程上，提供物件及中繼資料的一般檔案清單。您可以將 S3 清查做為 Amazon S3 同步 `List` API 操作的另一種排程選擇。S3 清查提供以逗號分隔的值 (CSV)、[Apache 最佳化資料列單欄式 (ORC)](https://orc.apache.org/) 或 [https://parquet.apache.org/](https://parquet.apache.org/) 輸出檔，其中列出您的物件及相應中繼資料。

您可以設定 S3 清查，為具有共同字首的 S3 儲存貯體和物件 (名稱以相同字串開頭的物件)，每天或每週建立清查清單。如需詳細資訊，請參閱[使用 S3 庫存清單編目和分析資料](storage-inventory.md)。

本節說明如何設定清查，包括清查來源與目的地儲存貯體的詳細資訊。

**Topics**
+ [概觀](#storage-inventory-setting-up)
+ [建立目的地儲存貯體政策](#configure-inventory-destination-bucket-policy)
+ [對 Amazon S3 授予許可使用您的客戶受管金鑰進行加密](#configure-inventory-kms-key-policy)
+ [使用 S3 主控台設定清查](#configure-inventory-console)
+ [使用 REST API 搭配 S3 庫存清單](#rest-api-inventory)

## 概觀
<a name="storage-inventory-setting-up"></a>

Amazon S3 清查可依定義的排程，建立 S3 儲存貯體中物件的清單，協助您管理儲存體。您可以為儲存貯體設定多份清查清單。會在目的地儲存貯體中將清查清單發佈為 CSV、ORC 或 Parquet 檔案。

設定清查最簡單的方式是使用 Amazon S3 主控台，但您也可以使用 Amazon S3 REST API、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs。主控台會為您執行以下程序的第一項步驟：在目的地儲存貯體中新增儲存貯體政策。

**設定 S3 儲存貯體的 Amazon S3 清查**

1. **新增目標儲存貯體的儲存貯體政策。**

   您必須在目的地儲存貯體上建立儲存貯體政策，才能准許 Amazon S3 將物件寫入定義位置中的儲存貯體。如需政策範例，請參閱「[授予 S3 清查與 S3 分析的許可](example-bucket-policies.md#example-bucket-policies-s3-inventory-1)」。

1. **設定清查以列出來源儲存貯體的物件，並將清單發佈至目標儲存貯體。**

   當您設定來源儲存貯體的清查清單時，要指定存放清單的目的地儲存貯體，以及每日或每週產生清單。您也可以設定要列出所有物件版本還是只列出目前版本，以及要包含哪些物件中繼資料。

   S3 庫存報告組態中的某些物件中繼資料欄位是選用的，這表示這些欄位預設可供使用，但當您授予使用者 `s3:PutInventoryConfiguration` 許可時，這些欄位可能會受到限制。您可以使用 `s3:InventoryAccessibleOptionalFields` 條件索引鍵，控制使用者是否可以在報告中包含這些選用的中繼資料欄位。

   如需 S3 庫存清單中可用的選用中繼資料欄位詳細資訊，請參閱 Amazon Simple Storage Service API 參考**中的[https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody)。如需限制存取庫存組態中特定選用中繼資料欄位的詳細資訊，請參閱[控制 S3 庫存報告組態建立](example-bucket-policies.md#example-bucket-policies-s3-inventory-2)。

   您可以指定使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 或 AWS Key Management Service (AWS KMS) 客戶受管金鑰 (SSE-KMS) 來加密庫存清單檔案。
**注意**  
SSE-KMS 加密搭配 S3 庫存不支援 AWS 受管金鑰 (`aws/s3`)。

   如需 SSE-S3 與 SSE-KMS 的詳細資訊，請參閱 [使用伺服器端加密保護資料](serv-side-encryption.md)。若預計使用 SSE-KMS 加密，請參閱步驟 3。
   + 如需如何使用主控台設定清查清單的資訊，請參閱「[使用 S3 主控台設定清查](#configure-inventory-console)」。
   + 若要使用 Amazon S3 API 設定清查清單，請使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html) REST API 操作或 AWS CLI AWS SDKs中的對等項目。

1. **若要使用 SSE-KMS 加密清查清單檔案，請對 Amazon S3 授予許可使用 AWS KMS key。**

   您可以使用 Amazon S3 主控台、Amazon S3 REST API AWS CLI或 AWS SDKs 來設定清查清單檔案的加密。無論選擇哪種方式，您必須對 Amazon S3 授予許可使用客戶受管金鑰來加密清查檔案。您可以透過修改要用於加密庫存檔案的客戶自管金鑰的金鑰策略，來[授予 Amazon S3 權限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-inventory.html#configure-inventory-kms-key-policy)。請確定您已在 S3 庫存組態或目的地儲存貯體的加密設定中提供 KMS 金鑰 ARN。如果未指定 KMS 金鑰 ARN 且正在使用預設加密設定，您將無法存取 S3 庫存報告。

   儲存庫存清單檔案的目的地儲存貯體可由不同的  AWS 帳戶  擁有，不需與擁有來源儲存貯體的帳戶相同。如果您對 Amazon S3 庫存清單的跨帳戶操作使用 SSE-KMS 加密，建議您在設定 S3 庫存清單時使用完整的 KMS 金鑰 ARN。如需詳細資訊，請參閱 *Amazon Simple Storage Service API 參考*中的 [針對跨帳戶操作使用 SSE-KMS 加密](bucket-encryption.md#bucket-encryption-update-bucket-policy) 或 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionByDefault.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionByDefault.html)。
**注意**  
如果您無法存取 S3 庫存報告，請使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) API，並檢查目的地儲存貯體是否已啟用預設 SSE-KMS 加密。如果未指定 KMS 金鑰 ARN 且正在使用預設加密設定，您將無法存取 S3 庫存報告。若要再次存取 S3 庫存報告，請在 S3 庫存組態或目的地儲存貯體的加密設定中提供 KMS 金鑰 ARN。

## 建立目的地儲存貯體政策
<a name="configure-inventory-destination-bucket-policy"></a>

如果透過 S3 主控台建立庫存清單組態，Amazon S3 會自動在目的地儲存貯體上建立儲存貯體政策，將儲存貯體的寫入許可授予 Amazon S3。不過，如果您透過 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 建立庫存組態，則必須在目的地儲存貯體上手動新增儲存貯體政策。S3 庫存清單目的地儲存貯體政策允許 Amazon S3 將庫存報告的資料寫入儲存貯體。

以下是範例儲存貯體政策。

------
#### [ JSON ]

****  

```
{  
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
            "Sid": "InventoryExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET"
                },
                "StringEquals": {
                    "aws:SourceAccount": "source-123456789012",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
```

------

如需詳細資訊，請參閱[授予 S3 清查與 S3 分析的許可](example-bucket-policies.md#example-bucket-policies-s3-inventory-1)。

若在嘗試建立儲存貯體政策的時候發生錯誤，會為您提供修正方式的說明。例如，如果您在另一個 中選擇目的地儲存貯體， AWS 帳戶 但沒有讀取和寫入儲存貯體政策的許可，您會看到錯誤訊息。

在此情況下，目的地儲存貯體擁有者必須將儲存貯體政策新增至目的地儲存貯體。如果未將政策新增至目的地儲存貯體，您將不會取得清查報告，因為 Amazon S3 沒有目的地儲存貯體的寫入許可。若來源儲存貯體由不同的帳戶擁有，而非由目前的使用者擁有，則必須為政策中的來源儲存貯體擁有者替換正確的帳戶 ID。

**注意**  
確保目的地儲存貯體政策中未新增任何拒絕陳述式，以防止將庫存報告傳送至此儲存貯體。如需詳細資訊，請參閱[我無法產生 Amazon S3 庫存清單。為什麼會發生此情況](https://repost.aws/knowledge-center/s3-inventory-report)。

## 對 Amazon S3 授予許可使用您的客戶受管金鑰進行加密
<a name="configure-inventory-kms-key-policy"></a>

若要授予 Amazon S3 使用 AWS Key Management Service (AWS KMS) 客戶受管金鑰進行伺服器端加密的許可，您必須使用金鑰政策。若要更新您的金鑰政策，以便使用您的客戶受管金鑰，請依照下列步驟執行。

**准許 Amazon S3 使用客戶自管金鑰進行加密**

1. 使用 AWS 帳戶 擁有客戶受管金鑰的 ，登入 AWS 管理主控台。

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

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在左側導覽窗格中，選擇 **Customer managed keys (客戶受管金鑰)**。

1. 在**客戶受管金鑰**下，選擇要用於加密清查檔案的客戶受管金鑰。

1. 在 **Key policy (金鑰政策)** 區段中，選擇 **Switch to policy view (切換至政策檢視)**。

1. 若要更新金鑰政策，請選擇 **Edit (編輯)**。

1. 在**編輯金鑰政策**頁面上，將下列幾行新增至現有的金鑰政策。針對 `{{source-account-id}}` 和 `{{{{amzn-s3-demo-source-bucket}}}}`，提供您的使用案例適用的值。

   ```
   {
       "Sid": "Allow Amazon S3 use of the customer managed key",
       "Effect": "Allow",
       "Principal": {
           "Service": "s3.amazonaws.com"
       },
       "Action": [
           "kms:GenerateDataKey"
       ],
       "Resource": "*",
       "Condition":{
         "StringEquals":{
            "aws:SourceAccount":"{{source-account-id}}"
        },
         "ArnLike":{
           "aws:SourceARN": "arn:aws:s3:::{{{{amzn-s3-demo-source-bucket}}}}"
        }
      }
   }
   ```

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

如需建立客戶受管金鑰和使用金鑰政策的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的下列連結：
+ [管理金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)
+ [中的金鑰政策 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)

**注意**  
確保目的地儲存貯體政策中未新增任何拒絕陳述式，以防止將庫存報告傳送至此儲存貯體。如需詳細資訊，請參閱[我無法產生 Amazon S3 庫存報告。為什麼會發生此情況](https://repost.aws/knowledge-center/s3-inventory-report)。

## 使用 S3 主控台設定清查
<a name="configure-inventory-console"></a>

使用這些說明來設定使用 S3 主控台的清查。
**注意**  
Amazon S3 最長可能需要 48 小時的時間才能提供第一份庫存清單報告。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 在儲存貯體清單中，選擇您要設定其 Amazon S3 庫存清單的儲存貯體名稱。

1. 選擇 **Management** (管理) 標籤，

1. 在 **Inventory configurations (清查組態)** 下，選擇 **Create inventory configuration (建立清查組態)**。

1. 在**清查組態名稱**中，輸入名稱。

1. 針對**庫存清單範圍**，執行下列操作：
   + 輸入選擇性字首。
   + 選擇要包含的物件版本：**僅目前版本**或**包含所有版本**。

1. 在 **Report details** (報告詳細資訊) 下，選擇要儲存報告的 AWS 帳戶 位置：**This account** (此帳戶) 或 **A different account** (不同帳戶)。

1. 在**目的地**下，選擇要儲存庫存清單報告的目的地儲存貯體。

   目的地儲存貯體必須與您要設定清查的儲存 AWS 區域 貯體位於相同的 中。目的地儲存貯體可位於不同的 AWS 帳戶中。指定目的地儲存貯體時，您也可以加入選用的字首，以將庫存清單報告集中在一起。

   在**目的地儲存貯體**欄位下，您會看到**目的地儲存貯體許可**陳述式，這會新增至目的地儲存貯體政策，以允許 Amazon S3 將資料放入該儲存貯體中。如需詳細資訊，請參閱[建立目的地儲存貯體政策](#configure-inventory-destination-bucket-policy)。

1. 在**頻率**下，選擇產生報告的頻率：**每日**或**每週**。

1. 針對**輸出格式**，選擇下列其中一種報告格式：
   + **CSV** - 如果您打算使用此庫存清單報告進行 S3 批次操作，或是您想要在其他工具 (例如 Microsoft Excel) 中分析此報告，請選擇 **CSV**。
   + **Apache ORC**
   + **Apache Parquet**

1. 在 **Status (狀態)** 下，選擇 **Enable (啟用)** 或 **Disable (停用)**。

1. 若要設定伺服器端加密，請在**清查報告加密**之下,遵循下列步驟：

   1. 在**伺服器端加密**下，選擇**不要指定加密金鑰**或**指定加密金鑰**以加密資料。
      + 若要在將物件存放到 Amazon S3 時，保留預設伺服器端加密的儲存貯體設定，請選擇**不指定加密金鑰**。只要儲存貯體目的地已啟用 S3 儲存貯體金鑰，複製操作便會在目的地儲存貯體中套用 S3 儲存貯體金鑰。
**注意**  
如果指定目的地的儲存貯體政策要求先加密物件，再將其儲存在 Amazon S3 中，則您必須**指定加密金鑰**。否則，便無法將物件複製到目的地。
      + 若要先加密物件再存放到 Amazon S3，請選擇**指定加密金鑰**。

   1. 如果您選擇**指定加密金鑰**，則必須在**加密類型**下，選擇**Amazon S3 受管金鑰 (SSE-S3)** 或 **AWS Key Management Service 金鑰 (SSE-KMS)**。

      SSE-S3 使用目前最強大的其中一種區塊加密法，也就是 256 位元進階加密標準 (AES-256)，來加密每個物件。SSE-KMS 可以讓您更完善地控制金鑰。如需 SSE-S3 的詳細資訊，請參閱 [使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密](UsingServerSideEncryption.md)。如需 SSE-KMS 的詳細資訊，請參閱「[搭配 AWS KMS 金鑰使用伺服器端加密 (SSE-KMS)](UsingKMSEncryption.md)」。
**注意**  
若要使用 SSE-KMS 加密清查清單檔案，您必須對 Amazon S3 授予許可使用客戶受管金鑰。如需說明，請參閱[對 Amazon S3 授予許可使用 KMS 金鑰進行加密](#configure-inventory-kms-key-policy)。

   1. 如果您選擇**AWS Key Management Service 金鑰 (SSE-KMS)**，您可以在 下**AWS KMS key**，透過下列其中一個選項指定您的 AWS KMS 金鑰。
**注意**  
如果存放清查清單檔案的目的地儲存貯體由不同的 擁有 AWS 帳戶，請確定您使用完整 KMS 金鑰 ARN 來指定 KMS 金鑰。
      + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從 AWS KMS 金鑰中選擇**，然後從可用的金鑰清單中選擇對稱加密 KMS 金鑰。確定 KMS 金鑰與您的儲存貯體位於相同的區域。
**注意**  
 AWS 受管金鑰 (`aws/s3`) 和您的客戶受管金鑰都會顯示在清單中。不過，SSE-KMS 加密搭配 S3 庫存不支援 AWS 受管金鑰 (`aws/s3`)。
      + 若要輸入 KMS 金鑰 ARN，請選擇**輸入 AWS KMS 金鑰 ARN**，然後在出現的欄位中輸入您的 KMS 金鑰 ARN。
      + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

1. 針對**其他欄位**，選取下列其中一項或多項以新增至庫存清單報告中：
   + **大小** - 物件大小 (以位元組為單位)，不包括未完成的分段上傳、物件中繼資料和刪除標記的大小。
   + **上次修改日期** – 物件建立日期或上次修改日期，以最近者為準。
   +  **Multipart upload (分段上傳)** – 指出物件的上傳方式為分段上傳。如需詳細資訊，請參閱「[在 Amazon S3 中使用分段上傳來上傳和複製物件](mpuoverview.md)」。
   + **Replication status (複寫狀態)** – 物件的複寫狀態。如需詳細資訊，請參閱[取得複寫狀態資訊](replication-status.md)。
   + **加密狀態** - 用來加密物件的伺服器端加密類型。如需詳細資訊，請參閱[使用伺服器端加密保護資料](serv-side-encryption.md)。
   + **儲存貯體金鑰狀態** – 指出 產生的儲存貯體層級金鑰是否 AWS KMS 套用至物件。如需詳細資訊，請參閱[使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本](bucket-key.md)。
   + **物件存取控制清單** – 每個物件的存取控制清單 (ACL)，定義哪些 AWS 帳戶 或 群組獲授予此物件的存取權，以及獲授予的存取權類型。如需此欄位的詳細資訊，請參閱 [使用物件 ACL 欄位](objectacl.md)。如需 ACL 的詳細資訊，請參閱「[存取控制清單 (ACL) 概觀](acl-overview.md)」。
   + **物件擁有者** - 物件的擁有者。
   + **儲存類別** - 用於存放物件的儲存類別。
   + **Intelligent-Tiering：存取方案** - 指出物件的存取方案 (經常或不常) (如果儲存在 Intelligent-Tiering 儲存類別中)。如需詳細資訊，請參閱[存取模式會變更或不明的自動最佳化資料的儲存體方案](storage-class-intro.md#sc-dynamic-data-access)。
   + **ETag** – 實體標籤 (ETag) 是物件的雜湊值。ETag 只會反映物件內容的變更，而非其中繼資料的變更。ETag 可能是 (也可能不是) 物件資料的 MD5 摘要。取決於建立物件的方式，及其加密的方式。如需詳細資訊，請參閱 Amazon Simple Storage Service API 參考**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)。
   + **檢查總和演算法** - 說明用於建立物件的檢查總和演算法。如需詳細資訊，請參閱[使用支持的檢查總和演算法](checking-object-integrity-upload.md#using-additional-checksums)。
   + **所有物件鎖定組態** - 物件的物件鎖定狀態，包括下列設定：
     + **物件鎖定：保留模式** - 套用於物件的保護層級：*控管*或*合規*。
     + **物件鎖定：保留截止日期** - 此日期之後才能刪除鎖定的物件。
     + **物件鎖定：法務保存措施狀態** - 鎖定物件的法務保存措施狀態。

     如需 S3 物件鎖定的詳細資訊，請參閱 [S3 物件鎖定的運作方式](object-lock.md#object-lock-overview)。
   + **生命週期過期日期** – 庫存報告中物件的生命週期過期時間戳記。只有在適用的生命週期規則使物件過期時，才會填入此欄位。在其他情況下， 欄位將為空。如需詳細資訊，請參閱[即將到期的物件](lifecycle-expire-general-considerations.md)。

   如需清查報告內容的詳細資訊，請參閱 [Amazon S3 清查清單](storage-inventory.md#storage-inventory-contents)。

   如需限制存取庫存組態中特定選用中繼資料欄位的詳細資訊，請參閱[控制 S3 庫存報告組態建立](example-bucket-policies.md#example-bucket-policies-s3-inventory-2)。

1. 選擇**建立**。

## 使用 REST API 搭配 S3 庫存清單
<a name="rest-api-inventory"></a>

以下是您可以搭配 Amazon S3 庫存清單使用的 REST 操作。
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEInventoryConfiguration.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketListInventoryConfigs.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketListInventoryConfigs.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html) 