CloudWatch Logs の削除保護機能が新たに提供されました

記事タイトルとURLをコピーする

こんにちは、アプリケーションサービス部の遠藤です。

AWS CloudWatch Logs を運用する上で、最も恐ろしいことの一つが「重要なロググループの誤削除」です。

これまでは、IAM ポリシーによる権限制限などで対策するしかありませんでしたが、ついに標準機能として「削除保護(Deletion Protection)」が実装されました。本記事では、この機能の概要、設定方法、そして運用上のメリットを解説します。


1. ロググループの削除保護とは?

削除保護とは、その名の通りロググループが誤って、あるいは意図せず削除されるのを防ぐ機能です。

この機能が「有効」になっているロググループは、AWS マネジメントコンソール、AWS CLI、各種 SDK からの削除リクエストがすべて拒否されます。削除を実行するには、まず「削除保護を無効化」するという明示的なステップが必要になります。

主な特徴

  • 誤操作の防止: sam deletecdk destroy、あるいは CLI でのコマンドミスによる消失を物理的にガードします。
  • コンプライアンスの強化: 監査や証跡管理のために長期間保存が必要なログの安全性を確保。
  • 追加料金なし: この機能自体の利用にコストはかかりません。

2. 設定方法の比較

環境に合わせて、以下のいずれかの方法で設定可能です。

設定方法 手順・概要
マネジメントコンソール ロググループを選択 > アクション > 削除保護の編集 > 「削除保護」を有効化
AWS CLI put-log-group-deletion-protection 等の実行時に保護フラグを指定
IaC (Terraform/CloudFormation) 各リソースのプロパティに追加された deletion_protection 等の項目を true に設定
AWS SAM / CDK リソース定義のプロパティ(deletionProtectionEnabled 等)を true に設定

3. 具体的な設定例

AWS CLI での設定・確認

既存のロググループに対して削除保護を有効化したり、現在の状況を確認したりする際のコマンド例です。

■ 削除保護を有効にする

aws logs put-log-group-deletion-protection \
    --log-group-identifier "/aws/lambda/my-function" \
    --deletion-protection-enabled

4. 具体的な挙動

削除保護が有効なロググループを削除しようとすると、システムは以下のエラーを返し、削除をブロックします。

エラー表示例: An error occurred (OperationAbortedException) when calling the DeleteLogGroup operation: Log group [LogGroupName] cannot be deleted because deletion protection is enabled.


5. 運用のベストプラクティス

  1. 本番環境は原則「有効」に 本番環境(Production)のアプリケーションログや、CloudTrail の出力先、VPC Flow Logs など、消失が許されないロググループには一括で適用を検討しましょう。

  2. IaC での管理を推奨 手動設定は漏れが発生しやすいため、今回紹介した SAM や CDK のテンプレート内でデフォルト設定として組み込むのが最も安全です。

  3. 保持ポリシー(Retention Policy)との併用 削除保護を有効にすると、削除ミスは防げますがログは蓄積され続けます。コスト最適化のため、適切な保持期間を設定しておくことを忘れないようにしましょう。


まとめ

今回の「削除保護」の実装は、地味ながらも AWS 運用の安定性を大きく向上させる重要なアップデートです。

「大切なログが消えてしまった!」と後悔する前に、まずは重要なロググループの設定を確認し、削除保護を有効にすることをおすすめします。


参考リンク

遠藤 広也
(エンジニアブログ記事一覧)
(サバワク記事一覧)

アプリケーションサービス本部

2024年中途入社 アプリケーションサービス本部にてAWSを活用したアプリケーション開発に携わっています!
趣味はお酒とバンドです