本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EC2 執行個體堆疊 | 收集 Log4j 資訊
在指定的 EC2 執行個體上產生識別 Log4j2 出現的報告。 EC2 這是最佳努力報告,有些事件可能不會從報告中偵測到。
完整分類:管理 | 進階堆疊元件 | EC2 執行個體堆疊 | 收集 log4j 資訊
變更類型詳細資訊
變更類型 ID |
ct-19f40lfm5umy8 |
目前版本 |
2.0 |
預期的執行持續時間 |
360 分鐘 |
AWS 核准 |
必要 |
客戶核准 |
非必要 |
執行模式 |
自動化 |
其他資訊
更新其他 CTs
以下顯示 AMS 主控台中的此變更類型。
運作方式:
導覽至建立 RFC 頁面:在 AMS 主控台的左側導覽窗格中,按一下 RFCs以開啟 RFCs清單頁面,然後按一下建立 RFC。
在預設瀏覽變更類型檢視中選擇熱門的變更類型 (CT),或在依類別選擇檢視中選擇 CT。
依變更類型瀏覽:您可以在快速建立區域中按一下熱門的 CT,以立即開啟執行 RFC 頁面。請注意,您無法透過快速建立選擇較舊的 CT 版本。
若要排序 CTs,請使用卡片或資料表檢視中的所有變更類型區域。在任一檢視中,選取 CT,然後按一下建立 RFC 以開啟執行 RFC 頁面。如果適用,建立較舊版本選項會顯示在建立 RFC 按鈕旁。
依類別選擇:選取類別、子類別、項目和操作,如果適用,CT 詳細資訊方塊會開啟,其中包含使用較舊版本建立的選項。按一下建立 RFC 以開啟執行 RFC 頁面。
在執行 RFC 頁面上,開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要主旨 (如果您在瀏覽變更類型檢視中選擇 CT,則會為您填入)。開啟其他組態區域以新增 RFC 的相關資訊。
在執行組態區域中,使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數,請開啟其他組態區域。
完成後,請按一下執行。如果沒有錯誤,RFC 成功建立的頁面會顯示已提交的 RFC 詳細資訊,以及初始的執行輸出。
開啟執行參數區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者,取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。
運作方式:
使用內嵌建立 (您發出包含所有 RFC 和執行參數的
create-rfc命令) 或範本建立 (您建立兩個 JSON 檔案,一個用於 RFC 參數,另一個用於執行參數),並使用兩個檔案作為輸入發出create-rfc命令。此處說明這兩種方法。使用傳回的 RFC ID 提交 RFC:
aws amscm submit-rfc --rfc-id命令。ID監控 RFC:
aws amscm get-rfc --rfc-id命令。ID
若要檢查變更類型版本,請使用下列命令:
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
注意
您可以將任何CreateRfc參數與任何 RFC 搭配使用,無論它們是否為變更類型結構描述的一部分。例如,若要在 RFC 狀態變更時取得通知,請將此行新增至請求的 --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" RFC 參數部分 (而非執行參數)。如需所有 CreateRfc 參數的清單,請參閱 AMS 變更管理 API 參考。
內嵌建立:
使用內嵌提供的執行參數發出建立 RFC 命令 (在內嵌提供執行參數時逸出引號),然後提交傳回的 RFC ID。例如,您可以將內容取代為如下內容:
2.0 版:
掃描所有執行個體:
aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"AWS::EC2::Instance\",\"Values\": [\"*\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"
掃描執行個體清單:
aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"ParameterValues\",\"Values\": [\"INSTANCE_ID_1\",\"INSTANCE_ID_2\",\"INSTANCE_ID_3\",\"INSTANCE_ID_4\",\"INSTANCE_ID_5\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"
範本建立:
將此變更類型的執行參數輸出至 JSON 檔案;此範例會將其命名為 GatherLog4jInfoParams.json:
aws amscm get-change-type-version --change-type-id "ct-19f40lfm5umy8" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > GatherLog4jInfoParams.json修改並儲存 GatherLog4jInfoParams 檔案,只保留您要變更的參數。例如,您可以將內容取代為如下內容:
2.0 版:
掃描所有執行個體:
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://BUCKET_NAME" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "AWS::EC2::Instance", "Values": [ "*" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }掃描執行個體清單:
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "BUCKET_NAMEParameterValues", "Values": [ "INSTANCE_ID_1", "INSTANCE_ID_2", "INSTANCE_ID_3", "INSTANCE_ID_4", "INSTANCE_ID_5" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }將 RFC 範本輸出至目前資料夾中的檔案;此範例會將其命名為 GatherLog4jInfoRfc.json:
aws amscm create-rfc --generate-cli-skeleton > GatherLog4jInfoRfc.json修改並儲存 GatherLog4jInfoRfc.json 檔案。例如,您可以將內容取代為如下內容:
{ "ChangeTypeVersion": "2.0", "ChangeTypeId": "ct-19f40lfm5umy8", "Title": "Log4j Investigation" }建立 RFC,指定 GatherLog4jInfoRfc 檔案和 GatherLog4jInfoParams 檔案:
aws amscm create-rfc --cli-input-json file://GatherLog4jInfoRfc.json --execution-parameters file://GatherLog4jInfoParams.json
此變更類型會掃描指定的 EC2 執行個體,尋找包含受影響 Apache Log4j Java 類別版本的套件。此功能會產生最佳努力報告,某些事件可能不會偵測到或識別錯誤。
AWS CloudShell 是一種瀏覽器型 shell,可讓您輕鬆安全地管理、探索 AWS 資源,以及與您的 AWS 資源互動。當您登入時,AWS CloudShell 會使用主控台登入資料進行預先驗證。常見的開發和操作工具已預先安裝,因此不需要本機安裝或組態。使用 AWS CloudShell,您可以使用 AWS 命令列界面 (AWS CLI) 快速執行指令碼、使用 AWS SDKs試驗 AWS 服務 APIs,或使用一系列其他工具提高生產力。您可以直接從瀏覽器使用 AWS CloudShell,無需額外費用。
注意
您可以使用 CloudShell AWS 主控台從任何其他或最接近的可用 AWS 區域執行彙總。例如,若要執行存放在維吉尼亞區域中的資料彙總,請在 AWS 主控台的「美國東部 (維吉尼亞) us-east-1」AWS 區域中開啟 CloudShell,並遵循接下來提供的指示。
報告資料包含 Java Archives (JAR 檔案) 的相關資訊,可在包含易受攻擊 JndiLookup 類別的指定環境中找到。AMS 建議將受影響的程式庫升級至最新的可用版本,可直接從 Apache 下載 Apache Log4j 2 下載
若要彙總所有產生的 CSV 檔案,並使用 AWS CloudShell 建置單一報告:
從 AWS 管理主控台中的任何頁面或 AWS 區域,開啟 AWS CloudShell 以執行接下來顯示的指令碼。確保您已使用 AWSManagedServicesReadOnlyRole 角色登入 AWS 管理主控台。
# Specify the S3 bucket and AWS region that contains the individual CSV files: BUCKET_NAME="YOUR BUCKET HERE" BUCKET_REGION="THE BUCKET REGION HERE" # Aggregate the CSV files: mkdir -p log4j-report aws s3 cp s3://$BUCKET_NAME/ams/log4j-scan/ ./log4j-report --recursive --include "*.csv" echo "aws_account_id,region,scan_time,instance_id,scan_type,location" > log4j-report/report.csv for i in `find log4j-report -type f \( -iname "*.csv" ! -iname "report.csv" \)`; do awk 'FNR > 1' $i >> log4j-report/report.csv; done # Upload the report to the same S3 bucket: file_name="report_$(date -d "today" +"%Y%m%d%H%M").csv" aws s3 cp log4j-report/report.csv s3://$BUCKET_NAME/ams/log4j-reports/$file_name # Open the following URL and select \"Download\" to download the report: echo "Report uploaded to: https://s3.console.aws.amazon.com/s3/object/$BUCKET_NAME?region=$BUCKET_REGION&prefix=ams/log4j-reports/$file_name"指令碼輸出 S3 URL 以從中下載報告。
複製並開啟 URL,然後選擇下載
單一帳戶登陸區域:使用報告
如果您在單一帳戶登陸區域中工作,則無法使用 AWS CloudShell 服務。不過,您仍然可以利用 AWS CLI 來執行必要的步驟。遵循本文件,如何授予我的 Active Directory 使用者存取 API 或 AWS CLI with AD FS?Customer_ReadOnly_Role。然後執行步驟 1 中的指令碼,以產生所需的 CSV 報告。
如何讀取報告
報告包含下列資料欄:
scan_time:執行執行個體掃描的時間
instance_id:EC2 執行個體 ID
scan_type:已執行的掃描類型。例如,如果掃描查看記憶體資訊,則 scan_type 將為 MEMORY。如果已檢查檔案系統,Scan_type 將為 FILESYSTEM
位置:相符項目的路徑
執行輸入參數
如需執行輸入參數的詳細資訊,請參閱 變更類型的結構描述 ct-19f40lfm5umy8。
範例:必要參數
Example not available.
範例:所有參數
{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://test" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "ParameterValues", "Values": [ "i-1234567890abcdef0", "i-1234567890abcdef1", "i-1234567890abcdef2", "i-1234567890abcdef3", "i-1234567890abcdef4" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }