[AWS] 知らないアカウントIDのCloudFrontが自分のACM証明書を使っていると思ったけど違った

結論

結論から言うと API Gateway でした。
ACMで発行したSSL/TLS 証明書を シームレスに他のAWSプロダクトで利用することが可能なのですが、その時に内部動作としては規定のアカウントIDでCloudFrontディストリビューションが生成され、そのディストリビューションに対して証明書が適用されるようです。

直面した問題

AWSでのシステム運用にあたり、それなりの数のドメインを運用しているのですが、基本的にはACMにて発行した証明書を利用しています。
以前はメール認証しかできず、きちんと環境を整えてあげないと自動更新に失敗することもあり、DNS認証の同一ドメインの証明書を別に発行し、そちらに切り替える作業を行なっていました。
ACMで発行した証明書はAWSコンソール上から簡単にELBやCloudFrontといったAWSプロダクトに利用することが可能なのですが、証明書を削除する際には全てのインスタンス・ディストリビューションから利用を解除する必要があります。
「あとはどの子(インスタンス)が使っているのかな〜?」と確認したところ、
arn:aws:cloudfront::969236854626:distribution/ABCDEFGHIJKLMN
のようなCloudFrontディストリビューションが利用していることがわかりました。
969236854626 の部分が自分のAWSアカウントIDになりますが、私が利用しているアカウントのIDは全然違います。

対策

「えっ…?」と思いましたが調べたらすぐに解決。
答えはこちらに書いてありました。

エッジ最適化のカスタムドメイン名を作成する方法 - Amazon API Gateway
 https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-edge-optimized-custom-domain-name.html





API Gatewayにカスタムドメインを割り当ててHTTPSを利用させたい場合に、AWSは特定のIDでCloudFrontディストリビューションを内部的に自動で作成し、そのディストリビューションに証明書を関連づけるのでした。

削除は以下の画面からカスタムドメインの管理画面を表示して行いました。
今回は削除というより新しい同一ドメインの証明書への切り替えですね。


「カスタムドメイン名」の部分ですね。

以上です。難易度的には初心者級というか、小ネタ的な記事かなと思いますが、重い腰をあげてブログを書くためのネタとしてはいいかなというのと、地味にまた忘れてテンパりそうだなという点もあって書いておくことにしました。

いやしかし、Skitchが一発でモザイク入れてくれたんですけど、これめっちゃ便利ですね。


コメント

このブログの人気の投稿

オライリーのDocker本を読んだり色々な記事を読んだりしたので自分なりにまとめる(Dockerfileについて)

一部のユーザだけ NET::ERR_CERT_REVOKED でサイトにアクセスできない

[#CentOS][#Apache] CentOS6 でApacheが起動できない