AWS Inspector、Security Hub、GuardDutyの連携イメージ
AWS Inspector、Security Hub、GuardDutyの連携イメージ

AWS Inspectorの活用ガイド:Security Hub・GuardDutyとの違いを徹底比較

要約(Summary)

  • AWS Inspectorとは?
    自動化された脆弱性診断サービスで、ホストやコンテナ、サーバレス環境のセキュリティチェックを実施。
  • 主な機能
    • OSやアプリケーションの脆弱性スキャン
    • ソフトウェア構成のベストプラクティス検証
    • カスタムルールの作成・適用
  • 活用シナリオ
    • 定期的なセキュリティチェックの自動化
    • デプロイ前の脆弱性検出
    • CI/CDパイプラインへの組み込みサンプル
  • Security Hub・GuardDutyとの違い
    • Inspector:脆弱性診断に特化
    • Security Hub:複数サービスの検知結果を一元管理
    • GuardDuty:異常挙動検出(ログ・フロー分析)
  • 対象読者
    • セキュリティエンジニア、DevOpsエンジニア、SRE、クラウド管理者

1. はじめに:なぜ脆弱性診断が重要か

現代のクラウド環境では、瞬時にサーバを立ち上げ、コードをデプロイすることが可能です。その一方で、小さな設定ミスやパッチ未適用のまま稼働させてしまうと、サイバー攻撃のリスクが大幅に高まります。
AWS Inspectorは、こうしたリスクを軽減し、安心してクラウドリソースを運用するための自動スキャンサービスです。
以下のような方に特におすすめです:

  • 定期的な脆弱性診断を自動化したい
  • デプロイ前後にセキュリティチェックを組み込みたい
  • 専門知識が浅いチームメンバーにも簡単に運用を任せたい

2. AWS Inspectorとは?

2.1 概要

AWS Inspectorは、Amazon Web Servicesが提供するマネージド型の脆弱性診断サービスです。EC2インスタンスやECS/EKS上のコンテナ、さらにはLambda関数などに対して自動的にセキュリティ評価を実行できます。

2.2 主な機能

  1. ネットワーク到達可能性スキャン
    • インスタンスのパブリック/プライベートIPへの到達性をチェック
    • 不要なポート開放の検出
  2. 脆弱性スキャン(CVEベース)
    • OSやミドルウェアの既知脆弱性をCVE識別子と紐付け
    • 最新の脆弱性データベースと連携
  3. セキュリティベストプラクティス検証
    • CISベンチマークやAWSベストプラクティスに準拠して設定検証
  4. カスタムルールの作成
    • 独自のセキュリティ要件に合わせたルールをYAML形式で定義
  5. 詳細レポート生成
    • 時系列でのスキャン結果比較
    • SlackやEメール通知との連携

3. AWS Inspectorの導入と基本的な使い方

3.1 導入手順

  1. Inspectorエージェントのインストール
    # Amazon Linuxの場合
    sudo yum install amazon-inspector
    sudo systemctl start amazon-inspector
    
  2. インスペクションテンプレートの作成
    • AWSマネジメントコンソールまたはAWS CLIでテンプレート定義
    • 対象ターゲット(タグ指定やセキュリティグループ指定)を設定
  3. スキャン実行
    aws inspector start-assessment-run \
      --assessment-template-arn arn:aws:inspector:... \
      --assessment-run-name "DailyScan-$(date +%Y%m%d)"
    
  4. 結果確認・レポート取得
    aws inspector list-findings \
      --assessment-run-arns arn:aws:inspector:...
    aws inspector get-findings --finding-arns <FINDING_ARN>
    

3.2 CI/CDパイプラインへの組み込み例

# GitHub Actions の例
jobs:
  security_scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Build Docker image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Push image to ECR
        run: |
          aws ecr get-login-password --region ap-northeast-1 | \
            docker login --username AWS --password-stdin <ECR_URI>
          docker push <ECR_URI>/myapp:${{ github.sha }}
      - name: Trigger Inspector Scan
        run: |
          aws inspector start-assessment-run \
            --assessment-template-arn arn:aws:inspector:... \
            --assessment-run-name "CI-CD-Scan-${{ github.sha }}"
      - name: Check Findings
        run: |
          FINDINGS=$(aws inspector list-findings --assessment-run-arns arn:aws:inspector:...)
          if [ -n "$FINDINGS" ]; then
            echo "Vulnerabilities found"
            exit 1
          fi

4. Security Hub・GuardDutyとの違い

4.1 AWS Security Hub

  • 役割:複数のセキュリティサービス(Inspector, GuardDuty, Macieなど)の結果を集約し、一元管理・可視化
  • 機能
    • セキュリティ標準の自動チェック(CIS AWS Foundationsなど)
    • Findingsの統合ダッシュボード
    • 他サービスへの自動リメディエーション連携
  • 適用シーン
    • 複数AWSアカウントのセキュリティ状況をまとめて把握
    • ガバナンス要件に応じた標準準拠チェック

4.2 Amazon GuardDuty

  • 役割:ログやフロー(VPC Flow Logs, CloudTrail, DNS Logsなど)を解析し、異常挙動を検出
  • 機能
    • 不審なAPIコール検知
    • マルウェア通信の兆候検出
    • 異常ポートスキャンやブルートフォース攻撃の検知
  • 適用シーン
    • リアルタイムでの侵入検知(IDS)
    • インシデント対応時のフォレンジック
サービス 主な目的 データソース 結果
Inspector 脆弱性診断・評価 エージェント、ホスト内環境 CVEリスト、ベストプラクティス違反
Security Hub 結果の統合管理 Inspector, GuardDuty, Macie… 統合ダッシュボード
GuardDuty 異常検知(IDS) CloudTrail, VPC Flow Logs… 異常アクティビティ検知

5. 実践サンプル:Webアプリケーションの定期スキャン設定

5.1 シナリオ

  • 対象:ECS Fargateで動作するWebアプリ
  • 要件:毎週月曜日午前2時に脆弱性診断を実施し、検出結果をSlack通知

5.2 実装例

  1. Lambda関数作成
    import boto3
    import os
    import requests
    
    inspector = boto3.client('inspector')
    SLACK_WEBHOOK = os.environ['SLACK_WEBHOOK']
    
    def lambda_handler(event, context):
        run = inspector.start_assessment_run(
            assessmentTemplateArn=os.environ['TEMPLATE_ARN'],
            assessmentRunName='WeeklyScan'
        )
        findings = inspector.list_findings(
            assessmentRunArns=[run['assessmentRunArn']]
        )['findingArns']
        msg = f"【Inspector結果】検出数: {len(findings)}件"
        requests.post(SLACK_WEBHOOK, json={'text': msg})
    
  2. EventBridgeルール設定
    • cron式:cron(0 2 ? * MON *)
    • ターゲット:上記Lambda関数

6. まとめと今後の展望

AWS Inspectorは、クラウドネイティブ環境における脆弱性診断を自動化し、運用負荷を軽減する強力なツールです。Security HubやGuardDutyと組み合わせることで、**「脆弱性診断」+「統合管理」+「異常検知」**の三位一体で、より堅牢なセキュリティ体制を構築できます。

ポイント再確認

  1. Inspector:脆弱性診断に特化
  2. Security Hub:結果の統合・可視化
  3. GuardDuty:ログ解析による異常検知

ぜひこの記事を参考に、AWS環境でのセキュリティチェックを包括的に自動化し、安全・安心なクラウド運用を実現してくださいね。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)