🐡
【AWS】VPCフローログの作成と確認をAWSCLIにて実施する(S3保存)
はじめに
業務の中で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
}
}
]
}
参考
Discussion