メインコンテンツまでスキップ
Sumo Logic Japanese

CloudFormation を使用して CloudWatch から Amazon VPC フロー ログを収集する

このページでは、CloudFormation テンプレートを使用して VPC フロー ログを収集する方法を説明します。  AWS S3 Source を使用した Amazon VPC フロー ログの収集も可能です。

このページでは Amazon VPC フロー ログ アプリケーションでログを収集する方法について説明します。

収集プロセス

Amazon VPC フロー ログの収集プロセスを下図に示します。VPC を有効にしてログを Amazon CloudWatch に送信しています。Lambda 関数は、CloudWatch のログ グループにサブスクライブすることで、フロー ログを取得し、Hosted Collector 上の Sumo Logic HTTP Source にデータを送信しています。AWS リソースは、Sumo が提供する CloudFormation テンプレートによって作成されています。 

AWSCloudWatch-Collection.png

ステップ 1: Amazon VPC フロー ログの有効化

Amazon Virtual Private Cloud (VPC) フロー ログは、Amazon Web Services (AWS) マネジメント コンソール、AWS コマンド ライン インターフェイス (CLI)、または Elastic Compute Cloud (EC2) API コールを使用して有効化できます。

AWS コンソールから Amazon Virtual Private Cloud (VPC) フロー ログを有効化するには、次の手順を実行します。

  1. [VPC management (VPC 管理)] の [VPC list (VPC リスト)] に移動します。
  2. [VPC] を選択します。
  3. [Actions (アクション)] > [Create Flow Log (フロー ログの作成)] をクリックします。
  4. [Create Flow Log (フロー ログの作成)] ページで、フロー ログを使用するロールを選択します。
    1. IAM 権限をセットアップしていない場合は [Set Up Permissions (権限のセットアップ)] をクリックします。
      create-vpc-flow-log-cloudwatch.png
    2. 新しく作成された [VPC Flow Logs is requesting permissions to use resources in your account (VPC フロー ログがあなたのアカウントのリソースを使用する権限を要求しています)] タブで:
    3. [IAM Role (IAM ロール)] で [Create a new IAM Role (新しい IAM ロールの作成)] を選択します。
    4. ログを説明するようなロール名 (例: VPC-Flow-Logs) を入力します。
    5. [Allow (許可)] をクリックします。
  5. [Create Flow Log (フロー ログの作成)] に戻り、作成した新しいロールを [Role (ロール)] に入力します。
  6. [Destination Log Group (宛先ログ グループ)]VPCFlowLogs のような説明的な名前を入力します。
  7. [Create Flow Log (フロー ログの作成)] をクリックします。ログ グループが [CloudWatch Logs (CloudWatch ログ)] に表示されるまで最大 1 時間かかります。

ステップ 2: Hosted Collector と HTTP Source の設定

  1. Sumo Logic で Hosted Collector を設定します。
  2. Sumo Logic で HTTP Source を設定します。Source を設定する際には:
  3. [Advanced Options for Logs (ログの詳細オプション)] の下にある [Timestamp Format (タイムスタンプの形式)][Specify a format (形式を指定)] をクリックします。
  4. Format (形式)。以下を入力します。 
    epoch
  5. Timestamp locator (タイムスタンプ ロケータ)。以下を入力します。
     \s(\d{10,13})\s\d{10,13} 
    timestamp-format.png
  6. [Save (保存)] をクリックします。

ステップ 3: AWS 関数とリソースの作成 

「Amazon CloudWatch ログ」「CloudFormation テンプレートのダウンロード」から「アラームの扱い」までのステップを実行します。この手順を実行する際には、下記のログ形式と省略可能な環境変数に関する追加の指示に従ってください。

LogFormat の正しい設定 (必須) 

ステップ 5 でスタックを AWS CloudFormation コンソール上で作成する際には、[Specify Details (詳細の指定)] ウィンドウの [LogFormat] フィールドで [VPC-JSON] または [VPC-RAW] を選択してください。

VPC フロー ログ収集用の環境変数 (省略可能)

Lambda 関数用の環境変数を設定する際には、説明されている変数に加えて、次の省略可能な環境変数を設定することもできます。

環境変数 説明
INCLUDE_SECURITY_GROUP_INFO このオプションは、LogFormat を VPC-JSON に設定した場合にのみサポートされます。

true に設定すると、次のフィールドがログに含まれます。

vpc-id
subnet-id
aws-region
security-group-ids
direction

値を true に設定する場合は、下記の「Lambda 権限の付与 (省略可能)」の手順に従ってください。
VPC_CIDR_PREFIX

内部トラフィックをフィルタリングするための IP 接頭辞のコンマ区切りリスト。たとえば、vpcCIDRprefix= 10.8.0.0,10.9.0.0 と指定すると、destinationIPsourceIP10.8.0.0 または 10.9.0.0 と一致するログがフィルタリングされます。 

` "Ex if VPC_CIDR_PREFIX = “10.0.” then all the IP’s with 10.0.*.* will match the prefix"`

Lambda 権限の付与 (省略可能)

Lambda 関数は、describeNetworkInterfaces API を使用して Elastic Network Interface のリストを取得します。SumoCWLambdaExecutionRole ロールで下記のインライン ポリシーを追加することで、Lambda に権限を付与する必要があります。AWS ヘルプの「Creating Policies on the JSON Tab (JSON タブでのポリシーの作成)」を参照してください。

Lambda 関数の ARN を追加した後で、以下の JSON を貼り付けます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DescribeENILambdaPerms",
            "Effect": "Allow",
            "Action": "ec2:DescribeNetworkInterfaces",
            "Resource": "*"
        }
    ]
} 

ステップ 4: VPC フロー ロググループへの Lambda 関数のサブスクライブ

  1. [CloudWatch Logs (CloudWatch ログ)] マネジメント パネルで VPC フロー ログ グループを選択します。
    これは、前半で作成したログ グループ (VPCFlowLogs を使用) です。
  2. [Actions (アクション)] をクリックして [Stream to Lambda Function (Lambda 関数にストリーム)] を選択します。
  3. CloudFormation テンプレートで作成した Lambda 関数を選択します。名前の先頭は「SumoCWLogsLambda」になっています。
  4. [Next (次へ)] をクリックします。
  5. [Log Format (ログ形式)][JSON] を選択します。
  6. [Next (次へ)] をクリックします。
  7. [Start Streaming (ストリーミング開始)] をクリックします。数分待ってから、ログが Sumo に供給されていることを確認します。
  • この記事は役に立ちましたか?