EC2上のコンテナパッケージ情報の登録・更新
本ページでは、LinuxベースのEC2インスタンスにおいて、実行中のコンテナ内のパッケージ情報を収集し、SIDfm VMへ自動的に登録・更新する手順をご案内します。
1. 概要
- 本手順は、EC2 インスタンス上で動作するコンテナに対し、AWS Systems Manager Run Command または SSH を利用してコマンドを実行します。
-
本手順では、次の2通りの実行パターンに対応しています。
- 状況 1:EC2インスタンスからVMサーバへ直接アクセス可能
→ パッケージ情報の収集と登録を同一サーバ上で実行 - 状況 2:EC2インスタンスからVMサーバへ直接アクセス不可
→ パッケージ情報収集後、別のサーバからVM登録処理を実行
ご利用中の環境に応じて、該当する手順に従ってください。
- 状況 1:EC2インスタンスからVMサーバへ直接アクセス可能
-
対応しているコンテナのOSは こちら
のOS一覧をご参照ください。
※ Windows系のコンテナについては現在対応しておりません。
-
以下のOSは、Red Hat Enterprise Linuxとして登録することで脆弱性を検出できます。
- RockyLinux 8 / 9
- Oracle Linux 8 / 9
2. 必要な条件
- 概要で記載した対応OSを使用しているコンテナが存在するEC2インスタンス
- 対象のEC2インスタンスにDockerがインストールおよび稼働していること
-
スクリプトを実行するための権限(1と2のいずれか)
-
1. AWS Systems Manager の Run Command を使用する場合
Run Command を実行するには、対象の EC2 インスタンスが SSM 管理対象であること、および実行権限(IAM ロールなど)が付与されている必要があります。 -
2. SSH で EC2 インスタンスに直接接続して実行する場合
EC2 インスタンスに SSH でログイン可能な場合は、インスタンス内で直接実行することも可能です。
この場合、操作するユーザが Docker コマンド実行の権限を持っている必要があります。
-
1. AWS Systems Manager の Run Command を使用する場合
- VM APIへのアクセスが可能なこと(以下を把握していること)
- VMサーバのホスト名(APIエンドポイントURL内のホスト名)
- APIキー
- SIDfm VM 管理者権限またはSIDfm VM 報告者権限のユーザに紐付けられた VM API キー
- システムカテゴリID
- カスタムカテゴリID
※ 設定メニューの「カテゴリ設定」画面でエクスポートを行うことで、カテゴリIDを確認できます。
ただし、エクスポートが可能なのは SIDfm VM 管理者権限を持つユーザのみです。
※ こちらの VM API
エンドポイントを使用すれば、APIキーに紐付けられたユーザがアクセス可能なカテゴリ一覧を取得でき、カテゴリIDも確認できます。
3. 手順
3.1 状況 1: EC2インスタンスからVMサーバへ直接アクセス可能な場合
-
コンテナパッケージ情報収集スクリプトの実行
以下のスクリプトを EC2 インスタンス上で実行します。
実行方法については、後述の「実行方法」をご参照ください。クリックしてスクリプト全文を表示
#!/bin/bash # 結果の保存場所 OUTPUT_DIR="/tmp/container_jsons" mkdir -p "$OUTPUT_DIR" # 実際にコマンドを実行しているユーザを表示する whoami_output=$(whoami) echo "User: $whoami_output" echo "" echo "[docker グループのメンバー一覧]" # dockerグループが存在するかチェック if getent group docker > /dev/null 2>&1; then members=$(getent group docker | cut -d: -f4) if [ -z "$members" ]; then echo "docker グループのメンバーは存在しません。" else IFS=',' read -r -a array <<< "$members" for member in "${array[@]}"; do echo "$member" done fi else echo "docker グループが存在しないか、取得できませんでした。" fi for container in $(docker ps --format "{{.ID}} {{.Image}}" | grep -v "ecs-agent" | awk '{print $1}'); do echo "=== パッケージ情報取得中 (コンテナID: $container) ===" os_info=$(docker exec -t "$container" sh -c 'if [ -f /etc/os-release ]; then . /etc/os-release && echo "$ID,$VERSION_ID,$NAME"; else echo "unknown,unknown,unknown"; fi' | tr -d '\r') os_id=$(echo "$os_info" | cut -d',' -f1) os_version=$(echo "$os_info" | cut -d',' -f2) os_name=$(echo "$os_info" | cut -d',' -f3) if [ "$os_id" = "rocky" ] || [ "$os_id" = "oracle" ]; then os_id="rhel" fi package_info=$(docker exec -t "$container" sh -c ' SHELL_CMD=$(command -v sh || command -v bash || command -v ash) if [ -z "$SHELL_CMD" ]; then echo "サポートされるシェルがありません" exit 1 fi if command -v dpkg-query >/dev/null; then dpkg-query --show --showformat='\''${Package}_${Version}\n'\'' elif command -v rpm >/dev/null; then if [ -f /etc/os-release ]; then . /etc/os-release major_version=$(echo "$VERSION_ID" | cut -d. -f1) if [ "$ID" = "amzn" ]; then rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' elif [ "$major_version" -ge 8 ]; then rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm %{modularitylabel}\n'\'' else rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' fi else rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' fi else echo "サポートされていないパッケージマネージャーです" fi' | tr -d '\r') escaped_package_info="" while IFS= read -r line; do escaped_line=$(echo "$line" | sed 's/"/\\"/g') escaped_package_info="${escaped_package_info}\"$escaped_line\"," done <<< "$package_info" escaped_package_info="[${escaped_package_info%,}]" container_json="{\"hostname\":\"${container}\",\"os\":{\"id\":\"${os_id}\",\"version\":\"${os_version}\",\"os\":\"${os_name}\"},\"packages\":${escaped_package_info}}" output_file="${OUTPUT_DIR}/${container}.json" echo "$container_json" > "$output_file" echo "コンテナ ${container} のJSONデータを ${output_file} に保存しました。" done
・スクリプトは、各コンテナのID、OS情報、インストールされているパッケージリストをJSON形式で/tmp/container_jsons
ディレクトリに保存します。
・保存するディレクトリ(OUTPUT_DIR
)は必要に応じて変更可能です。
・hostname
フィールドには、コンテナIDが自動的に割り当てられます。
・実行方法
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
上記のスクリプトを 直接貼り付けて 実行してください。 - スクリプトを保存するディレクトリを作成します。
mkdir -p ~/sidfmvm_scripts
- 上記のスクリプトを
~/sidfmvm_scripts/vm_ec2_container_collect.sh
として保存します。 - スクリプトを base64 形式に変換します。
Linux の場合:
base64 -w 0 ~/sidfmvm_scripts/vm_ec2_container_collect.sh > vm_ec2_container_collect.b64
macOS の場合:
base64 -i ~/sidfmvm_scripts/vm_ec2_container_collect.sh -o vm_ec2_container_collect.b64
- 変換したスクリプトを、変数に格納します。
ENCODED_CONTAINER_COLLECT=$(cat vm_ec2_container_collect.b64)
- 以下 AWS CLI コマンドを実行して、EC2 上でスクリプトを実行します。
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["i-xxxxxxxxxxxxxxxxx"]}]' \ --parameters "commands=[ \"echo $ENCODED_CONTAINER_COLLECT | base64 -d > /tmp/vm_ec2_container_collect.sh\", \"chmod +x /tmp/vm_ec2_container_collect.sh\", \"bash /tmp/vm_ec2_container_collect.sh\" ]"
※ i-xxxxxxxxxxxxxxxxx の部分には、対象の EC2 インスタンス ID を入力してください。
※ 詳しくは 公式チュートリアル をご参照ください。 - EC2インスタンスに直接接続し、スクリプトを保存するディレクトリを作成します。
mkdir -p ~/sidfmvm_scripts
-
上記のスクリプトを
vm_ec2_container_collect.sh
という名前で保存します。
nano ~/sidfmvm_scripts/vm_ec2_container_collect.sh
または、vim
、echo
、cat > ファイル名
など任意の方法でも構いません。 -
保存したスクリプトに実行権限を付与します。
chmod +x ~/sidfmvm_scripts/vm_ec2_container_collect.sh
-
以下のコマンドでスクリプトを実行します。
bash ~/sidfmvm_scripts/vm_ec2_container_collect.sh
-
※ この方法は Linux または macOS の環境を前提としています。
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
-
VM APIを使用したホスト登録スクリプトの実行
以下のスクリプトを EC2 インスタンス上で実行します。
実行方法については、後述の「実行方法」をご参照ください。クリックしてスクリプト全文を表示
#!/bin/bash API_ENDPOINT="http://ホスト名/redmine/sidfm/api/upload_offline_data" API_KEY="APIキー" SYSTEM_CATEGORY_ID="システムカテゴリID" CUSTOM_CATEGORY_ID="カスタムカテゴリID" OUTPUT_DIR="/tmp/container_jsons" for file in "$OUTPUT_DIR"/*.json; do echo "ファイルを処理中: $file" file_data=$(cat "$file") response=$(curl -s -X POST "$API_ENDPOINT" \ --data "q[api_key]=$API_KEY" \ --data "q[system_category_id]=$SYSTEM_CATEGORY_ID" \ --data "q[custom_category_id]=$CUSTOM_CATEGORY_ID" \ --data-urlencode "q[file_data]=$file_data") echo "ファイル [$file] の送信結果:" echo "$response" echo "----------------------------------" done
・スクリプトは、/tmp/container_jsons
ディレクトリ内のすべてのJSONファイルを読み込み、VM APIに送信し、APIの応答結果を出力します。
・API_ENDPOINT
、API_KEY
、SYSTEM_CATEGORY_ID
、CUSTOM_CATEGORY_ID
の変数を、実際のVM API情報に合わせて変更する必要があります。
・実行方法
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
上記のスクリプトを 直接貼り付けて 実行してください。 - スクリプトを保存するディレクトリを作成します。
※ すでに作成済みの場合は、この手順はスキップして構いません。
mkdir -p ~/sidfmvm_scripts
- 上記のスクリプトを
~/sidfmvm_scripts/vm_ec2_container_send.sh
として保存します。 - スクリプトを base64 形式に変換します。
Linux の場合:
base64 -w 0 ~/sidfmvm_scripts/vm_ec2_container_send.sh > vm_ec2_container_send.b64
macOS の場合:
base64 -i ~/sidfmvm_scripts/vm_ec2_container_send.sh -o vm_ec2_container_send.b64
- 変換したスクリプトを、変数に格納します。
ENCODED_CONTAINER_SEND=$(cat vm_ec2_container_send.b64)
- 以下 AWS CLI コマンドを実行して、EC2 上でスクリプトを実行します。
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["i-xxxxxxxxxxxxxxxxx"]}]' \ --parameters "commands=[ \"echo $ENCODED_CONTAINER_SEND | base64 -d > /tmp/vm_ec2_container_send.sh\", \"chmod +x /tmp/vm_ec2_container_send.sh\", \"bash /tmp/vm_ec2_container_send.sh\" ]"
※ i-xxxxxxxxxxxxxxxxx の部分には、対象の EC2 インスタンス ID を入力してください。
※ 詳しくは 公式チュートリアル をご参照ください。 - EC2インスタンスに直接接続し、スクリプトを保存するディレクトリを作成します。
※ すでに作成済みの場合は、この手順はスキップして構いません。
mkdir -p ~/sidfmvm_scripts
-
上記のスクリプトを
vm_ec2_container_send.sh
という名前で保存します。
nano ~/sidfmvm_scripts/vm_ec2_container_send.sh
または、vim
、echo
、cat > ファイル名
など任意の方法でも構いません。 -
保存したスクリプトに実行権限を付与します。
chmod +x ~/sidfmvm_scripts/vm_ec2_container_send.sh
-
以下のコマンドでスクリプトを実行します。
bash ~/sidfmvm_scripts/vm_ec2_container_send.sh
-
※ この方法は Linux または macOS の環境を前提としています。
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
ここでは、対象となる EC2 インスタンスで 2 種類のスクリプトを実行し、各コンテナの情報を JSON ファイルとして保存・送信します。
1つ目のスクリプトは、コンテナの OS 情報やパッケージリストを収集します。
2つ目のスクリプトは、収集された JSON データを VM API に送信します。
3.2 状況 2: EC2からVMへ直接アクセスできない場合
-
コンテナパッケージ情報収集スクリプトの実行
以下のスクリプトを EC2 インスタンス上で実行します。
実行方法については、後述の「実行方法」をご参照ください。クリックしてスクリプト全文を表示
#!/bin/bash # 結果の保存場所 OUTPUT_DIR="/tmp/container_jsons" mkdir -p "$OUTPUT_DIR" # 実際にコマンドを実行しているユーザを表示する whoami_output=$(whoami) echo "User: $whoami_output" echo "" echo "[docker グループのメンバー一覧]" # dockerグループが存在するかチェック if getent group docker > /dev/null 2>&1; then members=$(getent group docker | cut -d: -f4) if [ -z "$members" ]; then echo "docker グループのメンバーは存在しません。" else IFS=',' read -r -a array <<< "$members" for member in "${array[@]}"; do echo "$member" done fi else echo "docker グループが存在しないか、取得できませんでした。" fi for container in $(docker ps --format "{{.ID}} {{.Image}}" | grep -v "ecs-agent" | awk '{print $1}'); do echo "=== パッケージ情報取得中 (コンテナID: $container) ===" os_info=$(docker exec -t "$container" sh -c 'if [ -f /etc/os-release ]; then . /etc/os-release && echo "$ID,$VERSION_ID,$NAME"; else echo "unknown,unknown,unknown"; fi' | tr -d '\r') os_id=$(echo "$os_info" | cut -d',' -f1) os_version=$(echo "$os_info" | cut -d',' -f2) os_name=$(echo "$os_info" | cut -d',' -f3) if [ "$os_id" = "rocky" ] || [ "$os_id" = "oracle" ]; then os_id="rhel" fi package_info=$(docker exec -t "$container" sh -c ' SHELL_CMD=$(command -v sh || command -v bash || command -v ash) if [ -z "$SHELL_CMD" ]; then echo "サポートされるシェルがありません" exit 1 fi if command -v dpkg-query >/dev/null; then dpkg-query --show --showformat='\''${Package}_${Version}\n'\'' elif command -v rpm >/dev/null; then if [ -f /etc/os-release ]; then . /etc/os-release major_version=$(echo "$VERSION_ID" | cut -d. -f1) if [ "$ID" = "amzn" ]; then rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' elif [ "$major_version" -ge 8 ]; then rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm %{modularitylabel}\n'\'' else rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' fi else rpm -qa --qf '\''%{name}-%{version}-%{release}.%{arch}.rpm\n'\'' fi else echo "サポートされていないパッケージマネージャーです" fi' | tr -d '\r') escaped_package_info="" while IFS= read -r line; do escaped_line=$(echo "$line" | sed 's/"/\\"/g') escaped_package_info="${escaped_package_info}\"$escaped_line\"," done <<< "$package_info" escaped_package_info="[${escaped_package_info%,}]" container_json="{\"hostname\":\"${container}\",\"os\":{\"id\":\"${os_id}\",\"version\":\"${os_version}\",\"os\":\"${os_name}\"},\"packages\":${escaped_package_info}}" output_file="${OUTPUT_DIR}/${container}.json" echo "$container_json" > "$output_file" echo "コンテナ ${container} のJSONデータを ${output_file} に保存しました。" done
・スクリプトは、各コンテナのID、OS情報、インストールされているパッケージリストをJSON形式で/tmp/container_jsons
ディレクトリに保存します。
・保存するディレクトリ(OUTPUT_DIR
)は必要に応じて変更可能です。
・hostname
フィールドには、コンテナIDが自動的に割り当てられます。
・実行方法
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
上記のスクリプトを 直接貼り付けて 実行してください。 - スクリプトを保存するディレクトリを作成します。
mkdir -p ~/sidfmvm_scripts
- 上記のスクリプトを
~/sidfmvm_scripts/vm_ec2_container_collect.sh
として保存します。 - スクリプトを base64 形式に変換します。
Linux の場合:
base64 -w 0 ~/sidfmvm_scripts/vm_ec2_container_collect.sh > vm_ec2_container_collect.b64
macOS の場合:
base64 -i ~/sidfmvm_scripts/vm_ec2_container_collect.sh -o vm_ec2_container_collect.b64
- 変換したスクリプトを、変数に格納します。
ENCODED_CONTAINER_COLLECT=$(cat vm_ec2_container_collect.b64)
- 以下 AWS CLI コマンドを実行して、EC2 上でスクリプトを実行します。
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["i-xxxxxxxxxxxxxxxxx"]}]' \ --parameters "commands=[ \"echo $ENCODED_CONTAINER_COLLECT | base64 -d > /tmp/vm_ec2_container_collect.sh\", \"chmod +x /tmp/vm_ec2_container_collect.sh\", \"bash /tmp/vm_ec2_container_collect.sh\" ]"
※ i-xxxxxxxxxxxxxxxxx の部分には、対象の EC2 インスタンス ID を入力してください。
※ 詳しくは 公式チュートリアル をご参照ください。 - EC2インスタンスに直接接続し、スクリプトを保存するディレクトリを作成します。
mkdir -p ~/sidfmvm_scripts
-
上記のスクリプトを
vm_ec2_container_collect.sh
という名前で保存します。
nano ~/sidfmvm_scripts/vm_ec2_container_collect.sh
または、vim
、echo
、cat > ファイル名
など任意の方法でも構いません。 -
保存したスクリプトに実行権限を付与します。
chmod +x ~/sidfmvm_scripts/vm_ec2_container_collect.sh
-
以下のコマンドでスクリプトを実行します。
bash ~/sidfmvm_scripts/vm_ec2_container_collect.sh
-
※ この方法は Linux または macOS の環境を前提としています。
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
-
パッケージ情報が保存された JSON ファイルの移動
EC2 インスタンス内の/tmp/container_jsons
ディレクトリ全体を、VM サーバにアクセス可能なサーバにコピーします。
※ ステップ1で、保存するディレクトリ(OUTPUT_DIR
)を変更した場合は、こちらも同様に変更内容に合わせてパスを指定してください。
以下は、ローカル環境でscp
を使用して、EC2 インスタンスから VM サーバにアクセス可能なサーバへコピーするコマンド例です。
クリックしてコマンド例を表示
scp -r ec2-user@<EC2のホスト名またはIPアドレス>:/tmp/container_jsons \ <コピー先ユーザ>@<コピー先サーバのホスト名またはIPアドレス>:~/sidfmvm_container_jsons
※
<EC2のホスト名またはIPアドレス>
、<コピー先ユーザ>
、<コピー先サーバのホスト名またはIPアドレス>
は、実際の環境に合わせて変更してください。
※ コピー先のディレクトリ(~/sidfmvm_container_jsons
)も必要に応じて変更可能です。 -
VMサーバにアクセス可能なサーバで、VM APIを使用したホスト登録スクリプトの実行
VMサーバにアクセス可能なサーバで、以下のスクリプトを実行します。
実行方法については、後述の「実行方法」をご参照ください。
クリックしてスクリプト全文を表示
#!/bin/bash API_ENDPOINT="http://ホスト名/redmine/sidfm/api/upload_offline_data" API_KEY="APIキー" SYSTEM_CATEGORY_ID="システムカテゴリID" CUSTOM_CATEGORY_ID="カスタムカテゴリID" OUTPUT_DIR="$HOME/sidfmvm_container_jsons" for file in "$OUTPUT_DIR"/*.json; do echo "ファイルを処理中: $file" file_data=$(cat "$file") response=$(curl -s -X POST "$API_ENDPOINT" \ --data "q[api_key]=$API_KEY" \ --data "q[system_category_id]=$SYSTEM_CATEGORY_ID" \ --data "q[custom_category_id]=$CUSTOM_CATEGORY_ID" \ --data-urlencode "q[file_data]=$file_data") echo "ファイル [$file] の送信結果:" echo "$response" echo "----------------------------------" done
・スクリプトは、OUTPUT_DIR
ディレクトリ内のすべてのJSONファイルを読み込み、VM APIに送信し、APIの応答結果を出力します。
・API_ENDPOINT
、API_KEY
、SYSTEM_CATEGORY_ID
、CUSTOM_CATEGORY_ID
の変数を、実際のVM API情報に合わせて変更する必要があります。
・OUTPUT_DIR
には、JSONファイルが存在する正確なパスを指定する必要があります。
・実行方法
- コピー先のサーバに直接接続し、スクリプトを保存するディレクトリを作成します。
mkdir -p ~/sidfmvm_scripts
-
上記のスクリプトを
vm_ec2_container_send.sh
という名前で保存します。
nano ~/sidfmvm_scripts/vm_ec2_container_send.sh
または、vim
、echo
、cat > ファイル名
など任意の方法でも構いません。 -
保存したスクリプトに実行権限を付与します。
chmod +x ~/sidfmvm_scripts/vm_ec2_container_send.sh
-
以下のコマンドでスクリプトを実行します。
bash ~/sidfmvm_scripts/vm_ec2_container_send.sh
-
Run Command の実行画面で、「AWS-RunShellScript」
ドキュメントを選択し、対象のEC2インスタンスを指定した上で、
上記のスクリプトを 直接貼り付けて 実行してください。 - スクリプトを保存するディレクトリを作成します。
※ すでに作成済みの場合は、この手順はスキップして構いません。
mkdir -p ~/sidfmvm_scripts
- 上記のスクリプトを
~/sidfmvm_scripts/vm_ec2_container_send.sh
として保存します。 - スクリプトを base64 形式に変換します。
Linux の場合:
base64 -w 0 ~/sidfmvm_scripts/vm_ec2_container_send.sh > vm_ec2_container_send.b64
macOS の場合:
base64 -i ~/sidfmvm_scripts/vm_ec2_container_send.sh -o vm_ec2_container_send.b64
- 変換したスクリプトを、変数に格納します。
ENCODED_CONTAINER_SEND=$(cat vm_ec2_container_send.b64)
- 以下 AWS CLI コマンドを実行して、EC2 上でスクリプトを実行します。
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["i-xxxxxxxxxxxxxxxxx"]}]' \ --parameters "commands=[ \"echo $ENCODED_CONTAINER_SEND | base64 -d > /tmp/vm_ec2_container_send.sh\", \"chmod +x /tmp/vm_ec2_container_send.sh\", \"bash /tmp/vm_ec2_container_send.sh\" ]"
※ i-xxxxxxxxxxxxxxxxx の部分には、対象の EC2 インスタンス ID を入力してください。
※ 詳しくは 公式チュートリアル をご参照ください。
-
※ この方法は、コピー先のサーバが EC2 インスタンスであることを前提としています。
-
※ この方法は、コピー先のサーバが EC2 インスタンスであることを前提としています。
※ なお、Linux または macOS の環境を前提としています。
- コピー先のサーバに直接接続し、スクリプトを保存するディレクトリを作成します。
ここでは、対象となる EC2 インスタンスでコンテナ情報を収集し、JSON ファイルとして保存します。
その後、JSON ファイルを VM サーバにアクセス可能な別のサーバへ転送し、VM API に送信します。
4. 結果の確認
VM API呼び出しスクリプトの実行後、以下の2点をご確認ください。
-
スクリプトのレスポンス出力による確認
各JSONファイルの送信結果は、APIのレスポンスにより確認できます。以下はレスポンスの形式例です。{ "success": true, "response": {} }
"success": true
の場合は送信成功を意味します。
-"success": false
の場合は送信失敗を意味し、response
フィールドにエラーの詳細が格納されます。 -
SIDfm VM管理画面での確認
SIDfm VMの管理画面にアクセスし、送信したホスト情報やパッケージ情報が正しく反映されているかご確認ください。- 設定メニューの「ホスト設定」をクリックします。
- コンテナIDがホスト名として登録されたホストが存在するかを確認します。
- ホスト登録後、約10分程で脆弱性照合が行われ、登録された情報から脆弱性が確認された場合は、登録したホストで脆弱性が検出されます。
以降はホスト毎に1日1回脆弱性照合が行われます。