Amazon S3 清查 - Amazon Simple Storage Service

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

Amazon S3 清查

重要

Amazon S3 現在將伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 套用為 Amazon S3 中每個儲存貯體的基本加密層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態可在 AWS CloudTrail 日誌、S3 庫存、S3 儲存鏡頭、Amazon S3 主控台中使用,以及作為和 AWS 開發套件中的額外 Amazon S3 API 回應標頭。 AWS Command Line Interface 如需詳細資訊,請參閱預設加密常見問答集

您可以使用 Amazon S3 庫存清單來協助您管理儲存。例如,您可以用它來稽核及回報物件的複寫與加密狀態,以滿足業務、合規及法規需求。您也可以使用 Amazon S3 庫存清單來簡化及加速商業工作流程與大數據任務,該庫存清單提供了 Amazon S3 同步 List API 操作的排程替代方式。Amazon S3 庫存清單不會使用 List API 操作來稽核您的物件,也不會影響儲存貯體的請求率。

Amazon S3 庫存清單提供的逗號分隔值 (CSV)、Apache 最佳化行列式 (ORC),或 Apache Parquet 輸出檔,每天或每週為 S3 儲存貯體或共用字首的物件 (也就是名稱開頭為共同字串的物件) 列出物件及其相對應的中繼資料。若您設定每週列出庫存清單,則會在初次報告後,於每個星期日 (UTC 時區) 產生一份報告。如需有關 Amazon S3 清查定價的資訊,請參閱 Amazon S3 定價

您可以為儲存貯體設定多份清查清單。當您設定庫存清單時,可以指定下列項目:

  • 要包括在庫存清單中的物件中繼資料

  • 要列出所有物件版本或是只列出目前版本

  • 儲存庫存清單檔案輸出的位置

  • 要每天或每週產生庫存清單

  • 是否要加密庫存清單檔案

您可以使用 Amazon Athena、Amazon Redshift Spectrum、Amazon Redshift Spectrum,以及 PrestoApache Hive 和 Apache Spark 等其他工具,利用標準 SQL 來查詢 Amazon S3 庫存清單。如需使用 Athena 查詢庫存清單檔案的詳細資訊,請參閱 使用 Amazon Athena 查詢 Amazon S3 庫存

來源與目的地儲存貯體

庫存清單列出其物件的儲存貯體稱為來源儲存貯體。而存放清查清單檔案的儲存貯體稱為目的地儲存貯體

來源儲存貯體

清查會列出存放在來源儲存貯體中的物件。您可取得整個儲存貯體的庫存清單,或是依物件金鑰名稱字首篩選清單。

來源儲存貯體:

  • 包含庫存清單中列出的物件

  • 包含庫存清單的組態

Destination bucket (目標儲存貯體)

Amazon S3 清查清單檔案會寫入目的地儲存貯體。若要將所有庫存清單檔案集合在目的地儲存貯體中的共同位置,您可以在庫存清單組態中指定目的地字首。

目的地儲存貯體:

  • 包含清查檔案清單。

  • 包含的清單檔案會列出存放在目的地儲存貯體內之所有庫存清單檔案。如需詳細資訊,請參閱 清查資訊清單

  • 必須有儲存貯體政策,才能對 Amazon S3 授予許可來驗證儲存貯體擁有權,以及授予許可將檔案寫入儲存貯體。

  • 必須與來源值區位於 AWS 區域 相同的位置。

  • 可和來源儲存貯體相同。

  • 可以由不同 AWS 帳戶 於擁有來源值區的帳戶所擁有。

Amazon S3 清查清單

清查清單檔案包含來源儲存貯體的物件清單,以及各物件的中繼資料。庫存清單檔案會以下列其中一種格式存放在目的地儲存貯體中:

  • 使用 GZIP 壓縮的 CSV 檔案

  • 使用 ZLIB 壓縮的 Apache 最佳化行列式 (ORC) 檔案

  • 使用 Snappy 壓縮的 Apache Parquet 檔案

注意

不保證 Amazon S3 庫存清單報告中的物件會依任何順序進行排序。

