傳送事件到 CloudWatch Logs - AWS CloudTrail

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

傳送事件到 CloudWatch Logs

當您將追蹤設定為將事件傳送到 CloudWatch Logs 時,CloudTrail 只會傳送符合您追蹤設定的事件。例如,如果您設定線索只記錄資料事件,您的線索只會將資料事件傳送到您的 CloudWatch Logs 日誌群組。CloudTrail 支援將資料、Insights 和管理事件傳送到 CloudWatch Logs。如需更多詳細資訊,請參閱 使用 CloudTrail 日誌檔案

注意

只有管理帳戶可以為使用主控台的組織追蹤設定 CloudWatch Logs 日誌群組。委派的管理員可以使用 AWS CLI、CloudTrail CreateTrailUpdateTrail API 作業來設定 CloudWatch Logs 日誌群組。

將事件傳送到 CloudWatch Logs 日誌群組:

使用主控台設定 CloudWatch Logs 監控

您可以使用 AWS Management Console,設定線索將事件傳送到 CloudWatch Logs 進行監控。

建立日誌群組或指定現有的日誌群組

CloudTrail 使用 CloudWatch Logs 日誌群組做為日誌事件的交付端點。您可以建立日誌群組或指定現有的日誌群組。

若要為現有的追蹤建立或指定日誌群組
  1. 請確定您使用具有足夠許可,可以設定 CloudWatch Logs 整合的管理使用者或角色登入。如需更多詳細資訊,請參閱 授與在主控台上檢視和設定 Amazon CloudWatch 日誌資 CloudTrail 訊的權限

    注意

    只有管理帳戶可以為使用主控台的組織追蹤設定 CloudWatch Logs 日誌群組。委派的管理員可以使用 AWS CLI、CloudTrail CreateTrailUpdateTrail API 作業來設定 CloudWatch Logs 日誌群組。

  2. 前往 https://console.aws.amazon.com/cloudtrail/ 開啟 CloudTrail 主控台。

  3. 選擇線索名稱。如果您選擇套用到所有區域的追蹤,系統會將您重新導向到建立該追蹤的區域。您可以在與追蹤相同的區域中建立日誌群組或選擇現有的日誌群組。

    注意

    套用到所有區域的追蹤會將所有區域的日誌檔案傳送到您指定的 CloudWatch Logs 日誌群組。

  4. CloudWatch Logs 中,選擇 Edit (編輯)。

  5. 對於 CloudWatch Logs,選擇已啟用

  6. 對於日誌群組名稱,選擇新增以建立新的日誌群組,或選擇現有以使用現有的日誌群組。如果選擇 New (新的),CloudTrail 會為您指定新日誌群組的名稱,或者您可以輸入名稱。如需有關命名的詳細資訊,請參閱 CloudTrail 的 CloudWatch Logs 日誌群組和日誌串流命名

  7. 如果選擇 Existing (現有),請從下拉式清單中選擇日誌群組。

  8. 對於角色名稱,選擇新增,為將日誌傳送至 CloudWatch Logs 的許可建立新的 IAM 角色。選擇 Existing (現有) 從下拉式功能表中選擇現有的 IAM 角色。新角色或現有角色的政策陳述式會在您展開政策文件時顯示。如需有關此角色的詳細資訊,請參閱 使用 CloudWatch 記錄進行監視 CloudTrail 的角色原則文件

    注意

    設定追蹤時,您可以選擇由其他帳戶所屬的 S3 儲存貯體和 SNS 主題。不過,如果您要 CloudTrail 將事件交付至 CloudWatch Logs 日誌群組,則必須選擇存在於目前帳戶中的日誌群組。

  9. 選擇 Save changes (儲存變更)

指定 IAM 角色

您可以指定角色,讓擔任的 CloudTrail 可以將事件交付到日誌串流。

指定角色
  1. 預設會為您指定 CloudTrail_CloudWatchLogs_Role。預設角色政策具備必要的許可,可在您指定的日誌群組中建立 CloudWatch Logs 日誌串流,並將 CloudTrail 事件交付到該日誌串流。

    注意

    如果希望此角色用於組織線索的日誌群組,您必須在角色建立之後手動修改該政策。如需更多詳細資訊,請參閱這個政策範例建立組織追蹤

    1. 若要確認角色,請前往位於 https://console.aws.amazon.com/iam/ 的 AWS Identity and Access Management 主控台。

    2. 選擇 Roles (角色),然後選擇 CloudTrail_CloudWatchLogs_Role

    3. 許可索引標籤中,展開政策以檢視其內容。

  2. 您可以指定其他角色,但若要使用它將事件傳送到 CloudWatch Logs,則必須將必要的角色政策連接到現有的角色。如需更多詳細資訊,請參閱 使用 CloudWatch 記錄進行監視 CloudTrail 的角色原則文件

