ACM証明書の有効期限を監視してメール通知する
はじめに
- 2021/3 からACM(AWS Certificate Manager)は、Amazon CloudWatch を使用して証明書のメトリクスを監視することが可能になりました。今回は、ACM にデプロイされている証明書の有効期限を監視して、有効期限が間近になるとメール通知する方法を紹介します。CloudWatch + SNSのみを使用したシンプルな構成となります。
ACMとは
- ACM はAWS のパブリックおよびプライベートの証明書を発行、管理するためのサービスです。証明書はACM を利用して発行するか、外部認証局から発行された証明書をインポートして利用します。
有効期限切れの課題
- 多くのケースは、ACM は自動的に証明書の更新を行います。しかし、証明書が(DNS検証ではなく)メール検証を使用して発行された場合や、証明書をインポートして利用している場合は、証明書の有効期限より前にアクションが必要となります。
- 今回は、ACM のメトリクスを監視して、証明書の有効期限が切れる前に再インポートなどのアクションを取ります。
ACM 証明書のメトリクスを監視
- 今回はテスト用に証明書を2つ準備し、ACM にインポートしています。1つは有効期限まで約2ヵ月あり、もう1つは有効期限まで数日しかありません。
- CloudWatch メトリクスでは、「DaysToExpiry」が利用可能です。これは、証明書の有効期限が切れるまでの日数を表します。こちらの検証では、証明書のインポートからメトリクスが取得されるまで、1日~数日の時間が掛かりました。
- グラフが分かりづらい場合は、表示のオプションを数値に切り替えます。
有効期限監視のAlarm を作成
- 以下画像のアクションにある「アラームの作成」を押し、Alarmの作成に進みます。
- 「メトリクスと条件の指定」にて、メトリクスを指定します。メトリクスの評価期間は1日としています。
- 条件を指定します。今回は、しきい値として7日を下回った場合にAlarm状態に変わります。
- 「次へ」を押し、「アクションの設定」に移ります。
- 次は、SNS トピックを定義します。「新しいトピックの作成」の選択、トピック名(例: ACM_Certificate_Expire_Topic)およびメールアドレスを指定し、「トピックの作成」を押します。
- SNS トピックの配信を受け取るための確認メールを受信します。「Confirm subscription」をクリックします。
- SNS トピックが作成されました。以下は、Amazon SNS のコンソールを開き、トピックを確認した結果です。
- Alarmの作成に戻り、「次へ」を押します。「名前と説明を追加」にて、「アラーム名」を指定します。
- 設定内容をレビューし、「アラームの作成」を選択します。
- Alarmが作成されました。
有効期限切れのAlarm を検出
- Alarmに設定したしきい値超過を検出すると、Alarm状態に変わります。
- SNS トピックに設定したメール通知も行われました。
- これで証明書の有効期限切れを未然に発見することができました。必要に応じて、証明書の再インポートなどのアクションを取ります。