使用 AWS CloudTrail 記錄 Amazon EC2 和 Amazon EBS API 呼叫 - Amazon Elastic Compute Cloud

使用 AWS CloudTrail 記錄 Amazon EC2 和 Amazon EBS API 呼叫

Amazon EC2 和 Amazon EBS 已與 AWS CloudTrail 整合,這項服務可提供由使用者、角色或 Amazon EC2 和 Amazon EBS 中 AWS 服務所採取之動作的記錄。CloudTrail 將 Amazon EC2 和 Amazon EBS 的所有 API 呼叫擷取為事件,包括來自主控台的呼叫以及來自對 API 發出的程式碼呼叫。如果您建立線索,就可以持續將 CloudTrail 事件交付至 Amazon S3 儲存貯體,包括 Amazon EC2 和 Amazon EBS 的事件。即使您未設定追蹤,依然可以透過 CloudTrail 主控台中的 Event history (事件歷史記錄) 檢視最新事件。您可以使用 CloudTrail 收集的資訊來判斷提交給 Amazon EC2 和 Amazon EBS 的請求、提出請求的 IP 地址、提出請求的對象、提出請求的時間,以及其他詳細資訊。

若要進一步了解 CloudTrail,請參閱 AWS CloudTrail 使用者指南

CloudTrail 中的 Amazon EC2 和 Amazon EBS 資訊

當您建立帳戶時,系統即會在 AWS 帳戶中啟用 CloudTrail。當 Amazon EC2 和 Amazon EBS 中發生活動時,該活動便會與其他 AWS 服務事件一同記錄在 Event history (事件歷史記錄) 的 CloudTrail 事件中。您可以檢視、搜尋和下載 AWS 帳戶的最新事件。如需詳細資訊,請參閱使用 CloudTrail 事件歷史記錄檢視事件

若要持續記錄 AWS 帳戶中的事件 (包括 Amazon EC2 和 Amazon EBS 事件),請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設,當您在主控台建立追蹤記錄時,追蹤記錄會套用到所有區域。該追蹤會記錄來自 AWS 分割區中所有區域的事件,並將日誌檔案交付到您指定的 Amazon S3 儲存貯體。此外,您可以設定其他 AWS 服務,以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊,請參閱:

所有 Amazon EC2 動作和 Amazon EBS 管理動作都由 CloudTrail 記錄並記錄在 Amazon EC2 API 參考中。例如,對 RunInstancesDescribeInstancesCreateImage 動作的呼叫,都會在 CloudTrail 日誌檔案中產生項目。

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

  • 該請求是否使用根或 IAM 使用者憑證提出。

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

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

如需詳細資訊,請參閱 CloudTrail userIdentity 元素

了解 Amazon EC2 和 Amazon EBS 日誌檔案項目。

線索是一種組態,能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌項目。一個事件為任何來源提出的單一請求,並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔案並非依公有 API 呼叫追蹤記錄的堆疊排序,因此不會以任何特定順序出現。

以下日誌檔記錄顯示某位使用者終止了執行個體。

{ "Records":[ { "eventVersion":"1.03", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"user" }, "eventTime":"2016-05-20T08:27:45Z", "eventSource":"ec2.amazonaws.com", "eventName":"TerminateInstances", "awsRegion":"us-west-2", "sourceIPAddress":"198.51.100.1", "userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1", "requestParameters":{ "instancesSet":{ "items":[{ "instanceId":"i-1a2b3c4d" }] } }, "responseElements":{ "instancesSet":{ "items":[{ "instanceId":"i-1a2b3c4d", "currentState":{ "code":32, "name":"shutting-down" }, "previousState":{ "code":16, "name":"running" } }] } }, "requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE", "eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE", "eventType":"AwsApiCall", "recipientAccountId":"123456789012" } ] }

使用 AWS CloudTrail 來稽核透過 EC2 Instance Connect 連線的使用者

使用 AWS CloudTrail 來稽核透過 EC2 Instance Connect 連線到您的執行個體的使用者。

使用 AWS CloudTrail 主控台透過 EC2 Instance Connect 稽核 SSH 活動

  1. 開啟位於 AWS CloudTrail 的 https://console.aws.amazon.com/cloudtrail/ 主控台。

  2. 確認您位於正確的區域。

  3. 在導覽窗格中,選擇 Event history (事件歷史記錄)。

  4. 對於 Filter (篩選條件),請選擇 Event source (事件來源)ec2-instance-connect.amazonaws.com

  5. (選用) 針對 Time range (時間範圍),選取時間範圍。

  6. 選擇 Refresh events (重新整理事件) 圖示。

  7. 此頁面會顯示對應 SendSSHPublicKey API 呼叫的事件。使用箭頭來展開事件,以檢視其他的詳細資訊,例如用來進行 SSH 連線的使用者名稱和 AWS 存取金鑰,以及來源 IP 地址。

  8. 若要以 JSON 格式顯示完整事件資訊,請選擇 View event (檢視事件)requestParameters 欄位包含用來進行 SSH 連線的目的地執行個體 ID、OS 使用者名稱和公開金鑰。

    { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE", "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name", "accountId": "123456789012", "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE", "userName": "IAM-friendly-name", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-09-21T21:37:58Z"} } }, "eventTime": "2018-09-21T21:38:00Z", "eventSource": "ec2-instance-connect.amazonaws.com", "eventName": "SendSSHPublicKey ", "awsRegion": "us-west-2", "sourceIPAddress": "123.456.789.012", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": { "instanceId": "i-0123456789EXAMPLE", "osUser": "ec2-user", "SSHKey": { "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE" } }, "responseElements": null, "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add", "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34", "eventType": "AwsApiCall", "recipientAccountId": "0987654321" }

    如果您已將 AWS 帳戶設定為在 S3 儲存貯體中收集 CloudTrail 事件,則能以程式設計方式下載和稽核該資訊。如需詳細資訊,請參閱 AWS CloudTrail 使用者指南中的取得和檢視 CloudTrail 日誌檔案