特定のサーバーのENIのVPCフローログを確認する方法(AWSマネコン & CLI編)
AWSの VPCフローログ は、ネットワークインターフェース(ENI)レベルでトラフィックを監視する強力なツールです。
本記事では、特定のサーバーに紐づくENI(Elastic Network Interface)のVPCフローログを確認する手順を マネジメントコンソール と CLI の両方で解説します。
1. ENIに紐づくVPCフローログを知るメリット
- セキュリティ監査:特定のインスタンスへの不審なアクセスを検出。
- トラブルシューティング:接続問題の原因特定に活用。
- トラフィック分析:サーバー間通信や外部アクセスを可視化。
2. マネジメントコンソールでの確認方法
① 対象サーバーのENIを特定
- AWSコンソールで 「EC2」 サービスに移動。
- 左メニューの 「インスタンス」 をクリック。
- 対象インスタンスを選択し、詳細画面の 「ネットワークインターフェース」 セクションを確認。
- ENI ID をメモします(例:
eni-0123456789abcdef0
)。
② VPCフローログを確認
- AWSコンソールで 「VPC」 サービスに移動。
- 左メニューの 「フローログ」 をクリック。
- フローログのリストから 「リソースタイプ」 が
NetworkInterface
のエントリを探します。 - フィルターでENI IDを入力(例:
eni-0123456789abcdef0
)。 - 対象のフローログをクリックし、設定内容を確認します。
- ロググループ名:CloudWatch Logsで確認可能。
- S3バケット名:S3に保存される場合の保存先。
③ CloudWatch Logsでログを表示
- AWSコンソールで 「CloudWatch」 サービスに移動。
- 左メニューの 「ロググループ」 を選択。
- ENIに紐づくロググループを選択(例:
/aws/vpc/flowlogs/eni-0123456789abcdef0
)。 - 必要に応じて期間やフィルターを指定し、トラフィックを分析します。
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フローログを未設定の場合の有効化手順
マネコンでの有効化
- VPCコンソールで「フローログ」を作成。
- リソースタイプで「ネットワークインターフェース」を選択。
- 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はスクリプト化で効率的に設定・確認できます。トラブルシューティングやセキュリティ監査の場面でぜひ活用してみてください!