VPC Flowlogs をやってみた

VPC Flowlogs でネットワークログを確認してみた！

VPC Flowlogs とは、ネットワークトラフィックをキャプチャし、CloudWatch Logs、S3へPublishする機能です。

- ネットワークインタフェースを送信元/送信先とするトラフィックが対象
- セキュリティグループとネットワークACLのルールでaccepted/rejectされたトラフィックログを取得
- キャプチャウインドウと言われる時間枠(約10分間)で収集、プロセッシング、保存
- 他の AWS のサービスによって作成されたネットワークインターフェイスのフローログを作成できます。
 - Elastic Load Balancing
 - Amazon RDS
 - Amazon ElastiCache
 - Amazon Redshift
 - Amazon WorkSpaces
 - NAT ゲートウェイ
 - トランジットゲートウェイ


#やってみる#

##ロググループの作成##

CloudWatch の [アクション] から [ロググループの作成]
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/a2e2099c-e32a-a098-d2b7-d90418bcb541.png)


##VPC Flowlogの作成##

VPC の [アクション] から [Create flow log]
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/dbf5af88-f13d-9776-66eb-dcc2ee5168bd.png)

|項目|入力内容|
|---|---|
|Filter |All |
|Destination |Send to CloudWatch Logs|
|Destination log group|「1.ロググループの作成」のものを選択||
|IAM role|[Set Up Permissions]から新規に作成|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/9a2179b5-53b9-cc89-0167-8c27799847d3.png)

```json:IAMrole	
{
  "Statement": [
    {
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

[Flow Logs]タブに出来上がっていることがわかる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/ed054a0f-bd94-f628-fd17-5ffce944c175.png)


##動作を確認する（CloudWatchlogs）##

VPC内のEC2などにアクセスし、15分程度待ちます。
※キャプチャウィンドウは約 10 分ですが、最長 15 分かかる場合があるらしい。

このように作成されたことが確認できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/4c60a109-440b-c520-4411-5e075ea2e237.png)

中身を確認してみると、、、。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/71fb3172-baf0-72b2-7b99-15d62f19e0fa.png)

参考：[フローログレコード](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html)


##保存先をS3にしてみる##
先程は今回はCloudWatchlogsにしたが、S3にすることもできる。
料金はS3のほうがコストを抑えることができ、Athenaを利用した確認でOKな場合、蓄積したログをあとで利用する場合などはS3を利用。
リアルタイムなログの可視化や、アラートが必要な場合はCloudWatchLogsを利用するなど目的に応じて使い分ける。

同じようにS3バケットの中に保存される。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/280929/fcff13ca-f6fb-1c4a-c542-fb874f52dc28.png)

中身を確認すると同じように表示された。

```
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status
2 268546037544 eni-05cf26e2ea9888d06 210.173.160.57 10.0.12.93 123 123 17 2 152 1554268087 1554268309 ACCEPT OK
2 268546037544 eni-05cf26e2ea9888d06 10.0.12.93 211.19.59.28 123 123 17 2 152 1554268087 1554268309 ACCEPT OK
2 268546037544 eni-05cf26e2ea9888d06 10.0.12.93 210.173.160.57 123 123 17 2 152 1554268087 1554268309 ACCEPT OK
2 268546037544 eni-05cf26e2ea9888d06 211.19.59.28 10.0.12.93 123 123 17 2 152 1554268087 1554268309 ACCEPT OK
2 268546037544 eni-05cf26e2ea9888d06 10.0.12.93 129.250.35.251 123 123 17 2 152 1554268087 1554268369 ACCEPT OK
2 268546037544 eni-05cf26e2ea9888d06 129.250.35.251 10.0.12.93 123 123 17 2 152 1554268087 1554268369 ACCEPT OK
```

参考：[VPC Flow Logsの出力先にS3が追加になって安価に使いやすくなりました](https://dev.classmethod.jp/cloud/aws/vpcflowlogs_to_s3/)


#リンク#

- [[Mar 3, 2021]Amazon VPC フローログに AWS のサービス名である Traffic Path と Flow Direction を反映](https://aws.amazon.com/jp/about-aws/whats-new/2021/03/amazon-vpc-flow-logs-now-reflects-aws-service-name-traffic-path-and-flow-direction/)

VPC フローログに新しいフィールドが追加されたというアップデートのようです。
新しいフィールドが追加されたことにより、どんな嬉しいかということについては、クラスメゾッドさんの「さいごに」にあたりを読むといいかと思います。
[[アップデート] VPC フローログに AWS サービス名および通信経路が表示されるようになりました！](https://dev.classmethod.jp/articles/vpc-flow-logs-added-aws-service-name-traffic-path-and-flow-direction/)