本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中存取稽核日誌 AWS CloudTrail
AWS CloudTrail 當您建立 AWS 帳戶 時, 會在您的 上啟用 。CloudTrail 會記錄 IAM 實體或服務所採取的活動 AWS ,例如 Amazon Managed Workflows for Apache Airflow,並記錄為 CloudTrail 事件。您可以在 CloudTrail 主控台中檢視、搜尋和下載過去 90 天的事件歷史記錄。CloudTrail 會擷取 Amazon MWAA 主控台上的所有事件,以及對 Amazon MWAA APIs 的所有呼叫。它不會擷取唯讀動作,例如 GetEnvironment或 PublishMetrics動作。此頁面說明如何使用 CloudTrail 監控 Amazon MWAA 的事件。
內容
在 CloudTrail 中建立追蹤
您需要建立追蹤來存取 中事件的持續記錄 AWS 帳戶,包括 Amazon MWAA 的事件。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。如果您未建立追蹤,您仍然可以在 CloudTrail 主控台中存取可用的事件歷史記錄。例如,使用 CloudTrail 所收集的資訊,您可以判斷向 Amazon MWAA 提出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間,以及其他詳細資訊。若要進一步了解,請參閱為您的 建立追蹤 AWS 帳戶。
記錄資料平面事件
下列 Amazon MWAA API 動作是資料平面事件:CreateWebLoginToken、 InvokeRestApi和 CreateCliToken。與管理事件不同, 預設 AWS CloudTrail 不會記錄資料事件,也不會出現在 CloudTrail 事件歷史記錄中。您必須設定明確包含資料事件的線索。需支付額外費用。如需詳細資訊,請參閱 AWS CloudTrail 《 使用者指南》中的記錄資料事件。
記錄資料平面事件
-
開啟 CloudTrail 主控台。
-
在導覽窗格中,選擇線索,然後選擇建立線索。
-
輸入線索名稱,並為日誌檔案設定 Amazon S3 儲存貯體。
-
在選擇日誌事件頁面上,選取資料事件。
-
在資料事件類型下,選擇受管 Apache Airflow。
-
檢閱您的設定,然後選擇建立追蹤。
追蹤處於作用中狀態後,CloudTrail 會在大約 15 分鐘內將資料平面事件,例如 CreateWebLoginToken、 InvokeRestApi和 交付CreateCliToken至您的 Amazon S3 儲存貯體。如果您已設定 Amazon CloudWatch Logs,請使用下列篩選條件模式來尋找這些事件:
{ ($.eventName = "InvokeRestApi") || ($.eventName = "CreateWebLoginToken") || ($.eventName = "CreateCliToken") }
未記錄回應承載
CloudTrail 會修訂日誌項目中的 RestApiResponse 欄位。CloudTrail 會記錄呼叫及其狀態碼,但不記錄回應承載。
使用 CloudTrail 事件歷史記錄存取事件
您可以在 CloudTrail 主控台中檢視事件歷史記錄,對過去 90 天內的操作和安全事件進行故障診斷。例如,您可以存取 AWS 帳戶 與每個區域 中資源 (例如 IAM 使用者或其他 AWS 資源) 建立、修改或刪除相關的事件。若要進一步了解,請參閱使用 CloudTrail 事件歷史記錄存取事件。
-
開啟 CloudTrail 主控台
。 -
選擇事件歷史記錄。
-
選取您要檢視的事件,然後選擇比較事件詳細資訊。
的範例追蹤 CreateEnvironment
追蹤是一種組態,能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。
CloudTrail 日誌檔案包含一或多個日誌專案。事件代表來自任何來源的單一請求,並包含所請求動作的相關資訊,例如動作的日期和時間,或請求參數。CloudTrail 日誌檔案不是公有 API 呼叫的排序堆疊追蹤,也不會以任何特定順序列出。下列範例是 CreateEnvironment動作的日誌項目,因為缺少許可而遭到拒絕。中的值AirflowConfigurationOptions已針對隱私權進行修訂。
{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:sts::012345678901:assumed-role/root/myuser", "accountId": "012345678901", "accessKeyId": "", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:iam::012345678901:role/user", "accountId": "012345678901", "userName": "user" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2020-10-07T15:51:52Z" } } }, "eventTime": "2020-10-07T15:52:58Z", "eventSource": "airflow.amazonaws.com", "eventName": "CreateEnvironment", "awsRegion": "us-west-2", "sourceIPAddress": "205.251.233.178", "userAgent": "PostmanRuntime/7.26.5", "errorCode": "AccessDenied", "requestParameters": { "SourceBucketArn": "arn:aws:s3:::my-bucket", "ExecutionRoleArn": "arn:aws:iam::012345678901:role/AirflowTaskRole", "AirflowConfigurationOptions": "***", "DagS3Path": "sample_dag.py", "NetworkConfiguration": { "SecurityGroupIds": [ "sg-01234567890123456" ], "SubnetIds": [ "subnet-01234567890123456", "subnet-65432112345665431" ] }, "Name": "test-cloudtrail" }, "responseElements": { "message": "Access denied." }, "requestID": "RequestID", "eventID": "EventID", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "012345678901" }
InvokeRestApi 日誌項目範例
以下是 InvokeRestApi動作的完整日誌項目範例。CloudTrail 會修訂 RestApiResponse 欄位。
在生產環境中使用臨時登入資料
此範例顯示擔任角色的臨時登入資料,這是建議的方法。對於生產工作負載,請使用來自 或 AWS Security Token Service (AWS STS) 的臨時登入資料,而非長期存取金鑰。
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "00123456ABC7DEF8HIJK:MySession", "arn": "arn:aws:sts::012345678901:assumed-role/MyRole/MySession", "accountId": "012345678901", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "00123456ABC7DEF8HIJK", "arn": "arn:aws:iam::012345678901:role/MyRole", "accountId": "012345678901", "userName": "MyRole" }, "attributes": { "creationDate": "2024-01-20T12:00:00Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-01-20T12:15:00Z", "eventSource": "airflow.amazonaws.com", "eventName": "InvokeRestApi", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.10", "userAgent": "Boto3/1.28.0 Python/3.11.0", "requestParameters": { "Name": "MyAirflowEnvironment", "Path": "/dags", "Method": "GET" }, "responseElements": { "RestApiStatusCode": 200, "RestApiResponse": "***" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "readOnly": false, "resources": [ { "accountId": "012345678901", "type": "AWS::MWAA::Environment", "ARN": "arn:aws:airflow:us-west-2:012345678901:environment/MyAirflowEnvironment" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "012345678901", "eventCategory": "Data" }
後續步驟?
-
了解如何為 CloudTrail 支援的 AWS 服務和整合中的 CloudTrail 日誌中收集的事件資料設定其他服務。 CloudTrail
-
了解如何在設定 CloudTrail 的 Amazon SNS 通知中,在 CloudTrail 將新的日誌檔案發佈至 Amazon S3 儲存貯體時收到通知 Amazon SNS CloudTrail。