🐡

【AWS】VPCフローログの作成と確認をAWSCLIにて実施する(S3保存)

2024/01/20に公開

はじめに

業務の中でAWS環境の構築準備をするにあたり、VPCフローログをAWSCLIで作成するためのコマンドの準備をしておりました。
今回は、VPCフローログをコマンドでの作成や確認をするための方法について紹介したいと思います。

前提

  • VPCは既に作成されている状態とする。
  • VPCフローログの保存先は、S3とする。
  • S3は既に作成されている。
  • 使用するAWSCLIのバージョンは、以下とする。
awscliのバージョン
$ aws --version
aws-cli/2.15.11 Python/3.11.6 Darwin/23.2.0 exe/x86_64 prompt/off

コマンド

VPCフローログの作成

VPCフローログを作成するコマンドは、以下になります。

コマンド
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids <VPC ID> \
--traffic-type ALL \
--log-destination-type s3 \
--log-destination <S3バケットのarn> \
--tag-specifications ResourceType=vpc-flow-log,Tags=[{"Key=Name,Value=<VPCフローログの名前>"}]

コマンドのオプション説明としては、以下になります。

オプション 内容
--resource-type リソースタイプを指定 VPC
--resource-ids 指定したリソースのID vpc-00112233344556677
--traffic-type 監視するトラフィックのタイプ ALL
--log-destination-type フローログの出力先のタイプ s3
--log-destination フローログ出力先のS3バケットのarnを指定 arn:aws:s3:::vpcflowlogtest-9901
--tag-specifications フローログに付与するタグの設定 Key=Name,Value=test-vpc-flowlog

実際のコマンド例は、以下になります。

コマンド例
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids vpc-9999976a31cb8e159 \
--traffic-type ALL \
--log-destination-type s3 \
--log-destination arn:aws:s3:::vpcflowlogtest-9901 \
--tag-specifications ResourceType=vpc-flow-log,Tags=[{"Key=Name,Value=test-vpc-flowlog"},{"Key=Env,Value=Test"}]

VPCフローログの確認

作成したVPCフローログを確認するためのコマンドになります。

コマンド
aws ec2 describe-flow-logs \
--filter "Name=tag-key,Values=Name" "Name=tag-value,Values=<VPCフローログの名前>"
コマンド例
aws ec2 describe-flow-logs \
--filter "Name=tag-key,Values=Name" "Name=tag-value,Values=test-vpc-flowlog"

コマンドの出力結果の例は、以下になります。

コマンド出力結果の例
{
    "FlowLogs": [
        {
            "CreationTime": "2024-01-20T04:57:57.385000+00:00",
            "DeliverLogsStatus": "SUCCESS",
            "FlowLogId": "fl-99999f806b50386ce",
            "FlowLogStatus": "ACTIVE",
            "ResourceId": "vpc-9999976a31cb8e159",
            "TrafficType": "ALL",
            "LogDestinationType": "s3",
            "LogDestination": "arn:aws:s3:::vpcflowlogtest-9901",
            "LogFormat": "${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status}",
            "Tags": [
                {
                    "Key": "Env",
                    "Value": "Test"
                },
                {
                    "Key": "Name",
                    "Value": "test-vpc-flowlog"
                }
            ],
            "MaxAggregationInterval": 600,
            "DestinationOptions": {
                "FileFormat": "plain-text",
                "HiveCompatiblePartitions": false,
                "PerHourPartition": false
            }
        }
    ]
}

参考

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-flow-logs.html

Discussion