ネットワークゲートウェイ変更を監視するアラームの未設定

AWS ネットワークゲートウェイの変更を監視する CloudWatch フィルターとアラームがないと、VPC 境界の変更の把握が遅れる場合があります。

説明

インターネットゲートウェイやカスタマーゲートウェイの作成、接続、切断、削除を監視するログフィルターとアラームがないと、ネットワーク境界の変更に気付くのが遅れる場合があります。これらの変更は外部との通信経路に影響する可能性があり、運用とセキュリティの両面で重要です。

ゲートウェイの変更だけでサービスが公開されるわけではありません。実際の到達可能性は、ルーティングやセキュリティグループなどの設定にも依存します。

想定される影響

  • 外部との通信経路の変更を把握するのが遅れる場合があります。
  • 誤ったゲートウェイの接続や切断による通信障害の調査に時間がかかる場合があります。
  • ネットワークのセキュリティ境界の変化への対応が遅れるおそれがあります。

対処方法

  • 必要なゲートウェイ変更イベントを CloudTrail から CloudWatch Logs に配信し、ログメトリクスフィルターを設定してください。
  • 生成されるメトリクス名と名前空間を CloudWatch アラームに接続し、評価条件と SNS 配信経路を設定してください。
  • 運用で必要な変更イベントが含まれることを確認し、アラーム条件を満たすテストイベントで通知を検証してください。

例

フィルターとメトリクスの接続を示す抜粋です。比較演算子、評価期間、統計と集計期間、通知アクションを補い、CloudTrail のログ配信と SNS のサブスクリプションを設定してください。ここではフィルター名と生成されるメトリクス名が同じため、フィルターの id を参照しています。

変更前

hcl
resource "aws_cloudwatch_metric_alarm" "example" {
  alarm_name  = "CIS-3.12-NetworkGatewayChanges"
  metric_name = "XXXX NOT YOUR FILTER XXXX"
  namespace   = "CIS_Metric_Alarm_Namespace"
  threshold   = "1"
}

変更後

hcl
resource "aws_cloudwatch_log_metric_filter" "example" {
  name           = "CIS-NetworkGatewayChanges"
  pattern        = "{ ($.eventName = CreateCustomerGateway) || ($.eventName = DeleteCustomerGateway) || ($.eventName = AttachInternetGateway) || ($.eventName = CreateInternetGateway) || ($.eventName = DeleteInternetGateway) || ($.eventName = DetachInternetGateway) }"
  log_group_name = aws_cloudwatch_log_group.CIS_CloudWatch_LogsGroup.name

  metric_transformation {
    name      = "CIS-NetworkGatewayChanges"
    namespace = "CIS_Metric_Alarm_Namespace"
    value     = "1"
  }
}

resource "aws_cloudwatch_metric_alarm" "example" {
  alarm_name  = "CIS-3.12-NetworkGatewayChanges"
  metric_name = aws_cloudwatch_log_metric_filter.example.id
  namespace   = "CIS_Metric_Alarm_Namespace"
  threshold   = "1"
}

補足:

  • 変更前: アラームのメトリクス名がゲートウェイ変更のメトリクスに接続されていません。
  • 変更後: 列挙したゲートウェイイベントをメトリクスに変換し、アラームに接続します。通知を受信するには、省略されたアラーム設定と実際の配信経路も完成させる必要があります。

参考資料