AWSのVPCフローログでネットワークインターフェース単位のトラフィックをキャプチャするサンプルです。
目次
AWS | VPCフローログとは |
ポリシーを作成する | |
ロールを作成する | |
CloudWatchでロググループを作成 | |
フローログの作成 | |
クエリを実行してネットワークのトラフィックを確認 |
VPCフローログとは
AWSのVPCフローログは、VPC内でのネットワークトラフィックのログを取得できます。
送信元IPアドレス、宛先IPアドレス、送信元ポート、宛先ポート、トラフィックのプロトコル、トラフィックのパケット数やバイト数などの情報が含まれます。
インスタンスに到達するトラフィックを確認等できます。https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html
ポリシーを作成する
VPCフローログのポリシーと信頼ポリシーの設定内容は以下にあります。https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs-cwl.html
1.検索入力欄で「IAM」と入力し、表示された「IAM」をクリックします。
2.「ポリシー」をクリックし「ポリシーを作成」をクリックします。
3.「JSON」をクリックしてJSONを修正します。完了後「次へ」をクリックします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams"
],
"Resource": "*"
}
]
}
4.ポリシー名、説明を入力します。「ポリシーの作成」をクリックでポリシーが作成されます。
ロールを作成する
1.「ロール」をクリックし「ロールを作成」をクリックします。
2.信頼されたエンティティタイプは、「AWSのサービス」をチェックし、ユースケースは「EC2」をチェックします。「次へ」をクリックします。
3.許可ポリシーは作成したポリシーにチェックを入れます。「次へ」をクリックします。
4.ロール名と説明を入力し「ロールを作成」をクリックするとロールが作成されます。
5.ロールの一覧に作成したロールが表示されます。信頼されたエンティティをEC2からvpc-flow-logsに変更します。作成したロールのリンクをクリックします。
6.「信頼関係」のタグをクリックします。
7.「信頼ポリシーを編集」をクリックしてJSONを修正します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "vpc-flow-logs.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
7行目をec2からvpc-flow-logsに変更します。
8.信頼されたエンティティがvpc-flow-logsになりました。
CloudWatchでロググループを作成する
ロググループは、フローログの作成で送信先ロググループとして使用します。
1.検索入力欄で「CloudWatch」と入力し、表示された「CloudWatch」をクリックします。
2.「ロググループ」をクリックし、「ロググループを作成」をクリックしてロググループを作成します。
フローログの作成
ネットワークトラフィックを確認する箇所まで移動
1.検索入力欄で「EC2」と入力し、表示された「EC2」をクリックします。
2.ログを確認したいEC2の「インスタンスID」のリンクをクリックします。
3.「ネットワーキング」タブをクリックし、ネットワークインターフェイスの「インターフェィスID」のリンクをクリックします。
4.ネットワークインターフェイスにチェックを入れフローログをクリックし、「フローログの作成」をクリックします。
フローログを設定
5.フローログの設定を行います。
6.「送信先ロググループ」と「IAMロール」は作成したものを指定します。「フローログの作成」をクリックするとフローログが作成されます。
フローログの作成をクリックするとフローログが作成されます。
クエリを実行してネットワークのトラフィックを確認
フローログの作成直後は、データがない状態でトラフィックを確認できません。10分(最大集計間隔の設定)かかります。
ログができると、ロググループのログストリームに作成されます。
1.検索入力欄で「CloudWatch」と入力し、表示された「CloudWatch」をクリックします。
2.「ログのインサイト」をクリックします。
3.作成したロググループを選択し、クエリを入力し、クエリの実行でネットワークのトラフィックを表示できます。
クエリ例
fields @timestamp, dstAddr, dstPort, protocol,srcAddr | filter (dstAddr = '10.0.10.4' and dstPort = '443') | sort @timestamp desc | limit 100 |
fieldsで表示する項目を指定します。
filterは、表示する条件を指定します。条件はかっこをつけて@はつけません。
sortは並び順です。descをつけると降順になります。
limit 10 のlimitは、下に表示される件数です。以下は10行表示されています。
クエリのサンプル
クエリは右端にある「クエリ」をクリックするとサンプルクエリがあるので参考にします。
5.結果は以下のように表示されます。protocolの6はTCPです。日時の指定は右上にあるカレンダーから設定します。
関連の記事