Amazon Virtual Private Cloud
ユーザーガイド

CloudWatch Logs へのフローログの発行

フローログはフローログデータを直接 Amazon CloudWatch に発行できます。

フローログデータは、CloudWatch Logs に対して発行するときはロググループに発行され、各ネットワークインターフェイスにはロググループに一意のログストリームがあります。ログストリームにはフローログレコードが含まれます。同じロググループにデータを公開する複数のフローログを作成できます。同じネットワークインターフェイスが同じロググループの 1 つ以上のフローログに存在する場合、1 つの組み合わされたログストリームがあります。1 つのフローログで、拒否されたトラフィックをキャプチャし、別のフローログで、許可されたトラフィックをキャプチャするよう指定した場合、組み合わされたログストリームですべてのトラフィックがキャプチャされます。詳細については、「フローログレコード」を参照してください。

CloudWatch Logs へのフローログ発行のための IAM ロール

フローログに関連付けられた IAM ロールには、CloudWatch Logs の指定されたロググループにフローログを発行するために十分なアクセス権限が必要です。IAM ロールにアタッチされた IAM ポリシーには、少なくとも以下のアクセス権限が含まれている必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "*" } ] }

フローログサービスがロールを引き受けることができる信頼関係がロールにあることも確認します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "vpc-flow-logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

フローログに関連付けられた IAM ロール用に iam:PassRole アクションを使用するアクセス許可もユーザーに必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": "arn:aws:iam::account-id:role/flow-log-role-name" } ] }

既存ロールを更新するか、次の手順を使用してフローログで使用する新しいロールを作成できます。

アカウントでの CloudWatch Logs ロググループの

フローログの IAM ロールを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles]、[Create role] の順に選択します。

  3. このロールを使用するサービスとして、[EC2] を選択します。[ユースケース] で、[EC2] を選択します。[Next: Permissions (次へ: アクセス権限)] を選択します。

  4. [アクセス権限ポリシーをアタッチする] ページで、[Next: Review] (次: 確認) を選択します。

  5. ロールの名前 (例: Flow-Logs-Role) を入力し、オプションで説明を入力します。[Create role] を選択します。

  6. ロールの名前を選択します。[アクセス許可] で [インラインポリシーの追加]、[JSON] の順に選択します。

  7. CloudWatch Logs へのフローログ発行のための IAM ロール」から最初のポリシーをコピーして、ウィンドウに貼り付けます。[ポリシーの確認] を選択します。

  8. ポリシーの名前を入力し、[ポリシーの作成] を選択します。

  9. ロールの名前を選択します。[Trust relationships] で、[Edit trust relationship] を選択します。既存のポリシードキュメントで、サービスを ec2.amazonaws.com から vpc-flow-logs.amazonaws.com に変更します。[Update Trust Policy] を選択します。

  10. [Summary] ページで、ロールの ARN を書き留めます。フローログを作成するときに、この ARN が必要になります。

CloudWatch Logs に発行するフローログの作成

VPCs、サブネット、またはネットワークインターフェイスのフローログを作成できます。

ネットワークインターフェイスのフローログを作成するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Network Interfaces] を選択します。

  3. 1 つ以上のネットワークインターフェイスを選択し、[アクション]、[フローログの作成] の順に選択します。

  4. [フィルタ] で、記録する IP トラフィックデータのタイプを指定します。承諾および拒否されたトラフィックを記録するには [すべて]、拒否されたトラフィックだけを記録するには [拒否]、承諾されたトラフィックだけを記録するには [承諾済み] を選択します。

  5. [送信先] で、[Send to CloudWatch Logs (CloudWatch ログへの送信)] を選択します。

  6. [送信先ロググループ] に、フローログを発行する CloudWatch Logs のロググループの名前を入力します。存在しないロググループ名を指定した場合、ロググループの自動的な作成が試みられます。

  7. [IAM ロール] で、ログを CloudWatch Logs に発行できるアクセス権限があるロールの名前を指定します。

  8. [作成] を選択します。

VPC またはサブネットのフローログを作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[VPC] または [サブネット] を選択します。

  3. 1 つ以上の VPC またはサブネットを選択し、[アクション]、[フローログの作成] の順に選択します。

  4. [フィルタ] で、記録する IP トラフィックデータのタイプを指定します。承諾および拒否されたトラフィックを記録するには [すべて]、拒否されたトラフィックだけを記録するには [拒否]、承諾されたトラフィックだけを記録するには [承諾済み] を選択します。

  5. [送信先] で、[Send to CloudWatch Logs (CloudWatch ログへの送信)] を選択します。

  6. [送信先ロググループ] に、フローログを発行する CloudWatch Logs のロググループの名前を入力します。存在しないロググループ名を指定した場合、ロググループの自動的な作成が試みられます。

  7. [IAM ロール] で、ログを CloudWatch Logs に発行できるアクセス権限がある IAM ロールの名前を指定します。

  8. [作成] を選択します。

CloudWatch Logs でのフローログレコードの処理

CloudWatch Logs で収集された他のログイベントのように、フローログレコードを操作できます。ログデータとメトリクスフィルタのモニタリングの詳細については、Amazon CloudWatch ユーザーガイドの「ログデータの検索とフィルタ」を参照してください。

例: フローログの CloudWatch メトリクスフィルタとアラームの作成

この例では、eni-1a2b3c4d のフローログがあります。1 時間以内の期間に TCP ポート 22 (SSH) 経由でインスタンスに接続しようとする試みが 10 個以上拒否された場合に、アラームを作成するとします。最初に、アラームを作成するトラフィックのパターンと一致するメトリクスフィルタを作成する必要があります。次に、メトリクスフィルタのアラームを作成できます。

拒否された SSH トラフィックのメトリクスフィルタを作成し、フィルタのアラームを作成するには

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、[Logs] を選択し、フローログのフローロググループを選択して、[Create Metric Filter] を選択します。

  3. [フィルターパターン] で、次のように入力します。

    [version, account, eni, source, destination, srcport, destport="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
  4. [テストするログデータの選択] で、ネットワークインターフェイスのログストリームを選択します。(オプション) フィルタパターンと一致するログデータの行を表示するには、[テストパターン] を選択します。準備ができたら、[Assign Metric] を選択します。

  5. メトリクスの名前空間と名前を指定し、メトリクスの値が 1 に設定されたことを確認します。終了したら、[Create Filter] を選択します。

  6. ナビゲーションペインで、[Alarms]、[Create Alarm] の順に選択します。

  7. [Custom Metrics] セクションで、作成したメトリクスフィルタの名前空間を選択します。

    注記

    新しいメトリクスがコンソールに表示されるまでに数分かかる場合があります。

  8. 作成したメトリクス名を選択し、[次へ] を選択します。

  9. アラームの名前と説明を入力します。[is] フィールドで、[>=] を選択し、「10」と入力します。[for] フィールドで、連続した期間としてデフォルトの 1 をそのままにしておきます。

  10. [期間] で、[1 時間] を選択します。[統計] で、[合計] を選択します。Sum 統計では、指定された期間のデータポイントの総数をキャプチャしていることを確認できます。

  11. [アクション] セクションで、既存のリストに通知を送信できます。または、新しいリストを作成し、アラームがトリガーされたときに通知を受け取る E メールアドレスを入力することもできます。終了したら、[Create Alarm] を選択します。