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

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

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

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

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

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

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

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

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

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

案例

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

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

在 CloudTrail Lake 中分析和查詢歷史追蹤事件,而不擷取新事件

建立一個新的事件資料存放區,並且在建立事件資料存放區的過程中選擇複製追蹤事件選項。在建立事件資料存放區時,取消選取擷取事件 (程序中的步驟 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 儲存貯體的任何存取控制清單 (ACLs),並更新目的地事件資料存放區的 S3 儲存貯體政策。如需更新 S3 儲存貯體政策的詳細資訊,請參閱 複製追蹤事件的 Amazon S3 儲存貯體政策。如需停用 的詳細資訊ACLs,請參閱控制物件的擁有權和ACLs停用儲存貯體

  • 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角色的政策允許從來源 S3 儲存貯體 CloudTrail 複製追蹤事件。本節提供必要IAM角色許可和信任政策的範例。

下列範例提供許可政策, CloudTrail 允許從來源 S3 儲存貯體複製追蹤事件。Replace (取代) amzn-s3-demo-bucket, myAccountID, region, prefixeventDataStoreId 具有適用於您組態的 值。所以此 myAccountID 是用於 CloudTrail Lake AWS 的帳戶 ID,可能與 S3 儲存貯體 AWS 的帳戶 ID 不同。

Replace (取代) key-region, keyAccountIDkeyID 具有用於加密來源 S3 儲存貯體之KMS金鑰的值。如果來源 S3 儲存貯體不使用KMS金鑰進行加密,您可以省略AWSCloudTrailImportKeyAccess陳述式。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketAcl"], "Resource": [ "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-bucket/prefix", "arn:aws:s3:::amzn-s3-demo-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 儲存貯體複製追蹤事件。Replace (取代) myAccountID, regioneventDataStoreArn 具有適用於您組態的 值。所以此 myAccountID 是用於 CloudTrail Lake 的 AWS 帳戶 ID,可能與 S3 儲存貯體 AWS 的帳戶 ID 不同。

{ "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 儲存貯體政策,以授予這些許可。Replace (取代) roleArn 以及 amzn-s3-demo-bucket 具有適用於您組態的 值。

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

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

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

下列範例提供KMS金鑰政策,允許 CloudTrail 解密來源 S3 儲存貯體中的資料。Replace (取代) roleArn, amzn-s3-demo-bucket, myAccountID, regioneventDataStoreId 具有適用於您組態的 值。所以此 myAccountID 是用於 CloudTrail Lake AWS 的帳戶 ID,可能與 S3 儲存貯體 AWS 的帳戶 ID 不同。

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