在 CloudWatch 主控台中檢視事件

設定線索將事件傳送到 CloudWatch Logs 日誌群組之後,您可以在 CloudWatch 主控台中檢視事件。CloudTrail 通常會在 API 呼叫的平均約 5 分鐘內將事件傳遞到您的日誌群組。此時間無法保證。如需詳細資訊,請參閱 AWS CloudTrail 服務水準協議

在 CloudWatch 主控台中檢視事件
  1. 前往 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 在左側導覽窗格中,選擇日誌下方的日誌群組

  3. 選擇您為線索指定的日誌群組。

  4. 選擇您要檢視的日誌串流。

  5. 若要查看線索所記錄的事件詳細資訊,請選擇事件。

注意

CloudWatch 主控台中的 Time (UTC) (時間 (UTC)) 欄顯示事件交付到日誌群組的時間。若要查看 CloudTrail 記錄事件的實際時間,請查看 eventTime 欄位。

使用 AWS CLI 設定 CloudWatch Logs 監控

您可以使用 AWS CLI,設定 CloudTrail 將事件傳送到 CloudWatch Logs 進行監控。

建立日誌群組

  1. 如果您還沒有日誌群組,請使用 CloudWatch Logs create-log-group 命令,建立 CloudWatch Logs 日誌群組做為日誌事件的交付端點。

    aws logs create-log-group --log-group-name name

    下列範例會建立名為 CloudTrail/logs 的日誌群組:

    aws logs create-log-group --log-group-name CloudTrail/logs
  2. 擷取日誌群組的 Amazon Resource Name (ARN)。

    aws logs describe-log-groups

建立角色

建立角色,讓啟用它的 CloudTrail 可以將事件傳送到 CloudWatch Logs 日誌群組。IAM create-role 命令需要兩個參數:角色名稱及 JSON 格式之擔任角色政策文件的檔案路徑。您使用的政策文件會提供 AssumeRole 許可給 CloudTrail。create-role 命令會建立具備必要許可的角色。

若要建立包含政策文件的 JSON 檔案,請開啟文字編輯器,然後將下列政策內容儲存在名為 assume_role_policy_document.json 的檔案中。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

執行下列命令為 CloudTrail 建立具備 AssumeRole 許可的角色。

aws iam create-role --role-name role_name --assume-role-policy-document file://<path to assume_role_policy_document>.json

當命令完成時,記下輸出中的角色 ARN。

建立政策文件

建立下列適用於 CloudTrail 的角色政策文件。此文件會授予 CloudTrail 必要的許可,以在您指定的日誌群組中建立 CloudWatch Logs 日誌串流,並將 CloudTrail 事件交付到該日誌串流。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream2014110", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] } ] }

將政策文件儲存在名為 role-policy-document.json 的檔案中。

如果您正在建立也可用於組織線索的政策,您將需要做出稍微有些差異的設定。例如,下列政策會授予 CloudTrail 必要的許可,以在您指定的日誌群組中建立 CloudWatch Logs 日誌串流,並將 CloudTrail 事件交付到 AWS 帳戶 111111111111 中的線索和 111111111111 帳戶中建立的組織線索的日誌串流中,這些線索適用於 ID 為 o-exampleorgid 的 AWS Organizations 組織:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream20141101", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] } ] }

如需組織線索的詳細資訊,請參閱建立組織追蹤

執行下列命令將政策套用到角色。

aws iam put-role-policy --role-name role_name --policy-name cloudtrail-policy --policy-document file://<path to role-policy-document>.json

更新線索

使用 CloudTrail update-trail 命令,更新線索中的日誌群組和角色資訊。

aws cloudtrail update-trail --name trail_name --cloud-watch-logs-log-group-arn log_group_arn --cloud-watch-logs-role-arn role_arn

如需 AWS CLI 命令的詳細資訊,請參閱 AWS CloudTrail 命令列參考

限制

CloudWatch Logs 和 EventBridge 各允許事件大小上限為 256 KB。雖然大多數服務事件的大小上限為 256 KB,但某些服務仍有較大的事件。CloudTrail 不會將這些事件傳送至 CloudWatch Logs 或 EventBridge。

從 CloudTrail 事件版本 1.05 開始,事件的大小上限為 256 KB。這是為了幫助防止惡意行為者利用,並允許其他 AWS 服務使用,例如 CloudWatch Logs 和 EventBridge。