CloudFront Saas ManagerのACM証明書の注意点

こんにちは、株式会社インゲージでSREを担当しているanecho108です。
これまで2回にわたり、CloudFront SaaS Manager(以下、SaaS Manager)の活用方法についてご紹介してきました。

過去記事1:導入編
過去記事2:設定編

今回は、SaaS Managerで実際に私がハマってしまった2つのポイントについて、備忘録として共有させていただきます。

ファイルアップロード検証のトークン仕様

SaaS Managerでディストリビューションテナントを作成し、証明書を検証する方法には「HTTPリダイレクト検証」と「ファイルアップロード検証」の2パターンがあります。

ACM画面の表示に惑わされない

SaaS Managerから「Request new certificate」ボタンで証明書を発行すると、 AWSマネジメントコンソールのACM(AWS Certificate Manager)画面上では「検証中」となります。 このとき、ACMの詳細画面にはHTTP検証(CNAME等)の方法しか表示されないことがありますが、 SaaS Manager側でファイルアップロード検証を選択していれば、問題なくファイル検証が進められます。

トークンの有効期限とタイムラグ

ファイルアップロード検証では、指定された File path に Get validation token で
取得したトークンを記述したテキストファイルを配置します。

ここで注意すべきが以下の2点です。

  • トークンの有効期限
    トークンは72時間で失効します。期限を過ぎた場合は、再度 Get validation token で取得し直す必要があります。

  • 再発行時のタイムラグ
    証明書を再発行した場合、Get validation token で取得できる値が新しいものに切り替わるまで5分程度のタイムラグがあります。再発行直後に前のトークンをそのまま設定してしまわないよう、少し時間を置いてから新しい値を取得するのがコツです。

Domain ownershipのCNAME競合エラー

証明書の検証が無事に完了し、「いざ登録!」とCloudFrontディストリビューションに証明書を適用しようとした際、以下のエラーに直面しました。

Error applying certificate.

このエラーの原因は、CloudFront特有の仕様にあります。追加しようとしているCNAMEエイリアスが、すでに他のCloudFrontディストリビューションに関連付けられている場合に発生します。

同一アカウント内、あるいは別のアカウントであっても、既存のCloudFrontディストリビューションにそのCNAMEが設定されている場合は、先にそちらを削除しなければなりません。

既存のエイリアスを削除してから再度実行することで、無事に証明書を有効化することができました。詳細はAWSの公式ナレッジセンターも参照してみてください。
repost.aws