Lambda関数を使用したVPCフローログのログ収集
VPCフローログでは、VPCのネットワークインターフェース間のIPトラフィックに関する情報を提供します。それら情報は、インスタンスに流れるトラフィックを監視するセキュリティ対策として使用できます。VPCフローログを設定し、Site24x7が監視の際に収集するAmazon S3バケットへフローログを発行するようにします。
フローログ構文の例
フローログレコードは、以下のようなスペース区切りの文字列です:
<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>
ログプロファイルの作成
VPCフローログを収集するには、まずログプロファイルを作成する必要があります。[AppLogs]>[ログプロファイル]>[ログプロファイルの追加]へ進み、以下の手順に従います:
- プロファイル名: ログプロファイル名を入力します。
- ログタイプ: VPC フローログを選択します。AWSアカウントでまだVPCフローログを有効にしていない場合は、こちらの手順をご覧ください。
- ログソース: Amazon関数を選択します。
- タイムゾーン: ログのタイムゾーンを選択します。
- [保存]をクリックします。
- こちらの手順に従って、Lambda関数を設定します。
Amazon S3バケットへ発行するフローログの作成
- Amazon VPCコンソールhttps://console.aws.amazon.com/vpc/を開きます。
- ナビゲーションペインで、VPCを選択します。
- 1つ以上のVPCを選択し、[アクション]、[フローログの作成]の順に選択します。
- フィルタ: 記録するIPトラフィックデータのタイプを指定します。承諾および拒否されたトラフィックを記録するには[すべて]、拒否されたトラフィックだけを記録するには[拒否]、承諾されたトラフィックだけを記録するには[承諾済み]を選択します。 送信先: [Amazon S3バケットへの送信] を選択します。
- [S3バケットARN]で、既存のAmazon S3バケットのAmazonリソースネーム(ARN)を指定します。バケットのARNにはサブフォルダを含めることができます。
AWSLogsは予約語であるため、バケットでサブフォルダ名として使用することはできません。
- 既存のユーザーまたはロールの場合、フローログ書き込み権限が付与されていることを確認します。それ以外は、新規ユーザーまたはロールを作成すれば、必要な権限が付与されます。
- [作成]を選択します。
Lambda関数の設定
- サービスのドロップダウンリストから[Lambda]を選択し、[関数の作成]をクリックします。スクラッチから著者を選択し、関数の名前を入力し、ランタイムとしてPython 3.7を選択します。
- アクセス権限: 既存のIAMロールを選択するか、AWS[ポリシーテンプレート]から新規ロールを作成します。[ポリシーテンプレート]のドロップダウンメニューから[Amazon S3 オブジェクト読み込み専用アクセス権]および[ロール名]を選択します。また、新規ユーザーロールを作成し、他のサービスにもアクセス権限を拡張できるオプションもあります。
- トリガーの追加: スクロールダウンして[S3バケット]を選択します。S3バケットに追加されたログファイルは、Lambda関数によってSite24x7へ送られます。
- トリガーの設定
- バケット:ログが収集されるS3バケット名を入力します。
- イベントタイプ: [すべてのオブジェクト作成]イベントを選択します。
- [追加]をクリックします。
以下に表示されるウィンドウで、Lambda関数をクリックします:
- エディターまでスクロールし、以下リンクにあるコードを入力します:
https://github.com/site24x7/applogs-aws-lambda/blob/master/s3/s3-sender.py
- コードを入力したら、Site24x7 Webクライアントに移動し、[管理] > [Applogs] > [ログプロファイル]へ進みます。作成した[ログプロファイル]を選択し、[環境変数]フィールド下の画面に変数logtypeConfigの入力として表示されるコードをコピーします。
関連するログタイプ