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