建立組織的追蹤 AWS CLI - AWS CloudTrail

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

建立組織的追蹤 AWS CLI

您可以使用 AWS CLI。 該 AWS CLI 定期使用其他功能和命令進行更新。為了確保成功,請確保您已安裝或更新到最新版本 AWS CLI 在開始之前的版本。

注意

本節中的範例是建立和更新組織追蹤的特定示範。有關使用的示例 AWS CLI 若要管理軌跡,請參閱管理軌跡 AWS CLI設定 CloudWatch 記錄監控 AWS CLI。建立或更新組織追蹤時 AWS CLI,您必須使用 AWS CLI 管理帳戶中的設定檔或具有足夠權限的委派管理員帳戶。如果您要將組織追蹤轉換為非組織追蹤,則必須使用該組織的管理帳戶。

您必須設定 Amazon S3 儲存貯體用於組織追蹤才有足夠的許可。

建立或更新 Amazon S3 儲存貯體以存放組織追蹤的日誌檔案

您必須指定 Amazon S3 儲存貯體以接收組織追蹤的日誌檔案。此值區必須具有允 CloudTrail 許將組織的記錄檔放入值區的政策。

以下是名為的 Amazon S3 儲存貯體的範例政策 amzn-s3-demo-bucket,這是由組織的管理帳戶所擁有。Replace (取代) amzn-s3-demo-bucket, region, managementAccountID, trailNameo-organizationID 與您的組織的價值

此儲存貯體政策包含三個陳述式。

  • 第一個語句 CloudTrail 允許在 Amazon S3 存儲桶調用 Amazon S3 GetBucketAcl 動作。

  • 第二個陳述式允許記錄當追蹤從組織追蹤變更成僅限該帳戶使用的事件。

  • 第三個陳述式允許組織追蹤記錄。

範例政策會納入 Amazon S3 儲存貯體政策的 aws:SourceArn 條件金鑰。IAM全域條件金鑰aws:SourceArn有助於確保僅針對特定追蹤或追蹤 CloudTrail 寫入 S3 儲存貯體。在組織追蹤中,的值aws:SourceArn必須ARN是管理帳戶所擁有且使用管理帳戶 ID 的追蹤。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } } ] }

這個範例政策不允許成員帳戶中任何使用者存取為該組織建立的日誌檔案。在預設情況下,只有管理帳戶才能存取組織日誌檔案。如需有關如何允許成員帳戶中的IAM使用者讀取 Amazon S3 儲存貯體的資訊,請參閱在 AWS 帳戶之間共用 CloudTrail 記錄檔

啟用 CloudTrail 為受信任的服務 AWS Organizations

您必須先啟用 Organizations 中的所有功能,才能建立組織追蹤。如需詳細資訊,請參閱啟用組織中的所有功能,或是使用管理帳戶中具備足夠許可之設定檔來執行以下命令:

aws organizations enable-all-features

啟用所有功能之後,您必須將「Organizations」設定 CloudTrail 為信任的服務。

若要建立信任的服務關係 AWS Organizations 並開啟終端機或命令列 CloudTrail,並在管理帳戶中使用設定檔。依照下面範例示範的方式來執行 aws organizations enable-aws-service-access 命令。

aws organizations enable-aws-service-access --service-principal cloudtrail.amazonaws.com

使用 create-trail

建立套用到所有區域的組織追蹤

若要建立套用到所有區域的組織追蹤,請新增 --is-organization-trail--is-multi-region-trail 選項。

注意

當您建立組織追蹤時 AWS CLI,您必須使用 AWS CLI 管理帳戶中的設定檔或具有足夠權限的委派管理員帳戶。

以下範例會建立組織追蹤,將所有區域的日誌傳遞到名為 amzn-s3-demo-bucket 的現有儲存貯體:

aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-s3-demo-bucket --is-organization-trail --is-multi-region-trail

若要確認所有區域都有您的追蹤,輸出中的 IsOrganizationTrailIsMultiRegionTrail 參數會同時設定為 true

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
注意

執行 start-logging 命令來為追蹤啟動記錄功能。如需詳細資訊,請參閱 停止及啟動追蹤的記錄功能

將組織追蹤建立成單一區域追蹤

下列命令會建立只記錄單一事件的組織追蹤 AWS 區域,也稱為單一區域路徑。所以此 AWS 記錄事件的區域是在組態設定檔中指定的區域 AWS CLI.

aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-s3-demo-bucket --is-organization-trail

如需詳細資訊,請參閱 CloudTrail 資源、S3 儲存貯體和KMS金鑰的命名需求

輸出範例:

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }

依預設,create-trail 命令會建立單一區域追蹤,而且該追蹤不會啟用日誌檔案驗證。

注意

執行 start-logging 命令來為追蹤啟動記錄功能。

執行 update-trail 以更新組織追蹤

您可以執行update-trail命令來變更組織軌跡的組態設定,或套用現有的軌跡至單一 AWS 佔整個組織。請記住您只能從該追蹤建立所在區域執行 update-trail 命令。

注意

如果您使用 AWS CLI 或其中一個 AWS SDKs要更新跟踪,請確保跟踪的存儲桶策略是 up-to-date。如需詳細資訊,請參閱建立組織的追蹤 AWS CLI

當您更新組織追蹤時 AWS CLI,您必須使用 AWS CLI 管理帳戶中的設定檔或具有足夠權限的委派管理員帳戶。如果您要將組織追蹤轉換為非組織追蹤,則必須使用該組織的管理帳戶,因為管理帳戶是所有組織資源的擁有者。

CloudTrail 即使資源驗證失敗,也會更新成員帳號中的組織追蹤。驗證失敗的範例包括:

  • 不正確的 Amazon S3 存儲桶政策

  • 不正確的 Amazon SNS 主題政策

  • 無法傳遞至 CloudWatch 記錄檔記錄群組

  • 使用KMS金鑰加密權限不足

具有 CloudTrail 權限的成員帳戶可以在 CloudTrail 主控台上檢視追蹤的詳細資料頁面,或執行 AWS CLI get-trail-status指令。

將現有追蹤套用到組織

若要變更現有追蹤,使其同時套用至組織,而非單一追蹤 AWS 帳戶,新增選--is-organization-trail項,如下列範例所示。

注意

使用管理帳戶將現有的非組織追蹤變更為組織追蹤。

aws cloudtrail update-trail --name my-trail --is-organization-trail

若要確認追蹤現在會套用到組織,輸出中的 IsOrganizationTrail 元素會顯示 true 的值。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }

在前述範例中,追蹤被設定成套用到所有區域 ("IsMultiRegionTrail": true)。只套用到單一區域的追蹤,將在輸出中顯示 "IsMultiRegionTrail": false

將套用到一個區域的組織追蹤轉換成套用到所有區域

若要將現有的組織追蹤變更成可套用至所有區域,請新增 --is-multi-region-trail 選項,如下列範例中所示。

aws cloudtrail update-trail --name my-trail --is-multi-region-trail

若要確認追蹤現在會套用到所有區域,輸出中的 IsMultiRegionTrail 參數會顯示 true 的值。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }