使用 AWS CloudTrail 記錄 AWS Systems Manager API 呼叫 - AWS Systems Manager

AWS Systems ManagerChange Manager 不再開放給新客戶。現有客戶可以繼續正常使用該服務。如需詳細資訊,請參閱AWS Systems ManagerChange Manager可用性變更

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

使用 AWS CloudTrail 記錄 AWS Systems Manager API 呼叫

AWS Systems Manager 整合了 AWS CloudTrail,這是一種提供使用者、角色或 AWS 服務 所採取之動作記錄的服務。CloudTrail 會將 Systems Manager 的所有 API 呼叫擷取為事件。擷取的呼叫包括從 Systems Manager 主控台進行的呼叫,以及針對 Systems Manager API 操作的程式碼呼叫。您可以利用 CloudTrail 收集的資訊來判斷向 Systems Manager 發出的請求,以及發出請求的 IP 位址、時間和其他詳細資訊。

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:

  • 該請求是使用根使用者還是使用者憑證提出。

  • 請求是否代表 IAM Identity Center 使用者提出。

  • 提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。

  • 該請求是否由另一項 AWS 服務 服務提出。

當您建立帳戶時,CloudTrail 會在 AWS 帳戶中啟用,而且您將自動獲得 CloudTrail 事件歷史記錄的存取權。CloudTrail 事件歷史記錄為 AWS 區域中過去 90 天記錄的管理事件,提供可檢視、可搜尋、可下載且不可變的記錄。如需詳細資訊,請參閱「AWS CloudTrail 使用者指南」中的使用 CloudTrail 事件歷史記錄。檢視事件歷史記錄不會產生 CloudTrail 費用。

若要持續記錄在您 AWS 帳戶中過去 90 天的事件,請建立追蹤或 CloudTrail Lake 事件資料存放區。

CloudTrail 追蹤

追蹤能讓 CloudTrail 將日誌檔交付至 Amazon S3 儲存貯體。使用 AWS 管理主控台建立的所有追蹤為多區域。您可以使用 AWS CLI 建立單一或多區域追蹤。由於您要擷取帳戶所有 AWS 區域內的活動,因此建議建立多區域追蹤。如果您建立單一區域追蹤,您只能檢視追蹤 AWS 區域中記錄的事件。如需追蹤的詳細資訊,請參閱《AWS CloudTrail使用者指南》中的為您的 AWS 帳戶建立追蹤為組織建立追蹤

您可以透過建立追蹤,免費將持續管理事件的一個複本從 CloudTrail 傳遞至您的 Amazon S3 儲存貯體,但這樣做會產生 Amazon S3 儲存費用。如需 CloudTrail 定價的詳細資訊,請參閱 AWS CloudTrail 定價。如需 Amazon S3 定價的相關資訊,請參閱 Amazon S3 定價

CloudTrail Lake 事件資料存放區

CloudTrail Lake 讓您能夠對事件執行 SQL 型查詢。CloudTrail Lake 會將分列式 JSON 格式的現有事件轉換為 Apache ORC 格式。ORC 是一種單欄式儲存格式,針對快速擷取資料進行了最佳化。系統會將事件彙總到事件資料存放區中,事件資料存放區是事件的不可變集合,其依據為您透過套用進階事件選取器選取的條件。套用在事件資料存放區的選擇器,控制哪些事件持續存在並可供您查詢。如需 CloudTrail Lake 的詳細資訊,請參閱《AWS CloudTrail使用者指南》中的使用 AWS CloudTrail Lake

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

CloudTrail 中的 Systems Manager 資料事件

資料事件提供有關在資源上或在資源中執行的資源操作的資訊 (例如,建立或開啟控制通道)。這些也稱為資料平面操作。資料事件通常是大量資料的活動。根據預設,CloudTrail 不會記錄資料事件。CloudTrail 事件歷史記錄不會記錄資料事件。

資料事件需支付額外的費用。如需 CloudTrail 定價的詳細資訊,請參閱 AWS CloudTrail 定價

您可以使用 CloudTrail 主控台、AWS CLI 或 CloudTrail API 操作來記錄 Systems Manager 資源類型的資料事件。如需有關如何記錄資料事件的詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的 Logging data events with the AWS 管理主控台Logging data events with the AWS Command Line Interface

下表列出了您可以記錄資料事件的 Systems Manager 資源類型。資料事件類型 (主控台) 欄位顯示從 CloudTrail 主控台上的資料事件類型清單中選擇的值。resources.type 值資料行會顯示 resources.type 值,您需在使用 AWS CLI 或 CloudTrail API 設定進階事件選取器時指定該值。記錄到 CloudTrail 的資料 API 資料行會針對資源類型顯示記錄到 CloudTrail 的 API 呼叫。

資料事件類型 (主控台) resources.type 值 記錄到 CloudTrail 的資料 API
Systems Manager AWS::SSMMessages::ControlChannel
  • CreateControlChannel

  • OpenControlChannel

如需有關這些操作的詳細資訊,請參閱《服務授權參考》中的 Actions defined by Amazon Message Gateway Service

Systems Manager 受管節點 AWS::SSM::ManagedNode
  • RequestManagedInstanceRoleToken:當在 Systems Manager 管理的節點上執行的 AWS Systems Manager Agent (SSM Agent) 從 Systems Manager 憑證服務請求憑證時,就會產生此事件。

如需有關 RequestManagedInstanceRoleToken 操作的詳細資訊,請參閱 使用硬體指紋驗證啟用混合模式機器

您可以設定進階事件選取器來篩選 eventNamereadOnlyresources.ARN 欄位,以僅記錄對您重要的事件。如需有關這些欄位的詳細資訊,請參閱《AWS CloudTrail API 參考》中的 AdvancedFieldSelector

CloudTrail 中的 Systems Manager 管理事件

管理事件提供有關在 AWS 帳戶 中的資源上執行之管理操作的資訊。這些也稱為控制平面操作。依預設,CloudTrail 會記錄管理事件。

Systems Manager 會將所有控制平面操作以管理事件的形式記錄到 CloudTrail。Systems Manager API 操作記載於《AWS Systems Manager API 參考》https://docs.aws.amazon.com/systems-manager/latest/APIReference/Welcome.html中。例如,對 CreateMaintenanceWindowsPutInventorySendCommand 以及 StartSession 動作發出的呼叫會在 CloudTrail 日誌檔案中產生項目。如需設定 CloudTrail 以監控 Systems Manager API 呼叫的範例,請參閱 使用 Amazon EventBridge (主控台) 監控工作階段活動

Systems Manager 事件範例

一個事件代表任何來源提出的單一請求,並包含請求 API 操作的相關資訊、操作的日期和時間、請求參數等等。CloudTrail 日誌檔案並非依公有 API 呼叫的堆疊追蹤排序,因此事件不會以任何特定順序出現。

管理事件範例

範例 1︰DeleteDocument

