ACM でインポートした証明書の有効期限が近づいたら、通知するにはどうすればよいですか?

所要時間3分
0

AWS Certificate Manager (ACM) 証明書をインポートしましたが、有効期限が切れる前に証明書を再インポートするリマインダーを受け取りたいと考えています。

簡単な説明

ACM は、インポートされた証明書の管理された更新を提供しません。インポートされた証明書を更新するには、まず、証明書発行者に新しい証明書をリクエストします。次に、証明書を ACM に手動で再インポートします

証明書の有効期限が近づいているという通知を受け取るには、次のいずれかの方法を使用します。

  • Amazon EventBridge の ACM API を使用して、ACM 証明書の有効期限が近づいているイベントを設定します。
  • EventBridge のカスタムルールを作成して、証明書の有効期限が近づいたときにメール通知を受信します。
  • AWS Config を使用して、有効期限が近づいている証明書を確認します。

この解決に AWS Config を使用する場合は、次の点に注意してください。

  • AWS Config ルールを設定する前に、Amazon Simple Notification Service (Amazon SNS) トピックと EventBridge ルールを作成します。これにより、すべての非準拠証明書の有効期限前通知を受け取れるようになります。
  • AWS Config を有効にすると、使用量に応じて追加コストが発生します。詳細については、「AWS Config pricing」を参照してください。

解決方法

イベントブリッジで「ACM 証明書の有効期限が近づいている」イベントを設定する

ACM は、有効期限が近づいているイベントの通知を Amazon CloudWatch を通じて送信します。デフォルトでは、ACM 証明書の有効期限が近づいているイベントは、イベントの有効期限の 45 日前に通知を送信します。この通知のタイミングを設定するには、まずこのイベントをルールとして EventBridge に追加します。

1.    Amazon EventBridge コンソールを開きます。

2.   ナビゲーションペインで [Rules] を選択し、続いて [Create rule] を選択します。

3.    ルールの [名前] を入力します。説明フィールドはオプションです。

注: 同じ AWS リージョン、同じイベントバスにあるルールには一意の名前を付ける必要があります。

4.    イベントバスの場合は、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、AWS デフォルトイベントバスを選択してください。この場合、アカウント内の AWS のサービスがイベントを発行すると、イベントは常にアカウントのデフォルトイベントバスに送信されます。

5.    [Rule type] (ルールタイプ) で、[Rule with an event pattern] (イベントパターンを持つルール) を選択して、[Next] (次へ) を選択します。

6.    [Event source] (イベントソース) で、[AWS events or EventBridge partner events] (AWS イベントまたは EventBridge パートナーイベント) を選択します。

7.    [Creation method] (作成方法) で、[Use pattern form option] (パターンフォームを使用する) オプションを選択します。

8.    [Event pattern] (イベントパターン) セクションで、以下のフィールドを記載どおりに入力します。

[Event source] (イベントソース) で、[AWS Services] (AWS のサービス) を選択します。

[AWS service] (AWS のサービス) では、[Certificate Manager] (証明書マネージャー) を選択します。

[Event type] (イベントタイプ) で、[ACM Certificate Approaching Expiration] (ACM 証明書の有効期限が近づいている) を選択します。

9.    [次へ] を選択します。

10.    [Target types] (ターゲットタイプ) には、[AWS Service] (AWS のサービス) を選択します。

11.   [Select a target] (ターゲットの選択) で [SNS topic] (SNS トピック) を選択し、有効期限通知を設定するトピックを選択します。

12.   [Next] (次へ) を選択します。

(オプション) [tags] (タグ) を追加します。

13.    [次へ] を選択します。

14.   ルールの詳細を確認し、[Create rule] (ルールを作成) を選択します。

このルールを作成したら、有効期限通知のタイミングを変更できます。ACM API の PutAccountConfiguration アクションで、DaysBeforeExpiry に 1~45 の値を入力します。詳細については、「ACM 証明書の有効期限が近づいているイベント」を参照してください。

イベントの有効期限が切れる 45 日以上前に通知を設定する場合は、次の代替方法を使用してください。

カスタムのイベントブリッジルールを作成する

