本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EC2 API 與 AWS CloudTrail 整合,這項服務可提供由使用者、角色或 AWS 服務所採取之動作的記錄。CloudTrail 會將所有 Amazon EC2 API 呼叫擷取為事件。擷取的呼叫包括來自主控台的呼叫。您可以使用 CloudTrail 所收集的資訊,判斷對 Amazon EC2 API 提出的請求、提出請求的 IP 位址、人員或時間等。
每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:
-
該請求是使用根使用者還是使用者憑證提出。
-
請求是否代表 IAM Identity Center 使用者提出。
-
提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。
-
該請求是否由另一項 AWS 服務服務提出。
當您建立帳戶 AWS 帳戶 時CloudTrail 會在 中處於作用中狀態,而且您會自動存取 CloudTrail 事件歷史記錄。CloudTrail 事件歷史記錄為 AWS 區域中過去 90 天記錄的管理事件,提供可檢視、可搜尋、可下載且不可變的記錄。如需詳細資訊,請參閱「AWS CloudTrail 使用者指南」中的使用 CloudTrail 事件歷史記錄。檢視事件歷史記錄不會產生 CloudTrail 費用。
如需 AWS 帳戶 過去 90 天內持續記錄的事件,請建立追蹤或 CloudTrail Lake 事件資料存放區。
- CloudTrail 追蹤
-
線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。使用 建立的所有線索 AWS Management Console 都是多區域。您可以使用 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 中的 Amazon EC2 API 管理事件
管理事件提供在 資源上執行的管理操作的相關資訊 AWS 帳戶。這些也稱為控制平面操作。根據預設,CloudTrail 記錄管理事件。
所有 Amazon EC2 API 動作都會記錄為管理事件。如需 CloudTrail 記錄之 API 動作的清單,請參閱 Amazon EC2 API 參考。例如,對 RunInstances、 DescribeInstances 和 StopInstances動作的呼叫會記錄為管理事件。
Amazon EC2 API 事件範例
一個事件代表任何來源提出的單一請求,並包含請求 API 操作的相關資訊、操作的日期和時間、請求參數等。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"
}
]
}
如需有關 CloudTrail 記錄內容的詳細資訊,請參閱「AWS CloudTrail 使用者指南」中的CloudTrail 記錄內容。
稽核使用 EC2 Instance Connect 的連線
您可以使用 AWS CloudTrail 來稽核使用 EC2 Instance Connect 連線至執行個體的使用者。
使用 AWS CloudTrail 主控台透過 EC2 Instance Connect 稽核 SSH 活動
-
前往 https://console.aws.amazon.com/cloudtrail/
開啟 CloudTrail 主控台。 -
確認您位於正確的區域。
-
在導覽窗格中,選擇 Event history (事件歷史記錄)。
-
對於 Filter (篩選條件),請選擇 Event source (事件來源)、ec2-instance-connect.amazonaws.com。
-
(選用) 針對 Time range (時間範圍),選取時間範圍。
-
選擇 Refresh events (重新整理事件) 圖示。
-
頁面會顯示與 SendSSHPublicKey API 呼叫對應的事件。使用箭頭展開事件以檢視其他詳細資訊,例如用於建立 SSH 連線的使用者名稱和 AWS 存取金鑰,以及來源 IP 地址。
-
若要以 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 日誌檔案。