GCPのクロスプロジェクト間でCertificate ManagerでDNS-01検証用レコードを発行するには
こんにちは、無能です。
あまり起こらないと言えば起きないのですが、AのプロジェクトとBのプロジェクトでワイルドカード証明書を発行する場合通常の FIXED_RECORD の場合というか一般的な場合は
_acme-challenge.example.com. 先の CNAME レコード先として登録する必要がありますがこの場合だとクロスプロジェクト間で同じレコード先を向いて競合してしまいます。
そこで、 gcloud コマンドでしか現状使えなさそうでWeb Console上だと見当たらなかったのでおそらく gcloud コマンドだけでしかというかAPI経由からの作成しか恐らくできないものだと思われますが
PER_PROJECT_RECORD のオプションを使うことでこの競合を回避できます。なかなかよく出来た仕組みだなあとおもうとこもありつつもはやGoogleの独自実装と言うか、これに依存した運用自体はあまり行うべきではないとおもいますが必要になるシーンは恐らくあります。
AWSのACMでも似たような仕組みがあるっぽいので、まあGCP - AWS間の移行とかならば問題にはならない気がします。
gcloud certificate-manager dns-authorizations create my-dns-01-auth \
--domain="*.example.com" \
--type=PER_PROJECT_RECORD \
--location=global \
--project=PROJECT_IDそうするとこのようなレコードを登録する必要となります。
_acme-challenge_abc123.example.com. CNAME ...
_acme-challenge_xyz123.example.com. CNAME ...ただ、この abc123 だか xyz123 はプロジェクトIDだったような記憶もありありますが・・・