庫存清單檔案包含來源儲存貯體中物件的清單,以及所列出的每個物件的中繼資料。

  • 儲存貯體名稱 – 要清查的儲存貯體名稱。

  • 金鑰名稱 – 物件金鑰名稱 (或稱金鑰),可唯一識別儲存貯體中的物件。若您使用 CSV 檔案格式,則金鑰名稱為 URL 編碼,且必須先解碼才能夠使用。

  • 版本 ID – 物件版本 ID。當您對儲存貯體啟用版本控制時,Amazon S3 會將版本號碼指派給已新增至儲存貯體的物件。如需詳細資訊,請參閱 在 S3 儲存貯體中使用版本控制。(如果清單僅設定為物件的目前版本,則不包含此欄位。)

  • IsLatestTrue 如果物件是物件的目前版本,則設定為。(如果清單僅設定為物件的目前版本,則不包含此欄位。)

  • 刪除標記 – 如果物件是刪除標記,則設為 True。如需詳細資訊,請參閱「在 S3 儲存貯體中使用版本控制」。(若您尚未設定報告以納入所有您的物件版本,則此欄位將自動新增至您的報告)。

  • 大小 - 物件大小 (以位元組為單位),不包括未完成的分段上傳、物件中繼資料和刪除標記的大小。

  • 上次修改日期 – 物件建立日期或上次修改日期,以最近者為準。

  • ETag – 實體標籤 (ETag) 是物件的雜湊值。ETag 只會反映物件內容的變更,而非其中繼資料的變更。ETag 可以是物件資料的 MD5 Digest。取決於建立物件的方式,及其加密的方式。

  • 儲存類別 - 用於存放物件的儲存類別。設定為 STANDARDREDUCED_REDUNDANCYSTANDARD_IAONEZONE_IAINTELLIGENT_TIERINGGLACIERDEEP_ARCHIVEOUTPOSTSGLACIER_IR 或 SNOW。如需詳細資訊,請參閱 使用 Amazon S3 儲存體方案

  • 分段上傳標記 – 如果物件是使用分段上傳方式上傳,則設為 True。如需詳細資訊,請參閱 使用分段上傳來上傳和複製物件

  • 複寫狀態 - 設定為 PENDINGCOMPLETEDFAILEDREPLICA。如需詳細資訊,請參閱 取得複寫狀態資訊

  • 加密狀態 — 伺服器端加密狀態,視使用的加密金鑰類型而定 — Amazon S3 受管 (SSE-S3) 金鑰、() 金鑰 AWS Key Management Service (SSE-KMS AWS KMS) 或客戶提供的金鑰 (SSE-C)。設定為 SSE-S3SSE-CSSE-KMS 或 NOT-SSENOT-SSE 狀態表示物件未以伺服器端加密進行加密。如需詳細資訊,請參閱「使用加密來保護資料」。

  • S3 物件鎖定保留截止日期 - 此日期之後才能刪除鎖定的物件。如需詳細資訊,請參閱 使用 S3 物件鎖定

  • S3 物件鎖定保留模式 - 針對鎖定的物件設為 GovernanceCompliance。如需詳細資訊,請參閱 使用 S3 物件鎖定

  • S3 物件鎖定法務保存措施狀態 - 如果已將法務保存措施套用到物件,則設為 On。否則會設為 Off。如需詳細資訊,請參閱 使用 S3 物件鎖定

  • S3 Intelligent-Tiering 存取方案 - 物件的存取方案 (經常或不常) (如果儲存在 S3 Intelligent-Tiering 儲存類別中)。設定為 FREQUENTINFREQUENTARCHIVE_INSTANT_ACCESSARCHIVE 或 DEEP_ARCHIVE。如需詳細資訊,請參閱 存取模式會變更或不明的自動最佳化資料的儲存體方案

  • S3 儲存貯體金鑰狀態 - 設定為 ENABLEDDISABLED。指出物件是否針對 SSE-KMS 使用 S3 儲存貯體金鑰。如需詳細資訊,請參閱 使用 Amazon S3 儲存貯體金鑰

  • 檢查總和演算法 - 指出用來為物件建立檢查總和的演算法。

  • 物件存取控制清單 — 每個物件的存取控制清單 (ACL),可定義哪些 AWS 帳戶 或群組被授與此物件的存取權,以及授與的存取類型。「物件 ACL」欄位是以 JSON 格式定義。S3 庫存報告包含與來源儲存貯體中的物件相關聯的 ACL,即使儲存貯體的 ACL 已停用也一樣。如需詳細資訊,請參閱 使用物件 ACL 欄位存取控制清單 (ACL) 概觀

    注意

    「物件 ACL」欄位是以 JSON 格式定義。庫存清單報告會以 base64 編碼字串顯示「物件 ACL」欄位的值。

    例如,假設您有下列 JSON 格式的「物件 ACL」欄位:

    { "version": "2022-11-10", "status": "AVAILABLE", "grants": [{ "canonicalId": "example-canonical-user-ID", "type": "CanonicalUser", "permission": "READ" }] }

    「物件 ACL」欄位會經過編碼,並顯示為下列 base64 編碼字串:

    eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3siY2Fub25pY2FsSWQiOiJleGFtcGxlLWNhbm9uaWNhbC11c2VyLUlEIiwidHlwZSI6IkNhbm9uaWNhbFVzZXIiLCJwZXJtaXNzaW9uIjoiUkVBRCJ9XX0=

    若要取得「物件 ACL」欄位的 JSON 解碼值,您可以在 Amazon Athena 中查詢此欄位。如需查詢範例,請參閱 使用 Amazon Athena 查詢 Amazon S3 庫存

  • 物件擁有者 - 物件的擁有者。

注意

依據物件的生命週期組態,當物件的生命週期接近結尾時,Amazon S3 會將此物件排入佇列等待移除,並會以非同步方式進行移除物件。因此,過期日期與 Amazon S3 移除物件的日期之間,可能會有所延遲。清查報告包含已過期但尚未移除的物件。如需 S3 生命週期中過期動作的詳細資訊,請參閱 即將到期的物件

建議建立刪除舊清查清單的生命週期政策。如需詳細資訊,請參閱 管理儲存生命週期

s3:PutInventoryConfiguration 許可允許使用者在設定庫存清單時選取先前針對每個物件列出的所有中繼資料欄位,並指定目的地儲存貯體來存放庫存。對目的地儲存貯體中的物件具有讀取權限的使用者可以存取庫存清單中所有可用的物件中繼資料欄位。若要限制庫存報告的存取,請參閱 授予 S3 清查與 S3 分析的許可

清查一致性

所有物件可能不會出現在每份清查清單中。庫存清單為新物件與覆寫項目的 PUT 請求及 DELETE 請求提供了最終一致性。儲存貯體的每一份庫存清單都是儲存貯體項目的快照。這些清單最終會趨於一致 (也就是說,清單可能不包括最近新增或刪除的物件)。

若要先驗證物件狀態再對物件採取動作,建議您執行 HeadObject REST API 請求,以擷取物件的中繼資料,或在 Amazon S3 主控台中檢查物件屬性。您也可以使用 AWS CLI 或 AWS SDK 檢查物件中繼資料。如需詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的 HeadObject

如需有關使用 Amazon S3 清查的詳細資訊,請參閱下列主題。