將追蹤事件複製到事件資料存放區 - AWS CloudTrail

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

將追蹤事件複製到事件資料存放區

您可以將追蹤事件複製到 CloudTrail Lake 事件資料存放區,以建立記錄至追蹤的事件 point-in-time 快照。複製追蹤的事件不會干擾追蹤記錄事件的功能,也不會以任何方式修改追蹤。

您可以將追蹤事件複製到針 CloudTrail 對事件設定的現有事件資料存放區,也可以建立新的 CloudTrail 事件資料存放區並選擇「複製追蹤事件」選項作為事件資料存放區建立的一部分。如需有關將追蹤事件複製到現有事件資料存放區的詳細資訊,請參閱 使用主控台將追蹤事件複製到現有事件資料存放區。如需有關建立新的事件資料存放區的詳細資訊,請參閱 使用主控台為 CloudTrail事件建立事件資料存放區

如果您要將追蹤事件複製到組織事件資料存放區,您必須使用組織的管理帳戶。您無法使用組織的委派管理員帳戶複製追蹤事件。

CloudTrail Lake 事件資料存放區會產生費用。建立事件資料存放區時,您可以選擇要用於事件資料存放區的定價選項。此定價選項將決定擷取和儲存事件的成本,以及事件資料存放區的預設和最長保留期。如需有關 CloudTrail 定價和管理 Lake 成本的資訊,請參閱AWS CloudTrail 定價管理 CloudTrail 湖泊成本.

將追蹤事件複製到 CloudTrail Lake 事件資料存放區時,會根據事件資料存放區擷取的未壓縮資料量產生費用。

當您將追蹤事件複製到 CloudTrail Lake 時,會 CloudTrail 解壓縮以 gzip (壓縮) 格式儲存的記錄檔,然後將記錄中包含的事件複製到您的事件資料存放區。未壓縮資料的大小可能大於實際的 S3 儲存大小。若要取得未壓縮資料大小的一般估計值,您可以將 S3 儲存貯體中的日誌大小乘以 10。

您可以縮小指定的複製事件的時間範圍,來降低該費用。如果您計劃只使用事件資料存放區來查詢複製的事件,可以關閉事件擷取以避免因未來事件而產生費用。如需詳細資訊,請參閱 AWS CloudTrail 定價管理 CloudTrail 湖泊成本

案例

下表描述一些複製追蹤事件的常見案例,以及您可以如何使用主控台應對每個案例。

案例 我可以如何在主控台中加以應對?

分析和查詢 CloudTrail 湖泊中的歷史跟踪事件,而無需攝入新事件

建立一個新的事件資料存放區,並且在建立事件資料存放區的過程中選擇複製追蹤事件選項。在建立事件資料存放區時,取消選取擷取事件 (程序中的步驟 15),以確保事件資料存放區僅包含追蹤的歷史事件而不包含未來事件。

以 CloudTrail Lake 事件資料存放區取代您現有的追蹤

使用與建立追蹤時所使用的相同事件選取器來建立事件資料存放區,以確保事件資料存放區與您的追蹤有相同的覆蓋範圍。

若要避免來源追蹤和目的地事件資料存放區之間發生重複事件,請為複製的事件選擇早於事件資料存放區建立日期的日期範圍。

在建立您的事件資料存放區後,您可以關閉追蹤記錄,以避免產生額外費用。

複製追蹤事件的考量

複製追蹤事件時,請考慮下列因素。

  • 複製追蹤事件時, CloudTrail 會使用 S3 GetObjectAPI 操作擷取來源 S3 儲存貯體中的追蹤事件。一些 S3 已封存儲存類別無法透過使用 GetObject 存取,例如 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Outposts 和 S3 Intelligent-Tiering Deep Archive 層。若要複製儲存在這些已封存儲存類別中的追蹤事件,您必須先使用 S3 RestoreObject 操作還原一個複本。如需有關還原已封存物件的詳細資訊,請參閱《Amazon S3 使用者指南》中的還原已封存的物件

  • 將追蹤事件複製到事件資料存放區時, CloudTrail 不論目的地事件資料存放區的事件類型、進階事件選取器或 AWS 區域的組態為何,都會複製所有追蹤事件。

  • 將追蹤事件複製到現有的事件資料存放區前,請務必先為您的使用案例妥善設定事件資料存放區的定價選項和保留期。

    • 定價選項:定價選項決定擷取和儲存事件的成本。如需更多關於定價選項的資訊,請參閱 AWS CloudTrail 定價事件資料存放區定價選項

    • 保留期:保留期決定事件資料在事件資料存放區中保留的時間長度。 CloudTrail 僅複製在事件資料存放區保留期eventTime內的追蹤事件。若要決定適當的保留期間,請採用您要複製的最舊事件的總和 (以天為單位),以及要在事件資料存放區中保留事件的天數 (保留期間 = oldest-event-in-days+ number-days-to-retain)。例如,如果您要複製的最舊事件為 45 天前的事件,並希望這些事件在事件資料存放區中再保留 45 天,則可以將保留期設為 90 天。

  • 如果您要複製追蹤事件到事件資料存放區以用於調查,而且不想擷取任何未來事件,您可以停止在事件資料存放區上的擷取。在建立事件資料存放區時,取消選取擷取事件選項 (程序中的步驟 15),以確保事件資料存放區僅包含追蹤的歷史事件而不包含未來事件。

  • 複製追蹤事件之前,請停用連接到來源 S3 儲存貯體的任何存取控制清單 (ACL),並更新目的地事件資料存放區的 S3 儲存貯體政策。如需更新 S3 儲存貯體政策的詳細資訊,請參閱 複製追蹤事件的 Amazon S3 儲存貯體政策。如需停用 ACL 的詳細資訊,請參閱控制物件的擁有權並停用儲存貯體的 ACL

  • CloudTrail 只會從來源 S3 儲存貯體中的 Gzip 壓縮日誌檔複製追蹤事件。 CloudTrail 不會從未壓縮的記錄檔或使用 Gzip 以外的格式壓縮的記錄檔複製追蹤事件。

  • 若要避免來源追蹤和目的地事件資料存放區之間發生重複事件,請為複製的事件選擇早於事件資料存放區建立日期的時間範圍。

  • 根據預設, CloudTrail 只會複製 S3 儲存貯體CloudTrail前綴中包含的 CloudTrail 事件和前綴內的CloudTrail前綴,而不會檢查其他 AWS 服務的前綴。如果您要複製其他前置詞中包含的 CloudTrail 事件,則必須在複製追蹤事件時選擇前置詞。

  • 若要將追蹤事件複製到組織事件資料存放區,您必須使用組織的管理帳戶。您無法使用委派的管理員帳戶將追蹤事件複製到組織事件資料存放區。

