翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EC2 インスタンススタック | Log4j 情報を収集する
指定された EC2 インスタンスでの Log4j2 の出現を識別するレポートを生成します。これはベストエフォートレポートであり、一部の出現はレポートから検出されない場合があります。
完全分類: 管理 | 高度なスタックコンポーネント | 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 の詳細と最初の実行出力が表示されます。
Run parameters エリアを開き、送信した設定を確認します。ページを更新して RFC 実行ステータスを更新します。必要に応じて、RFC をキャンセルするか、ページ上部のオプションを使用してコピーを作成します。
仕組み:
インライン作成 (すべての RFC と実行パラメータを含む
create-rfcコマンドを発行) またはテンプレート作成 (2 つの JSON ファイルを作成し、1 つは RFC パラメータ用、もう 1 つは実行パラメータ用) のいずれかを使用し、2 つのファイルを入力としてcreate-rfcコマンドを発行します。どちらの方法もここで説明します。返された RFC ID を使用して RFC:
aws amscm submit-rfc --rfc-idコマンドを送信します。IDRFC:
aws amscm get-rfc --rfc-idコマンドをモニタリングします。ID
変更タイプのバージョンを確認するには、次のコマンドを使用します。
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
注記
変更タイプのスキーマの一部であるかどうかにかかわらず、任意の RFC で任意のCreateRfcパラメータを使用できます。たとえば、RFC ステータスが変更されたときに通知を受け取るには、リクエストの RFC パラメータ部分 (実行パラメータではなく) --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"にこの行を追加します。すべての CreateRfc パラメータのリストについては、AMS 変更管理 API リファレンスを参照してください。
インライン作成:
インラインで指定された実行パラメータ (インラインで実行パラメータを指定する場合は引用符をエスケープ) を指定して create 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.jsonGatherLog4jInfoParams ファイルを変更して保存し、変更するパラメータのみを保持します。たとえば、コンテンツを次のような内容に置き換えることができます。
バージョン 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.jsonGatherLog4jInfoRfc.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
この変更タイプは、Apache Log4j Java クラスの影響を受けるバージョンを含むパッケージについて、指定された EC2 インスタンスをスキャンします。この機能はベストエフォートレポートを生成し、一部の出現は検出されないか、誤って識別される可能性があります。
AWS CloudShell はブラウザベースのシェルで、AWS リソースを安全に管理、探索、操作できます。AWS CloudShell は、ログイン時にコンソール認証情報で事前認証されます。一般的な開発および運用ツールがプリインストールされているため、ローカルでのインストールや設定は必要ありません。AWS CloudShell を使用すると、AWS コマンドラインインターフェイス (AWS CLI) を使用してスクリプトをすばやく実行したり、AWS SDKs を使用して AWS サービス APIs を試したり、さまざまなツールを使用して生産性を高めることができます。ブラウザから直接 AWS CloudShell を追加料金なしで使用できます。
注記
CloudShell AWS コンソールは、他の または利用可能な最も近い AWS リージョンから、集約を実行できます。例えば、バージニアリージョンに保存されているデータの集約を実行するには、AWS コンソールの「米国東部 (バージニア) us-east-1」AWS リージョンで CloudShell を開き、次の手順に従ってください。
レポートデータには、脆弱な JndiLookup クラスを含む指定された環境内で見つかった Java アーカイブ (JAR ファイル) に関する情報が含まれます。AMS では、影響を受けるライブラリを利用可能な最新バージョンにアップグレードすることをお勧めします。最新バージョンは、Apache Log4j 2 のダウンロードで Apache
生成されたすべての 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 を使用して必要なステップを実行できます。このドキュメント「AD FS を使用して API または AWS CLI へのアクセスを Active Directory ユーザーに許可するにはどうすればよいですか?Customer_ReadOnly_Role。次に、ステップ 1 のスクリプトを実行して、必要な CSV レポートを生成します。
レポートの読み方
レポートには、次の列が含まれます。
scan_time: インスタンススキャンが実行された時刻
instance_id: EC2 インスタンス ID
scan_type: 実行されたスキャンのタイプ。たとえば、スキャンでメモリ情報を調べた場合、can_type は MEMORY になります。ファイルシステムがチェックされている場合、can_type は FILESYSTEM になります。
location: 一致へのパス
実行入力パラメータ
実行入力パラメータの詳細については、「」を参照してください変更タイプ 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%" }