この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、コカコーラ大好きカジです。
VPC Flow Logs(S3出力版)を、VPC構築済みの環境や、複数VPCに構築するときに使えるCloudFormationテンプレートを作成してみました。
VPCフローログとは
VPC Flow LogsのS3出力については以下を参照ください。
VPC Flow Logsの出力先にS3が追加になって安価に使いやすくなりました | DevelopersIO
VPC Flow LogsをCloudwatch Logsに出力したい場合は、以下のブログとなります。
CloudFormationでVPCフローログを設定する (CloudWatch版) | DevelopersIO
前提条件
利用するにあたっての前提条件は以下となります。
- VPCが構築済みであること
- 出力先S3バケット名を指定しますが、バケット名の最後にAWSアカウント番号を付与します。
- Cloudformation削除時はS3バケット内にファイルを削除済みにしないとS3バケット削除できません。必要に応じて、DeletionPolicyをつけて削除除外してください。
スタック作成
一番最後に記載した、yamlファイルで、Cloudformationスタック作成します。 以下に沿って入力すればOKです。この画面以降はデフォルトのままでOKです。
スタック作成したら、リソースが作成されたことを確認します。
設定確認
スタック作成されたら、設定を確認します。
Cloudformation テンプレート
AWSTemplateFormatVersion: "2010-09-09"
Description:
VPC Flow Logs S3 Output
Metadata:
"AWS::CloudFormation::Interface":
ParameterGroups:
- Label:
default: "VPC Flow Logs Setup VPC ID"
Parameters:
- VpcId
- Label:
default: "VPC Flow Logs Configuration"
Parameters:
- Filter
- Label:
default: "VPC Flow Logs output S3 Buceket Name -. Account Number is set automatically."
Parameters:
- S3Bucket
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
VpcId:
Description: VPC ID
Type: AWS::EC2::VPC::Id
S3Bucket:
Description: S3 Bucket Name
Type: String
Default: vpc-flow-log
Filter:
Type: String
Default: ALL
AllowedValues: [ ALL, ACCEPT, REJECT ]
Resources:
# ------------------------------------------------------------#
# S3 Bucket for VPC Flow Logs
# ------------------------------------------------------------#
VPCFlowLogsS3Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Join [ "-", [ Ref: "S3Bucket" , Ref: "AWS::AccountId" ] ]
# ------------------------------------------------------------#
# VPC Flow Logs
# ------------------------------------------------------------#
VPCFlowLogs:
Type: "AWS::EC2::FlowLog"
DependsOn: VPCFlowLogsS3Bucket
Properties:
LogDestination: !Sub "arn:aws:s3:::${VPCFlowLogsS3Bucket}"
LogDestinationType: s3
ResourceId: !Ref VpcId
ResourceType: "VPC"
TrafficType: !Ref Filter
# ------------------------------------------------------------#
# Output Parameters
# ------------------------------------------------------------#
Outputs:
#VPCFlowLogsS3Bucket
VPCFlowLogsS3Bucket:
Value: !Ref VPCFlowLogsS3Bucket
まとめ
複数環境で有効にする必要があり、Cloudformationを作成してみました。 どなたかのお役に立てれば光栄です。