複製追蹤事件所需的許可

複製追蹤事件之前,請確定您擁有 IAM 角色的所有必要許可。如果您選擇現有的 IAM 角色來複製追蹤事件,則只需更新 IAM 角色許可。如果您選擇建立新的 IAM 角色,請 CloudTrail 提供該角色的所有必要許可。

如果來源 S3 儲存貯體使用 KMS 金鑰進行資料加密,請確保 KMS 金鑰政策允許 CloudTrail 解密儲存貯體中的資料。如果來源 S3 儲存貯體使用多個 KMS 金鑰,您必須更新每個金鑰的政策,以允許 CloudTrail 解密儲存貯體中的資料。

複製追蹤事件的 IAM 許可

複製追蹤事件時,您可以選擇建立新的 IAM 角色,也可以使用現有的 IAM 角色。當您選擇新的 IAM 角色時,請 CloudTrail 建立具有所需許可的 IAM 角色,您不需要進一步採取任何動作。

如果您選擇現有角色,請確保 IAM 角色的政策允許 CloudTrail 從來源 S3 儲存貯體複製追蹤事件。此區段提供所需 IAM 角色許可和信任政策的範例。

下列範例提供許可政策,允許 CloudTrail 從來源 S3 儲存貯體複製追蹤事件。將文件範例儲存貯體我的帳戶 eventDataStore ID 區域、前置字元和識別取代為您的組態適當的值。MyAccountId 是用於 CloudTrail 湖泊的 AWS 帳戶識別碼,可能與 S3 儲存貯體的 AWS 帳戶識別碼不同。

使用用於加密來源 S3 儲存貯體的 KMS 金鑰的值來取代 key-regionkeyAccountIDkeyID。如果來源 S3 儲存貯體不使用 KMS 金鑰進行加密,則您可以省略 AWSCloudTrailImportKeyAccess 陳述式。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketAcl"], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }, { "Sid": "AWSCloudTrailImportObjectAccess", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }, { "Sid": "AWSCloudTrailImportKeyAccess", "Effect": "Allow", "Action": ["kms:GenerateDataKey","kms:Decrypt"], "Resource": [ "arn:aws:kms:key-region:keyAccountID:key/keyID" ] } ] }

下列範例提供 IAM 信任政策,該政策 CloudTrail 允許假設 IAM 角色從來源 S3 儲存貯體複製追蹤事件。以適用於您的組態的適當值取代 MyAccountId區域eventDataStoreArnMyAccountId 是用於 CloudTrail 湖泊的 AWS 帳戶 識別碼,可能與 S3 儲存貯體的 AWS 帳戶識別碼不同。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } } ] }

複製追蹤事件的 Amazon S3 儲存貯體政策

根據預設,所有 Amazon S3 儲存貯體和物件皆為私有。只有資源擁有者 (建立儲存貯體的 AWS 帳戶),可存取儲存貯體及其包含的物件。資源擁有者可藉由編寫存取政策,將存取許可授予其他資源和使用者。

在複製追蹤事件之前,您必須更新 S3 儲存貯體政策,以允許 CloudTrail 從來源 S3 儲存貯體複製追蹤事件。

您可以將下列陳述式新增至 S3 儲存貯體政策,以授予這些權限。以適合您組態的適當值取代 roleArn 和文件範例儲存貯體

{ "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetObject" ], "Principal": { "AWS": "roleArn" }, "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] },

用於解密來源 S3 儲存貯體中資料的 KMS 金鑰政策

如果來源 S3 儲存貯體使用 KMS 金鑰進行資料加密,請確保 KMS 金鑰政策提 CloudTrail 供從已啟用 SSE-KMS 加密的 S3 儲存貯體複製追蹤事件所需的kms:GenerateDataKey權限。kms:Decrypt如果您的來源 S3 儲存貯體使用多個 KMS 金鑰,則必須更新每個金鑰的政策。更新 KMS 金鑰政策允許解密 CloudTrail 來源 S3 儲存貯體中的資料、執行驗證檢查以確保事件符合 CloudTrail標準,以及將事件複製到 CloudTrail Lake 事件資料存放區。

下列範例提供 KMS 金鑰政策,可讓您解密 CloudTrail 來源 S3 儲存貯體中的資料。將 roleArn、文件範例儲存貯體、我的帳戶 eventDataStoreID區域別碼取代為您的組態的適當值。MyAccountId 是用於 CloudTrail 湖泊的 AWS 帳戶識別碼,可能與 S3 儲存貯體的 AWS 帳戶識別碼不同。

{ "Sid": "AWSCloudTrailImportDecrypt", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Principal": { "AWS": "roleArn" }, "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreId" } } }