本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 CloudTrail 事件
重要
Amazon S3 現在將伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 套用為 Amazon S3 中每個儲存貯體的基本加密層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。 AWS CloudTrail 日誌、S3 庫存、S3 Storage Lens、Amazon S3 主控台,以及 AWS Command Line Interface 和 AWS SDKs 中的其他 Amazon S3 API 回應標頭中,提供 S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態。 S3 如需詳細資訊,請參閱預設加密常見問答集。
本節提供 S3 記錄到 CloudTrail 的事件相關資訊。
CloudTrail 中的 Amazon S3 資料事件
資料事件提供在資源上或在資源中執行的資源操作的相關資訊 (例如,讀取或寫入 Amazon S3 物件)。這些也稱為資料平面操作。資料事件通常是大量資料的活動。根據預設,CloudTrail 不會記錄資料事件。CloudTrail 事件歷史記錄不會記錄資料事件。
資料事件需支付額外的費用。如需 CloudTrail 定價的詳細資訊,請參閱 AWS CloudTrail
定價
您可以使用 CloudTrail 主控台或 CloudTrail API 操作 AWS CLI來記錄 Amazon S3 資源類型的資料事件。如需如何記錄資料事件的詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的使用 AWS Management Console記錄資料事件和使用 AWS Command Line Interface記錄資料事件。
下表列出您可以記錄其資料事件的 Amazon S3 資源類型。資料事件類型 (主控台) 資料行會顯示從 CloudTrail 主控台上的資料事件類型清單中選擇的值。resources.type 值欄會顯示值,您會在使用 AWS CLI 或 CloudTrail APIs 設定進階事件選取器時指定該resources.type
值。記錄到 CloudTrail 的資料 API 資料行會針對資源類型顯示記錄到 CloudTrail 的 API 呼叫。
資料事件類型 (主控台) | resources.type 值 | 記錄到 CloudTrail 的資料 API |
---|---|---|
S3 |
AWS::S3::Object
|
|
S3 Express One Zone |
|
|
S3 存取點 |
AWS::S3::Access Point
|
|
S3 Object Lambda |
AWS::S3ObjectLambda::AccessPoint
|
|
S3 Outposts |
AWS::S3Outposts::Object
|
您可以設定進階事件選取器來篩選 eventName
、readOnly
和 resources.ARN
欄位,以僅記錄對您重要的事件。如需這些欄位的詳細資訊,請參閱AWS CloudTrail API 參考中的AdvancedFieldSelector。
CloudTrail 中的 Amazon S3 管理事件
Amazon S3 會將所有控制平面操作記錄為管理事件。如需 S3 API 操作的詳細資訊,請參閱 Amazon S3 API 參考。
CloudTrail 如何擷取對 Amazon S3 提出的請求
依預設,CloudTrail 會記錄過去 90 內發出的 S3 儲存貯體層級 API 呼叫,但不會記錄對物件提出的請求。儲存貯體層級呼叫包括 CreateBucket
、DeleteBucket
、PutBucketLifecycle
、PutBucketPolicy
等事件。您可以在 CloudTrail 主控台上查看儲存貯體層級的事件。但是,您無法在那裡檢視資料事件 (Amazon S3 物件層級呼叫),您必須在 CloudTrail 日誌中剖析或查詢這些事件。
CloudTrail 日誌記錄所追蹤的 Amazon S3 帳戶層級動作
CloudTrail 會記錄帳戶層級的動作。Amazon S3 記錄會與其他 AWS 服務 記錄一起寫入日誌檔中。CloudTrail 會根據期間與檔案大小,決定何時建立與寫入新檔案。
本節中的各表格會列出支援 CloudTrail 記錄的 Amazon S3 帳戶層級動作。
Amazon S3 透過 CloudTrail 記錄追蹤的帳戶層級 API 動作會顯示為下列事件名稱。CloudTrail 事件名稱與 API 動作名稱不同。例如,DeletePublicAccessBlock 是 DeleteAccountPublicAccessBlock。
CloudTrail 日誌記錄所追蹤的 Amazon S3 儲存貯體層級動作
CloudTrail 預設會記錄一般用途儲存貯體的儲存貯體層級動作。Amazon S3 記錄會與日誌檔案中的其他 AWS 服務記錄一起寫入。CloudTrail 會根據期間與檔案大小,決定何時建立與寫入新檔案。
此區段列出支援 CloudTrail 記錄的 Amazon S3 儲存貯體層級動作。
Amazon S3 透過 CloudTrail 記錄追蹤的儲存貯體層級 API 動作會顯示為下列事件名稱。有些情況下,CloudTrail 事件名稱會與 API 動作名稱不同。例如,PutBucketLifecycleConfiguration
為 PutBucketLifecycle
。
除了這些 API 操作之外,您也可以使用 OPTIONS 物件的物件層級動作。此動作視為 CloudTrail 日誌記錄中的儲存貯體層操作,因為此動作會檢查儲存貯體的 CORSA 組態。
CloudTrail 記錄所追蹤的 Amazon S3 Express One Zone 儲存貯體層級 (地區 API 端點) 動作
CloudTrail 預設會將目錄儲存貯體的儲存貯體層級動作記錄為管理事件。S3 Express One Zone 的 CloudTrail 管理事件 eventsource
為 s3express.amazonaws.com
。
下列這些地區端點 API 操作會記錄到 CloudTrail。
如需詳細資訊,請參閱使用適用於 S3 Express One Zone 的 AWS CloudTrail 記錄
跨帳戶案例中的 Amazon S3 物件層級動作
下列特殊使用案例包含跨帳戶案例中的物件層級 API 呼叫與 CloudTrail 日誌回報方式。CloudTrail 會將日誌傳送給請求者 (進行 API 呼叫的帳戶),但日誌項目遭到修訂或省略而導致存取遭拒的某些情況則除外。設定跨帳戶存取時,請考慮本節中的範例。
注意
這些範例假設已適當地設定 CloudTrail 日誌。
範例 1:CloudTrail 將日誌交付給儲存貯體擁有者
即使在儲存貯體擁有者沒有相同物件 API 操作的許可時,CloudTrail 也會將日誌交付給儲存貯體擁有者。請考慮下列跨帳戶案例:
-
帳戶 A 擁有儲存貯體。
-
帳戶 B (申請者) 嘗試存取該儲存貯體中的物件。
-
帳戶 C 擁有物件。帳戶 C 可能與 A 帳戶相同,也可能不相同。
注意
CloudTrail 一律會將物件層級 API 日誌交付給申請者 (帳戶 B)。此外,即使在儲存貯體擁有者未擁有物件 (帳戶 C),或對該物件上相同的 API 動作沒有許可時,CloudTrail 也會將相同的日誌交付給儲存貯體擁有者 (帳戶 A)。
範例 2:CloudTrail 不會大量增加用於設定物件 ACL 的電子郵件地址
請考慮下列跨帳戶案例:
-
帳戶 A 擁有儲存貯體。
-
帳戶 B (申請者) 會傳送要求以使用電子郵件地址設定物件 ACL 授予。如需 ACL 的詳細資訊,請參閱「存取控制清單 (ACL) 概觀」。
請求者會取得日誌與電子郵件資訊。不過,儲存貯體擁有者 (如果他們像範例 1 一樣有資格接收日誌) 會取得回報事件的 CloudTrail 日誌。不過,儲存貯體擁有者不會取得 ACL 組態資訊,特別是被授與者電子郵件地址與授予。日誌告訴儲存貯體擁有者的唯一資訊是帳戶 B 已提出 ACL API 呼叫。