使用 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 和亞馬遜 EBS 中使用者、角色或AWS服務所採取的操作記錄。 CloudTrail 以事件形式擷取 Amazon EC2 和 Amazon EBS 的所有 API 呼叫,包括來自主控台的呼叫以及從程式碼呼叫到 API。如果您建立追蹤,您可以啟用持續交付 CloudTrail 事件到 Amazon S3 儲存貯體,包括適用於 Amazon EC2 和 Amazon EBS 的事件。如果您未設定追蹤,您仍然可以在 [事件歷程記錄] 中檢視 CloudTrail 主控台中最近的事件。使用收集的資訊 CloudTrail,您可以判斷向 Amazon EC2 和 Amazon EBS 提出的請求、提出請求的來源 IP 地址、提出請求的人員、提出請求的時間以及其他詳細資訊。

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

Amazon EC2 和 Amazon EBS 信息 CloudTrail

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

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

所有 Amazon EC2 動作和亞馬遜 EBS 管理動作都由記錄下來, CloudTrail 並記錄在 Amazon EC2 API 參考中。例如,呼叫RunInstancesDescribeInstances、或CreateImage動作會在 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 記錄檔