VPCフローログを確認する方法


特定のサーバーのENIのVPCフローログを確認する方法(AWSマネコン & CLI編)

AWSの VPCフローログ は、ネットワークインターフェース(ENI)レベルでトラフィックを監視する強力なツールです。
本記事では、特定のサーバーに紐づくENI(Elastic Network Interface)のVPCフローログを確認する手順を マネジメントコンソールCLI の両方で解説します。

1. ENIに紐づくVPCフローログを知るメリット

  • セキュリティ監査:特定のインスタンスへの不審なアクセスを検出。
  • トラブルシューティング:接続問題の原因特定に活用。
  • トラフィック分析:サーバー間通信や外部アクセスを可視化。

2. マネジメントコンソールでの確認方法

① 対象サーバーのENIを特定

  1. AWSコンソールで 「EC2」 サービスに移動。
  2. 左メニューの 「インスタンス」 をクリック。
  3. 対象インスタンスを選択し、詳細画面の 「ネットワークインターフェース」 セクションを確認。
  4. ENI ID をメモします(例:eni-0123456789abcdef0)。

② VPCフローログを確認

  1. AWSコンソールで 「VPC」 サービスに移動。
  2. 左メニューの 「フローログ」 をクリック。
  3. フローログのリストから 「リソースタイプ」NetworkInterface のエントリを探します。
  4. フィルターでENI IDを入力(例:eni-0123456789abcdef0)。
  5. 対象のフローログをクリックし、設定内容を確認します。
    • ロググループ名:CloudWatch Logsで確認可能。
    • S3バケット名:S3に保存される場合の保存先。

③ CloudWatch Logsでログを表示

  1. AWSコンソールで 「CloudWatch」 サービスに移動。
  2. 左メニューの 「ロググループ」 を選択。
  3. ENIに紐づくロググループを選択(例:/aws/vpc/flowlogs/eni-0123456789abcdef0)。
  4. 必要に応じて期間やフィルターを指定し、トラフィックを分析します。

3. CLIでの確認方法

① 対象サーバーのENIを特定

まず、サーバー(EC2インスタンス)のENIを特定します。

aws ec2 describe-instances \
    --instance-ids i-0abcd1234efgh5678 \
    --query "Reservations[*].Instances[*].NetworkInterfaces[*].NetworkInterfaceId" \
    --output text
  • 出力例eni-0123456789abcdef0

② ENIに関連付けられたVPCフローログを確認

次に、該当ENIに紐づくVPCフローログを検索します。

aws ec2 describe-flow-logs \
    --filter "Name=resource-id,Values=eni-0123456789abcdef0"
  • 出力例
    {
      "FlowLogs": [
          {
              "FlowLogId": "fl-0abcdef1234567890",
              "ResourceId": "eni-0123456789abcdef0",
              "TrafficType": "ALL",
              "LogGroupName": "/aws/vpc/flowlogs/eni-0123456789abcdef0",
              "DeliverLogsStatus": "SUCCESS",
              "LogDestinationType": "cloud-watch-logs",
              "LogDestination": "arn:aws:logs:region:account-id:log-group:/aws/vpc/flowlogs/eni-0123456789abcdef0"
          }
      ]
    }

③ CloudWatch Logsでログを表示

CloudWatch Logsでトラフィックを確認します。

ログストリーム一覧を取得

aws logs describe-log-streams \
    --log-group-name "/aws/vpc/flowlogs/eni-0123456789abcdef0"

特定期間のログを取得

aws logs filter-log-events \
    --log-group-name "/aws/vpc/flowlogs/eni-0123456789abcdef0" \
    --start-time $(date -d "1 hour ago" +%s%3N) \
    --end-time $(date +%s%3N)

4. VPCフローログを未設定の場合の有効化手順

マネコンでの有効化

  1. VPCコンソールで「フローログ」を作成。
  2. リソースタイプで「ネットワークインターフェース」を選択。
  3. ENI IDを指定し、ログの保存先を設定。

CLIでの有効化

aws ec2 create-flow-logs \
    --resource-type NetworkInterface \
    --resource-ids eni-0123456789abcdef0 \
    --traffic-type ALL \
    --log-group-name "/aws/vpc/flowlogs/eni-0123456789abcdef0" \
    --deliver-logs-permission-arn arn:aws:iam::123456789012:role/VPCFlowLogsRole

まとめ

特定サーバーのENIに紐づくVPCフローログを確認することで、トラフィックの詳細な可視化が可能です。AWSマネコンは直感的に、CLIはスクリプト化で効率的に設定・確認できます。トラブルシューティングやセキュリティ監査の場面でぜひ活用してみてください!


Last modified: 2024-11-27

Author