目次
- 初心者から実務者向けの包括的解説
- 概要
- Inspector が解決する課題 {#課題}
- 主な特徴 {#特徴}
- アーキテクチャ {#アーキテクチャ}
- 検査対象リソース {#resources}
- 脆弱性検出メカニズム {#detection}
- CVSS スコア・優先度 {#cvss}
- CISA KEV 統合 {#cisa}
- ネットワークリーチャビリティ {#network}
- CIS Benchmarks {#cis}
- 主要ユースケース {#usecases}
- 設定・操作の具体例 {#cli}
- CI/CD パイプライン統合 {#cicd}
- アクティベーション・管理 {#activation}
- ダッシュボード・レポート {#dashboard}
- 類似サービス比較 {#comparison}
- ベストプラクティス {#bestpractices}
- トラブルシューティング {#troubleshooting}
- 2025-2026 最新動向 {#latest}
- 学習リソース・参考文献 {#resources-guide}
- 実装例・ロードマップ {#roadmap}
- 実装チェックリスト {#checklist}
- コスト・プライシング {#pricing}
- まとめ {#summary}
AWS Inspector 完全ガイド v2.0
初心者から実務者向けの包括的解説
AWS Inspector は、自動化された脆弱性管理 サービスで、EC2・ECR・Lambda・オンプレミスサーバーを継続的にスキャンし、既知の脆弱性・CIS Benchmarks 非準拠・ネットワーク露出を検出します。CVSS スコア・CISA Known Exploited Vulnerabilities(KEV)・NVD データを統合し、リスク度数・修復優先度 を自動計算。DevOps パイプライン(CI/CD)に組み込み、shift-left セキュリティを実現。本ドキュメントは、Inspector v2 の仕組み・検査対象・統合方式・運用設定・修復戦略を体系的に解説する完全ガイドです。
ドキュメントの目的
本ガイドは以下を対象としています:
- セキュリティ初心者向け:脆弱性とは何か、なぜスキャンが必要か
- DevOps・DevSecOps:CI/CD パイプライン統合・自動修復
- インフラストラクチャ管理者:EC2・ECR 脆弱性監視
- セキュリティアーキテクト:組織規模での脆弱性管理戦略
- 意思決定者向け:Wiz・Snyk・Trivy との比較
2025-2026 年の Inspector エコシステム
- Container Image SBOM 生成:ソフトウェア構成表自動生成
- CISA KEV 統合:既知悪用脆弱性の即座検出
- AI リスク優先度付け:機械学習ベースの修復優先度算出
- Kubernetes ワークロード スキャン:EKS クラスター全体監視
- ネットワークリーチャビリティ分析:実際の攻撃パスシミュレーション
- Inspector Classic 廃止(2026 年 5 月 20 日)
定義
AWS 公式による定義:
“Amazon Inspector is an automated vulnerability management service that continually scans your AWS resources and container images for software vulnerabilities and unintended network exposure.”
目次
- 概要
- Inspector が解決する課題
- 主な特徴
- アーキテクチャ
- 検査対象リソース
- 脆弱性検出メカニズム
- CVSS スコア・優先度
- CISA KEV 統合
- ネットワークリーチャビリティ
- CIS Benchmarks
- 主要ユースケース
- 設定・操作の具体例
- CI/CD パイプライン統合
- アクティベーション・管理
- ダッシュボード・レポート
- 類似サービス比較
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例・ロードマップ
- 実装チェックリスト
- コスト・プライシング
- まとめ
概要
初心者向けメモ: Inspector は「脆弱性スキャン自動化員」です。開発者が EC2 起動・Docker イメージ build → ECR push → Lambda 関数 deploy すると、Inspector が自動的に脆弱性をスキャン。既知パッチがある脆弱性は即座に通知します。
Inspector は、以下を実現する統合脆弱性管理プラットフォームです:
| 機能 | 説明 |
|---|---|
| 自動継続スキャン | 新規 EC2・ECR push 時に自動検査 |
| CVE・脆弱性データベース | NVD・CISA・内部研究統合 |
| CVSS スコアリング | 脆弱性の深刻度数値化 |
| リスク優先度付け | 実際の攻撃可能性・ビジネスインパクト考慮 |
| ネットワーク分析 | インターネット公開・脆弱性 の組み合わせ検出 |
| SBOM 生成 | ソフトウェアコンポーネント完全リスト化 |
Inspector が解決する課題 {#課題}
1. 脆弱性検出の遅延
課題:パッチ公開 → システム検査まで 週間・月間 → インシデント発生 Inspector の解決:新規リソース起動時に即座検査、リアルタイム検出
2. 大規模コンテナイメージの脆弱性把握困難
課題:数百~数千イメージ → 手動確認不可能 Inspector の解決:ECR push 時に自動スキャン、SBOM 生成
3. 脆弱性の優先度付け困難
課題:1000+ 脆弱性報告 → どれから修復すべきか不明 Inspector の解決:CVSS・CISA KEV・ネットワーク公開度で自動優先度付け
主な特徴 {#特徴}
1. リアルタイム自動スキャン
EC2 起動
↓
Inspector 自動検査開始
├─ OS 脆弱性(Amazon Linux・Ubuntu・Windows)
└─ アプリケーション脆弱性(npm・pip・Java 等)
ECR イメージ push
↓
自動スキャン
└─ ベースイメージ + アプリケーション脆弱性検出
2. 多層検査
【OS・ライブラリレベル】
├─ Amazon Linux・Ubuntu・Windows・RHEL
└─ OpenSSL・glibc・.NET 等
【アプリケーションレベル】
├─ npm(Node.js)
├─ pip(Python)
├─ Maven(Java)
└─ NuGet(.NET)
【Lambda レベル】
└─ 関数コードの依存ライブラリ脆弱性
3. CISA Known Exploited Vulnerabilities(KEV)統合
CISA KEV Catalog:
├─ 既に悪用されている脆弱性リスト
├─ 重要度:CRITICAL(最高)
└─ Inspector が即座に Alert
アーキテクチャ {#アーキテクチャ}
【図1】Inspector スキャンパイプライン
graph LR
subgraph "AWS Environment"
EC2["EC2 Instance<br/>New Launch"]
ECR["ECR Repository<br/>Image Push"]
Lambda["Lambda Function<br/>Deploy"]
end
subgraph "Inspector Service"
Agent["Inspector Agent<br/>EC2 metadata"]
Scanner["Vulnerability Scanner<br/>CVE Detection"]
Network["Network Analyzer<br/>Reachability Check"]
Risk["Risk Prioritizer<br/>CVSS + CISA"]
end
subgraph "Data Sources"
NVD["NVD<br/>National Vulnerability DB"]
CISA["CISA KEV<br/>Known Exploited"]
Internal["AWS Research<br/>Internal Findings"]
RecordedFuture["Recorded Future<br/>Threat Intel"]
end
subgraph "Output"
Finding["Inspector Finding<br/>CRITICAL/HIGH/MEDIUM/LOW"]
SBOM["SBOM<br/>Software Bill of Materials"]
Integration["EventBridge<br/>Lambda/SNS Integration"]
end
EC2 --> Agent
ECR --> Scanner
Lambda --> Scanner
Agent --> Scanner
Scanner --> Network
Network --> Risk
NVD --> Risk
CISA --> Risk
Internal --> Risk
RecordedFuture --> Risk
Risk --> Finding
Scanner --> SBOM
Finding --> Integration
【図2】脆弱性検出フロー
sequenceDiagram
participant Dev as Developer
participant AWS as AWS
participant Inspector as Inspector
participant DB as CVE Database
Dev->>AWS: 1. Push Docker Image to ECR
AWS->>Inspector: Trigger Scan
Inspector->>DB: Query CVE Data<br/>(NVD/CISA/Internal)
DB-->>Inspector: CVE List
Inspector->>Inspector: 2. Analyze Image Layers<br/>Detect Dependencies
Inspector->>Inspector: 3. Match Against<br/>CVE Database
Inspector-->>AWS: 4. Generate Findings<br/>(CRITICAL/HIGH)
AWS->>Dev: 5. Notification<br/>(SNS/EventBridge)
alt Vulnerable
Dev->>Dev: Fix Vulnerability
Dev->>AWS: Push New Image
else Clean
Dev->>AWS: Deploy to Production
end
検査対象リソース {#resources}
1. EC2 インスタンス
対応 AMI:Amazon Linux・Ubuntu・RHEL・Windows
検査項目:
├── OS パッケージ脆弱性
├── アプリケーション脆弱性
└── ネットワーク公開度(Security Group 分析)
2. ECR コンテナイメージ
検査項目:
├── ベースイメージ脆弱性
├── npm・pip・Maven 依存脆弱性
└── Dockerfile 内の脆弱性パッケージ検出
3. AWS Lambda 関数
検査項目:
├── Runtime 依存脆弱性
├── Lambda Layer ライブラリ脆弱性
└── VPC 設定によるネットワーク公開度
4. オンプレミス(AWS Systems Manager 統合)
検査項目:
├── オンプレミス EC2・サーバー脆弱性
├── ハイブリッド環境の統一管理
└── 同じ Dashboard で可視化
脆弱性検出メカニズム {#detection}
スキャン方式
Agentless Scanning(EC2・ECR)
EC2/ECR → Inspector が直接分析
├─ メタデータ取得(パッケージ情報)
├─ CVE Database と照合
└─ 脆弱性レポート生成
利点: エージェント不要・オーバーヘッド最小
Agent-Based Scanning(オンプレミス)
Systems Manager Agent → Inspector が情報収集
├─ パッケージ情報 → Inspector に転送
├─ CVE Database と照合
└─ 脆弱性レポート生成
CVE 更新頻度
- リアルタイム: 新規脆弱性発見 → 数時間内に DB 反映
- 毎日: CVE データ同期・ベースライン更新
CVSS スコア・優先度 {#cvss}
CVSS(Common Vulnerability Scoring System)
スコア範囲: 0.0 - 10.0
9.0-10.0: CRITICAL(即座に修復必須)
7.0-8.9: HIGH(至急対応)
4.0-6.9: MEDIUM(計画的対応)
0.1-3.9: LOW(継続監視)
Inspector の優先度計算
【CVSS スコア】
└─ 脆弱性の内在的な危険度
【CISA KEV フラグ】
├─ 既に悪用されている → CRITICAL に昇格
└─ 即座対応必須
【ネットワークリーチャビリティ】
├─ インターネット公開 + HIGH CVSS = 優先度 UP
└─ 内部ネットワーク限定 = 優先度 DOWN
【修復可能性】
├─ パッチ存在 → 優先度 UP(修復容易)
└─ パッチなし → 優先度 DOWN(ワークアラウンド必要)
CISA KEV 統合 {#cisa}
CISA Known Exploited Vulnerabilities Catalog
CISA(Cybersecurity and Infrastructure Security Agency)が、既に野放しで悪用されている脆弱性 を公式カタログで管理。
例:
CVE-2024-1234(Log4j RCE)
├─ 公開日: 2024-01-15
├─ CVSS: 10.0(最大)
├─ KEV 追加日: 2024-01-20
├─ Federal Deadline: 2024-02-15(連邦機関は修復期限)
└─ Inspector Status: CRITICAL + URGENT
Inspector での表示
{
"FindingType": "CRITICAL",
"Cvss": 10.0,
"CisaKeVEntry": {
"DateAdded": "2024-01-20",
"FederalDeadline": "2024-02-15",
"Description": "Apache Log4j Remote Code Execution"
}
}
ネットワークリーチャビリティ {#network}
ネットワーク分析
Inspector は Security Group・NACLs・VPC フローログを分析し、脆弱なリソースがインターネットに公開されているか を検出。
シナリオ 1: インターネット公開 + HIGH CVSS 脆弱性
├─ リスク: 最高
├─ 優先度: CRITICAL
└─ 推奨: 即座修復
シナリオ 2: 内部ネットワーク限定 + HIGH CVSS 脆弱性
├─ リスク: 中程度
├─ 優先度: MEDIUM
└─ 推奨: 計画的修復
シナリオ 3: インターネット公開だが LOW CVSS 脆弱性
├─ リスク: 低
├─ 優先度: LOW
└─ 推奨: 継続監視
CIS Benchmarks {#cis}
CIS(Center for Internet Security)コンプライアンス検査
【AWS・OS レベル】
✓ IAM Best Practices
✓ EC2 Security Group 設定
✓ S3 暗号化・アクセス制御
✓ CloudTrail ロギング
✓ VPC Flow Logs
【OS・サーバーレベル】
✓ ファイアウォール設定
✓ パッケージ管理
✓ アカウント管理
✓ システムロギング
Inspector での CIS チェック
# CIS Benchmark スコア表示
aws inspector2 list-findings \
--filter-criteria "resourceType=EC2" \
--region us-east-1 \
--query 'findings[*].[title, severity]'
# 出力例:
# ["CIS AWS Foundations Benchmark v1.4.0 - 1.1 Avoid the use of root account", "MEDIUM"]
主要ユースケース {#usecases}
- CI/CD パイプライン脆弱性検査:ECR push 時に自動スキャン、HIGH 以上ブロック
- 大規模環境の脆弱性管理:1000+ EC2 を一括スキャン、優先度付け
- オンプレミス + AWS ハイブリッド管理:統一ダッシュボード
- CISA KEV 即座対応:既知悪用脆弱性の Alert → 緊急対応
- CIS Benchmark コンプライアンス:自動監査・レポート生成
- コンテナイメージ品質ゲート:本番 Deploy 前に脆弱性チェック
設定・操作の具体例 {#cli}
1. Inspector 有効化
# AWS CLI で有効化
aws inspector2 enable \
--resource-types EC2 ECR LAMBDA \
--region us-east-1
2. EC2 脆弱性スキャン確認
# スキャン状態確認
aws inspector2 list-coverage \
--filter-criteria "resourceType=EC2" \
--region us-east-1
# 脆弱性一覧取得
aws inspector2 list-findings \
--filter-criteria '[
{
"key": "SEVERITY",
"value": ["CRITICAL", "HIGH"]
},
{
"key": "RESOURCE_TYPE",
"value": ["EC2"]
}
]' \
--region us-east-1
3. ECR イメージスキャン・SBOM 生成
# ECR スキャン有効化
aws ecr put-image-scanning-configuration \
--repository-name my-repo \
--image-scanning-configuration scanOnPush=true \
--region us-east-1
# SBOM 生成
aws inspector2 describe-findings \
--findings '[arn:aws:inspector2:region:account:image/image-id/layer-digest]' \
--region us-east-1 \
--query 'findings[0].resources[0].sbom'
4. EventBridge 統合(自動対応)
{
"Source": ["aws.inspector2"],
"DetailType": ["Inspector2 Finding"],
"Detail": {
"severity": ["CRITICAL", "HIGH"]
},
"Targets": [
{
"Arn": "arn:aws:lambda:us-east-1:account:function:HandleHighVulnerability",
"RoleArn": "arn:aws:iam::account:role/EventBridgeRole"
}
]
}
5. Lambda 自動対応関数
import boto3
import json
inspector = boto3.client('inspector2')
sns = boto3.client('sns')
def lambda_handler(event, context):
finding = event['detail']
severity = finding.get('severity')
resource_id = finding.get('resources', [{}])[0].get('id')
cve_id = finding.get('findingDetails', {}).get('cveId')
cisa_kev = finding.get('cisaKeVEntry')
# CISA KEV 脆弱性 → 即座通知
if cisa_kev:
sns.publish(
TopicArn='arn:aws:sns:us-east-1:account:CriticalVulnerabilities',
Subject=f'CRITICAL: CISA KEV Vulnerability Detected - {cve_id}',
Message=json.dumps(finding, indent=2)
)
# 高優先度脆弱性 → 運用チーム通知
if severity in ['CRITICAL', 'HIGH']:
# Auto response: EC2 隔離・ECR イメージ quarantine 等
pass
return {'statusCode': 200}
CI/CD パイプライン統合 {#cicd}
GitHub Actions での Inspector スキャン
name: Inspector Vulnerability Scan
on:
push:
branches: [main]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build and Push Docker Image
run: |
docker build -t my-app:${{ github.sha }} .
aws ecr get-login-password | docker login \
--username AWS \
--password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
docker tag my-app:${{ github.sha }} \
123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest
docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest
- name: Run Inspector Scan
run: |
aws inspector2 scan-image \
--image-uri 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest \
--region us-east-1
- name: Check for Critical Vulnerabilities
run: |
CRITICAL_COUNT=$(aws inspector2 list-findings \
--filter-criteria '[
{"key":"SEVERITY","value":["CRITICAL"]}
]' \
--region us-east-1 \
--query 'length(findings)' --output text)
if [ "$CRITICAL_COUNT" -gt 0 ]; then
echo "Critical vulnerabilities found!"
exit 1
fi
GitLab CI での統合
stages:
- build
- scan
- deploy
build_image:
stage: build
script:
- docker build -t my-app:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
scan_vulnerability:
stage: scan
script:
- aws inspector2 enable --resource-types ECR
- aws inspector2 list-findings --filter-criteria '[{"key":"RESOURCE_ID","value":["'"$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"'"]}]'
アクティベーション・管理 {#activation}
初期セットアップ
# リージョンごとに有効化
aws inspector2 enable \
--resource-types EC2 ECR LAMBDA \
--region us-east-1
# マルチリージョン展開
for region in us-east-1 us-west-2 eu-west-1; do
aws inspector2 enable \
--resource-types EC2 ECR LAMBDA \
--region $region
done
Organizations 統制
# Organizations 管理アカウントで有効化
aws inspector2 enable-organization \
--resource-types EC2 ECR LAMBDA
ダッシュボード・レポート {#dashboard}
Inspector Console
ダッシュボード:
├── 総脆弱性数(重要度別集計)
├── CISA KEV 検出数(赤フラグ)
├── 修復完了率(トレンド)
└── リソース別内訳(EC2・ECR・Lambda)
詳細分析:
├── CVE 一覧(修復ガイド付き)
├── ネットワークリーチャビリティ分析
└── CIS Benchmark スコア
CloudWatch ダッシュボード・レポート
# CloudWatch Insights クエリ
fields @timestamp, severity, cveId, resourceId
| stats count() as vulnerability_count by severity
| sort vulnerability_count desc
類似サービス比較 {#comparison}
| 特性 | Inspector | Wiz | Snyk | Trivy |
|---|---|---|---|---|
| 形態 | AWS マネージド | SaaS | SaaS | OSS |
| 対象 | AWS リソース・コンテナ | マルチクラウド | 開発環境・コンテナ | ローカル・CI/CD |
| 自動スキャン | ◎ 継続的 | ◎ リアルタイム | △ 手動・CI 連携 | △ オンデマンド |
| CISA KEV | ◎ 統合 | ◎ 統合 | ✓ | △ |
| CIS Benchmark | ◎ | ✓ | △ | × |
| AWS 統合 | ◎◎ | △ | △ | × |
| 価格 | 従量課金 | `0/月~ | `0/月~ | 無料 |
ベストプラクティス {#bestpractices}
✅ 推奨
✓ ECR push 時に自動スキャン有効化
✓ CRITICAL・HIGH 脆弱性は 48 時間以内修復
✓ CISA KEV は即座対応(24 時間以内)
✓ 定期的に CIS Benchmark チェック
✓ EventBridge で自動化・Alert
✓ 月次レポート&トレンド分析
❌ アンチパターン
× Finding を無視し続ける
× 脆弱性が多すぎて優先度付けできない
→ 本来修復すべき HIGH が埋没
× CISA KEV を見過ごす
× マネージドルール自動更新を無視
× Inspector 無効化(コスト削減名目)
トラブルシューティング {#troubleshooting}
| 症状 | 原因 | 解決策 |
|---|---|---|
| EC2 スキャンされない | Inspector 有効化忘れ | aws inspector2 enable 実行 |
| ECR Finding ゼロ | リポジトリにイメージなし | ECR イメージ push 確認 |
| CISA KEV Detection なし | 脆弱性が Ancient CVE | CVE Database アップデート |
| Lambda スキャン遅延 | 大規模環境での処理 | リージョン分散・スケール検討 |
2025-2026 最新動向 {#latest}
- SBOM 標準化(SPDX/CycloneDX):完全な BoM 生成・マシン読み取り可能
- Kubernetes ワークロード スキャン:EKS ポッド・コンテナ脆弱性
- ネットワーク分析の高度化:実際の攻撃パスシミュレーション
- AI ベース優先度付け:機械学習で真のリスク算出
- Inspector Classic 廃止(2026 年 5 月 20 日)
学習リソース・参考文献 {#resources-guide}
公式ドキュメント
- AWS Inspector User Guide
- Inspector API Reference
- CISA KEV Catalog
- NVD - National Vulnerability Database
- CIS Benchmarks
- CVSS Scoring
- AWS Inspector Best Practices
- SBOM Specification
OSS・ベンダー資料
- Trivy - Vulnerability Scanner
- Snyk - Developer-First Security
- Wiz - Cloud Security Platform
- Recorded Future - Threat Intelligence
実装例・ロードマップ {#roadmap}
Week 1-2:初期セットアップ
- Day 1: Inspector 有効化(全リージョン)
- Day 3-5: EC2・ECR スキャン確認
- Day 7-10: CloudWatch ダッシュボード作成
- Day 14: EventBridge・Lambda 統合
Week 3-4:本運用
- Day 15-17: CRITICAL Finding 修復
- Day 18-21: CI/CD パイプライン統合
- Day 22-28: CIS Benchmark 適合性確認
実装チェックリスト {#checklist}
【基本セットアップ】
☐ Inspector 有効化
☐ EC2・ECR・Lambda リソース確認
☐ CloudWatch Logs 設定
☐ CloudTrail ロギング有効化
【スキャン構成】
☐ ECR on-push スキャン設定
☐ EC2 カバレッジ確認
☐ Lambda 関数スキャン
【自動化】
☐ EventBridge ルール作成
☐ SNS・Lambda 統合
☐ CI/CD パイプライン統合
【運用準備】
☐ ダッシュボード作成
☐ Alert 閾値設定
☐ SLA(修復期限)定義
☐ 四半期レポート テンプレート
【継続運用】
☐ 週次 Finding 確認
☐ CISA KEV 自動監視
☐ CIS Benchmark スコア改善
コスト・プライシング {#pricing}
【スキャン料金】
EC2: $0.15/リソース/月
ECR: $0.10/イメージスキャン
Lambda: $0.01/スキャン
月額概算:
100 EC2 × $0.15 = $15
500 ECR × $0.10 = $50
1000 Lambda × $0.01 = $10
────────
合計:$75/月
まとめ {#summary}
AWS Inspector は 自動化された脆弱性管理 の決定版です。EC2・ECR・Lambda を継続的にスキャンし、CVSS・CISA KEV・CIS Benchmark で優先度付けして修復を促進。CI/CD パイプラインに組み込み、shift-left セキュリティを実現。組織規模での脆弱性管理戦略の中核となります。
核心ポイント
- 自動継続スキャン:新規リソース起動時に即座検査
- CISA KEV 統合:既知悪用脆弱性の優先的対応
- リスク優先度付け:CVSS・ネットワーク分析・修復可能性考慮
- CI/CD 統合:開発段階での脆弱性排除
- ハイブリッド対応:AWS + オンプレミス統一管理
最終更新:2026-04-26
バージョン:v2.0