コンソールサインインの失敗を通知するCloudWatchアラームが未設定

AWSコンソールへのサインイン失敗を通知するよう設定してください。

説明

コンソールへのサインイン失敗は、入力ミスやアカウントへの攻撃によって発生することがあります。失敗イベントを監視し、繰り返される試行や不審な試行を調査してください。

想定される影響

通知がないと、繰り返されるサインイン失敗の発見や調査の開始が遅れるおそれがあります。

対処方法

ConsoleLoginとFailed authenticationの両方に一致するログメトリクスフィルターを設定してください。フィルターのメトリクスにアラームを関連付け、運用環境に合ったしきい値と通知先を設定してください。

例

以下は、5分間に1回以上の失敗があると状態が変わるアラームにメトリクスを関連付ける例です。CloudTrailのログ配信と通知先は別途設定してください。

変更前

hcl
resource "aws_cloudwatch_log_metric_filter" "example" {
  name           = "CIS-ConsoleAuthenticationFailure"
  pattern        = "{ ($.eventName = ConsoleLogin) && ($.errorMessage = \"Failed authentication\") }"
  log_group_name = aws_cloudwatch_log_group.CIS_CloudWatch_LogsGroup.name

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

resource "aws_cloudwatch_metric_alarm" "example" {
  alarm_name          = "CIS-3.6-ConsoleAuthenticationFailure"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "1"
  metric_name         = "XXX NOT YOUR FILTER"
  namespace           = "CIS_Metric_Alarm_Namespace"
  period              = "300"
  statistic           = "Sum"
  threshold           = "1"
}

変更後

hcl
resource "aws_cloudwatch_log_metric_filter" "example" {
  name           = "CIS-ConsoleAuthenticationFailure"
  pattern        = "{ (($.eventName = ConsoleLogin) && ($.errorMessage = \"Failed authentication\")) }"
  log_group_name = aws_cloudwatch_log_group.CIS_CloudWatch_LogsGroup.name

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

resource "aws_cloudwatch_metric_alarm" "example" {
  alarm_name          = "CIS-3.6-ConsoleAuthenticationFailure"
  comparison_operator = "GreaterThanOrEqualToThreshold"
  evaluation_periods  = "1"
  metric_name         = aws_cloudwatch_log_metric_filter.example.id
  namespace           = "CIS_Metric_Alarm_Namespace"
  period              = "300"
  statistic           = "Sum"
  threshold           = "1"
}

参考資料