説明
セキュリティグループの作成・削除やインバウンド・アウトバウンドルールの変更は、サービスへのアクセス範囲に影響します。関連イベントを監視し、承認されていない変更や操作ミスを確認してください。
想定される影響
通知がないと、意図しないサービスの公開や通信の遮断への対応が遅れるおそれがあります。
対処方法
セキュリティグループの作成・削除とルールの許可・取り消しイベントを収集するログメトリクスフィルターを設定してください。フィルターのメトリクスにアラームを関連付け、担当者への通知を設定してください。
例
以下は、フィルターが出力するメトリクスを参照するようアラームを修正する例です。CloudTrailのログ配信と通知先は別途設定してください。
変更前
hcl
resource "aws_cloudwatch_log_metric_filter" "example" {
name = "CIS-SecurityGroupChanges"
pattern = "{ ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup)}"
log_group_name = aws_cloudwatch_log_group.CIS_CloudWatch_LogsGroup.name
metric_transformation {
name = "CIS-SecurityGroupChanges"
namespace = "CIS_Metric_Alarm_Namespace"
value = "1"
}
}
resource "aws_cloudwatch_metric_alarm" "example" {
alarm_name = "CIS-3.10-SecurityGroupChanges"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "XXXX NOT YOUR FILTER XXXX"
namespace = "CIS_Metric_Alarm_Namespace"
period = "300"
statistic = "Sum"
threshold = "1"
}
変更後
hcl
resource "aws_cloudwatch_log_metric_filter" "example" {
name = "CIS-SecurityGroupChanges"
pattern = "{ ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup)}"
log_group_name = aws_cloudwatch_log_group.CIS_CloudWatch_LogsGroup.name
metric_transformation {
name = "CIS-SecurityGroupChanges"
namespace = "CIS_Metric_Alarm_Namespace"
value = "1"
}
}
resource "aws_cloudwatch_metric_alarm" "example" {
alarm_name = "CIS-3.10-SecurityGroupChanges"
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"
}