EventBridge ルールのカスタムイベントパターンを使用して、AWS Config マネージドルール acm-certificate-expiration-check に一致させます。次に、レスポンスを Amazon Simple Notification Service トピックにルーティングします。

1.    Amazon SNS トピックを作成していない場合は、「Amazon SNS の開始方法」の手順に従ってください。

注: Amazon SNS トピックは、AWS Config サービスと同じ AWS リージョンにある必要があります。

2.    EventBridge コンソールを開き、[Rules] (ルール) を選択します。

3.    [Create rule] (ルールの作成) を選択します。

4.    [Name] (名前) に、ルール名を入力します。

5.    [Rule type] (ルールタイプ) で、[Rule with and event pattern] (イベントパターンを持つルール) を選択して、 [Next] (次へ) を選択します。

6.    [Event source] (イベントソース) で、[AWS events or EventBridge partner events] (AWS イベントまたは EventBridge パートナーイベント) を選択します。

7.    [Event pattern] (イベントパターン) で、[Custom patterns (JSON editor)] (カスタムパターン (JSON エディタ)) を選択します。

8.    [Event pattern] (イベントパターン) のプレビューペインで、次のイベントパターンをコピーして貼り付けます。

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Rules Compliance Change"
  ],
  "detail": {
    "messageType": [
      "ComplianceChangeNotification"
    ],
    "configRuleName": [
      "acm-certificate-expiration-check"
    ],
    "resourceType": [
      "AWS::ACM::Certificate"
    ],
    "newEvaluationResult": {
      "complianceType": [
        "NON_COMPLIANT"
      ]
    }
  }
}

9.    [次へ] を選択します。

10.    [Select a target] (ターゲットを選択) で、[SNS topic] (SNS トピック) を選択します。

11.   [Topic] (トピック) で、SNS トピックを選択します。

12.    [Configure target input] (ターゲットの入力の設定)ドロップダウンリストで、[Input transformer] (入力トランスフォーマー) を選択します。

13.    [Configure input transformer] (入力トランスフォーマーを設定) を選択します。

14.    [Input Path] (入力パス) テキストボックスに、以下をコピーして貼り付けます。

{
  "awsRegion": "$.detail.awsRegion",
  "resourceId": "$.detail.resourceId",
  "awsAccountId": "$.detail.awsAccountId",
  "compliance": "$.detail.newEvaluationResult.complianceType",
  "rule": "$.detail.configRuleName",
  "time": "$.detail.newEvaluationResult.resultRecordedTime",
  "resourceType": "$.detail.resourceType"
}

15.    [Input Template] (入力テンプレート) テキストボックスに、次のテンプレートをコピーして貼り付けます。

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance>."

"For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration."

16.    [Confirm] (確認)、[Next] (次へ)、[Next] (次へ)、[Create rule] (ルールの作成) を選択します。

17.    イベントタイプが開始すると、[ステップ 14] で入力したカスタム項目が記載された、次のような SNS のメール通知を受け取ります。

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_Id in Region ExampleRegion as ExamplecomplianceType. 

For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"

AWS Config ルールの作成

1.    [AWS Config console] (AWS Config コンソール) を開き、[Rules] (ルール) を選択し、[Add rule] (ルールの追加) を選択します。

2.    [Select rule type] (ルールタイプの選択) で、[Add AWS managed rule] (AWS マネージドルールの追加) を選択します。

3.    [Add AWS managed rule] (AWS マネージドルール) で、[acm-certificate-expiration-check] を選択し、[Next] (次へ) を選択します。

4.    [Parameters] (パラメーター) の [daysToExpiration] キーの [Value] (値) に、ルールでトリガーしたい有効期限までの日数を入力します。

注: 入力した日数の有効期限が近づいている証明書の場合、AWS Config ルール acm-certificate-expiration-check[Noncompliant] (非準拠) としてマークされます。

5.    [Next] (次へ) を選択してから [Add rule] (ルールを追加) を選択します。


関連情報

証明書を発行して管理する

AWS リソースが非準拠である場合、AWS Config を使用して通知を受け取る方法を教えてください。

AWS Config のセキュリティのベストプラクティス

AWS公式
AWS公式更新しました 1年前
コメントはありません