以下範例顯示的是對美國東部 (俄亥俄) 區域 (us-east-2) 中名為 example-Document 的文件進行 DeleteDocument 操作的 CloudTrail 事件。

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-03-06T20:19:16Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012", "userName": "example-role" } } }, "eventTime": "2018-03-06T20:30:12Z", "eventSource": "ssm.amazonaws.com", "eventName": "DeleteDocument", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "name": "example-Document" }, "responseElements": null, "requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "resources": [ { "ARN": "arn:aws:ssm:us-east-2:123456789012:document/example-Document", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012", "eventCategory": "Management" }
範例 2︰StartConnection

以下範例顯示適用於在美國東部 (俄亥俄) 區域 (us-east-2) 使用 Fleet Manager 啟動 RDP 連線之使用者的 CloudTrail 事件。基礎 API 動作是 StartConnection

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId": "123456789012", "userName": "exampleRole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-12-13T14:57:05Z", "mfaAuthenticated": "false" } } }, "eventTime": "2021-12-13T16:50:41Z", "eventSource": "ssm-guiconnect.amazonaws.com", "eventName": "StartConnection", "awsRegion": "us-east-2", "sourceIPAddress": "34.230.45.60", "userAgent": "example-user-agent-string", "requestParameters": { "AuthType": "Credentials", "Protocol": "RDP", "ConnectionType": "SessionManager", "InstanceId": "i-02573cafcfEXAMPLE" }, "responseElements": { "ConnectionArn": "arn:aws:ssm-guiconnect:us-east-2:123456789012:connection/fcb810cd-241f-4aae-9ee4-02d59EXAMPLE", "ConnectionKey": "71f9629f-0f9a-4b35-92f2-2d253EXAMPLE", "ClientToken": "49af0f92-d637-4d47-9c54-ea51aEXAMPLE", "requestId": "d466710f-2adf-4e87-9464-055b2EXAMPLE" }, "requestID": "d466710f-2adf-4e87-9464-055b2EXAMPLE", "eventID": "fc514f57-ba19-4e8b-9079-c2913EXAMPLE", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

資料事件範例

範例 1︰CreateControlChannel

以下範例顯示的 CloudTrail 事件會示範 CreateControlChannel 操作。

{ "eventVersion":"1.08", "userIdentity":{ "type":"AssumedRole", "principalId":"AKIAI44QH8DHBEXAMPLE", "arn":"arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId":"123456789012", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "sessionContext":{ "sessionIssuer":{ "type":"Role", "principalId":"AKIAI44QH8DHBEXAMPLE", "arn":"arn:aws:iam::123456789012:role/exampleRole", "accountId":"123456789012", "userName":"exampleRole" }, "attributes":{ "creationDate":"2023-05-04T23:14:50Z", "mfaAuthenticated":"false" } } }, "eventTime":"2023-05-04T23:53:55Z", "eventSource":"ssm.amazonaws.com", "eventName":"CreateControlChannel", "awsRegion":"us-east-1", "sourceIPAddress":"192.0.2.0", "userAgent":"example-agent", "requestParameters":{ "channelId":"44295c1f-49d2-48b6-b218-96823EXAMPLE", "messageSchemaVersion":"1.0", "requestId":"54993150-0e8f-4142-aa54-3438EXAMPLE", "userAgent":"example-agent" }, "responseElements":{ "messageSchemaVersion":"1.0", "tokenValue":"Value hidden due to security reasons.", "url":"example-url" }, "requestID":"54993150-0e8f-4142-aa54-3438EXAMPLE", "eventID":"a48a28de-7996-4ca1-a3a0-a51fEXAMPLE", "readOnly":false, "resources":[ { "accountId":"123456789012", "type":"AWS::SSMMessages::ControlChannel", "ARN":"arn:aws:ssmmessages:us-east-1:123456789012:control-channel/44295c1f-49d2-48b6-b218-96823EXAMPLE" } ], "eventType":"AwsApiCall", "managementEvent":false, "recipientAccountId":"123456789012", "eventCategory":"Data" }
範例 2︰RequestManagedInstanceRoleToken

以下範例顯示的 CloudTrail 事件會示範 RequestManagedInstanceRoleToken 操作。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "123456789012:aws:ec2-instance:i-02854e4bEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/aws:ec2-instance/i-02854e4bEXAMPLE", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "123456789012:aws:ec2-instance", "arn": "arn:aws:iam::123456789012:role/aws:ec2-instance", "accountId": "123456789012", "userName": "aws:ec2-instance" }, "attributes": { "creationDate": "2023-08-27T03:34:46Z", "mfaAuthenticated": "false" }, "ec2RoleDelivery": "2.0" } }, "eventTime": "2023-08-27T03:37:15Z", "eventSource": "ssm.amazonaws.com", "eventName": "RequestManagedInstanceRoleToken", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "Apache-HttpClient/UNAVAILABLE (Java/1.8.0_362)", "requestParameters": { "fingerprint": "i-02854e4bf85EXAMPLE" }, "responseElements": null, "requestID": "2582cced-455b-4189-9b82-7b48EXAMPLE", "eventID": "7f200508-e547-4c27-982d-4da0EXAMLE", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::SSM::ManagedNode", "ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-02854e4bEXAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data" }

如需有關 CloudTrail 記錄內容的資訊,請參閱《AWS CloudTrail 使用者指南》中的 CloudTrail record contents