監査設定の変更ログとアラートの確認

監査対象の変更を記録し、必要な運用担当者に通知してください。

説明

GCP の監査ログ設定が変わると、記録する活動の範囲も変わります。設定変更を追跡するメトリクスとアラートがないと、重要な監査対象が減っても運用担当者が気付くのが遅れるおそれがあります。

想定される影響

  • 監査を弱める変更の発見が遅れる場合があります。
  • 調査に必要な活動記録が不足するおそれがあります。

対処方法

  • 実際の監査ログを確認し、該当する SetIamPolicy と auditConfigDeltas など、監査設定の変更を含むフィルターを設定してください。
  • ログメトリクスを参照するアラート条件と notification_channels を設定してください。承認された試験変更でログ、メトリクス、通知を確認し、取り込みの遅延も考慮してください。

例

設定の一部を比較する例で、変更前のアラート構成は不完全です。変更後の var.audit_monitored_resource_type には対象メトリクスに実在する監視対象リソースの種類を指定し、通知チャネルとプロジェクトは別途設定してください。評価期間はログ取り込みの遅延と運用要件に合わせて調整してください。

変更前

hcl
resource "google_logging_metric" "audit_config_change" {
  name        = "audit_config_change"
  description = "Detects changes to audit configurations via SetIamPolicy"
  filter      = "protoPayload.methodName=\"wrong_method\" AND protoPayload.serviceData.policyDelta.auditConfigDeltas:*"
}

resource "google_monitoring_alert_policy" "audit_config_alert" {
  display_name = "Audit Config Change Alert"
  combiner     = "OR"

  conditions {
    display_name = "Audit Config Change Condition"

    condition_threshold {
      filter = "resource.type=\"gce_instance\" AND metric.type=\"logging.googleapis.com/user/audit_config_change\""
    }
  }
}

変更後

hcl
resource "google_logging_metric" "audit_config_change" {
  name        = "audit_config_change"
  description = "Detects changes to audit configurations via SetIamPolicy"
  filter      = "protoPayload.methodName=\"SetIamPolicy\" AND protoPayload.serviceData.policyDelta.auditConfigDeltas:*"
}

resource "google_monitoring_alert_policy" "audit_config_alert" {
  display_name          = "Audit Config Change Alert"
  combiner              = "OR"
  notification_channels = [google_monitoring_notification_channel.security_ops.name]

  conditions {
    display_name = "Matching audit events"
    condition_threshold {
      filter = "metric.type=\"logging.googleapis.com/user/${google_logging_metric.audit_config_change.name}\" AND resource.type=\"${var.audit_monitored_resource_type}\""
      comparison      = "COMPARISON_GT"
      threshold_value = 0
      duration        = "0s"
      aggregations {
        alignment_period   = "600s"
        per_series_aligner = "ALIGN_SUM"
      }
    }
  }
}

補足:

  • 変更前: メソッドのフィルターが誤っているため、対象の変更を含められない場合があり、アラート条件も不完全です。
  • 変更後: 変更フィルター、メトリクスのしきい値条件、通知チャネルを関連付けます。実際のイベント形式と配信を確認してください。

参考資料