説明
CloudWatch ロググループの retention_in_days を省略すると、既定ではログに有効期限が設定されません。Terraform で 0 を指定した場合も無期限に保存されます。一方、期間が短すぎると調査に必要なログが失われる場合があります。
ログは多く残せばよいわけではなく、運用目的と規制要件に合う期間を定めることが重要です。長期保存が必要な場合も、その目的とアクセス・費用の管理方針を明確にしてください。
想定される影響
- 不要な保存によってストレージ費用が増え続ける場合があります。
- リソースごとに保存期間が異なると、運用方針を一貫して適用しにくくなる場合があります。
- 必要なログが早く削除されたり、機密情報を含む記録が必要以上に長く残ったりするおそれがあります。
対処方法
- 調査・監査要件に合う
retention_in_daysを明示し、新しいロググループにも同じ方針を適用してください。 - 保存期間を短縮する前に既存ログへの影響を確認し、別途保管が必要な記録を保存してください。期限切れログの削除には時間がかかる場合があります。
- ログのアクセス権限、保存費用、保存要件の変化を定期的に確認してください。
例
30 日は説明用の値であり、すべてのサービスや規制に共通する基準ではありません。
変更前
hcl
resource "aws_cloudwatch_log_group" "app" {
name = "/aws/app/service"
}
変更後
hcl
resource "aws_cloudwatch_log_group" "app" {
name = "/aws/app/service"
retention_in_days = 30
}
補足:
- 変更前: 保存期間を省略しているため、ログは期限切れになりません。
- 変更後: 保存期間を 30 日に設定します。この変更で期限切れの対象になる既存の記録も確認する必要があります。