AWS Certificate Manager 証明書の有効期限を CloudWatch でモニタリング可能になりました!

2021.03.04

証明書の有効期限管理って大変ですよね。有効期限切れてましたでは済まされないし、必ずしも運用担当者にメール通知が届くとは限らないものです。。昔、大量の証明書を一覧にして、スケジュール管理した日々を思い出します。

私の昔話はこれくらいにして、タイトルの通り AWS Certificate Manager(以降 ACM)で、管理する証明書の有効期限を CloudWatch でメトリクスとしてモニタリングが可能となりました!

AWS Certificate Manager now provides certificate expiry monitoring through Amazon CloudWatch

現時点(2021/3/4 時点)では、「有効期限までの日数」 が利用可能となっています。

引用: Supported CloudWatch Metrics

また CloudWatch とともに Amazon EventBridge でイベントトリガーとしても利用可能となりました。期限をイベントに Lambda などを実行させ、カスタマイズした通知やサービスへの集約などが可能となります。

参考情報: Using CloudWatch Events

本機能は利用するための設定変更は不要なため ACM で証明書を管理されている方は CloudWatch メトリクスを確認して見てください!

自分でやってみたいので、やってみます。

事前準備

ドメインと証明書取得

Route53 でドメインを取得します。(以前取得したものがありました)

ACM にて証明書を取得します。(インポートした証明書でも、本機能は対象となるようです)

取得したばかりなので 394 日後に有効期間の終了を迎えます。

  • 有効期間の開始時刻 2021-03-04T00:00:00UTC
  • 有効期間の終了時刻 2022-04-02T23:59:59UTC

雰囲気を出したいので CLB のリスナーに証明書を設定しておきます。

メトリクス&アラーム

メトリクス

CloudWatch メトリクスを見ていきます。即時には取得がされないようでしばらく待ちました。(そんなに頻繁に取得するものではないかなと納得

CertificateManager のメトリクスが表示されたら、選択していきます。

ぽつっと一度メトリクスが取得されているのが確認できます。

ウィジェットタイプが だとわかりづらいので 数値 に切り替えます。先ほど ACM に記載のあった有効期間の日数と同様の値が表示されました!

アラーム

このメトリクスを利用したアラームを作成してみます。鈴のマーク からアラームを作成します。

値の変動が頻繁ではないので、一日での最小値とします。

すぐ結果が見たいので、既にアラームとなる値を設定します。(400日)

アラームが完成しました。

しばらくすると状態が変化します。

アクションに設定していたメールアドレスに通知が届きました!

さいごに

簡単にではありますが、利用可能となった ACM で管理されている証明書の有効期限を CloudWatch でモニタリングするをやってみました。今までは モニタリング SaaS や自前スクリプト(はたまたリストを用いて)などで管理していた有効期限の管理が AWS 内で完結させることが可能となりました! メトリクス取得には特に設定は不要なため、既に ACM で 証明書を管理されている方は、一度 CloudWatch でどんなものかをご覧になって、活用を検討してみるのも良いかと思います! たくさん保有している方は、ダッシュボードで管理とか良さそうですね(可視化したいだけ。思いつきです。)