App Service でも internal な domain が使いたい
TL;DR
- 一時的に TXT レコードを書いて domain の検証を済ませて、あとは社内 DNS などで Private Endpoint 宛てに名前解決させるだけ
-
app.example.local
とかは無理、app.private.example.jp
みたいな TLD が外部にあるものしかできない - スクリーンショットはない、すまん、そんなに難しくはないと思う
はじめに
App Service に Private Endpoint を作成することが増えていますが、そのドメインも社内で使ってるやつにしたいというモチベーションは当然にあると思います。
ただ、以下の URL に書いてあるとおり、非対応です。
カスタム ドメインは、パブリック DNS ゾーンに存在する必要があります。プライベート DNS ゾーンは、内部ロード バランサー (ILB) App Service Environment (ASE) でのみサポートされています。
ここでは、例示 domain として example.jp
を利用します。
これに対して、private.example.jp
は外部公開されていない、社内限定の domain だとします。
そのうえで、とある App Service を app.private.example.jp
で利用したいとします。
domain の検証を何とか突破する
App Service に対して custom domain を追加する際には、domain の検証という手順を踏む必要があります。
これは domain の所有権を確認するためであり、たとえば app.example.jp
という FQDN は example.jp
という domain の示す組織が使うはずでしょうが、それを他人が使えないように、という意味を含んでいます。
domain の検証のためには、CNAME と TXT レコードを書く必要があるように見えますが、実際には TXT レコードだけでよいようです。
TXT レコードは Azure Portal などでみると asuid
で始まるものが書かれています。
asuid
の意味はよくわからないですが、とりあえず外部 DNS 側で asuid.app.private.example.jp
に対して 4AD2380F... のように書かれた カスタムドメイン検証 ID の TXT レコードを書きます。
asuid.app.private.example.jp
の登録が済み、少し経つと、Azure Portal 側で Custom domain が登録できるようになります。
Private IP で名前解決されるようにする
domain の検証が済んでしまえばあとは簡単です。
Private DNS zone を使ってもいいですし、AD DS サーバの DNS 機能に private.example.jp
のゾーンがあればそれに A レコードをひとつ追加するだけです。
A レコードの宛先は App Service に対して Private endpoint を作成したときに割り当てられた IP アドレスです。
もし気になるようであれば、外部 DNS 側に書いた asuid.app.private.example.jp
の TXT レコードは削除しても大丈夫です。
参考
- ほぼこれの焼き直し
Update log
- tag の修正とか - 2024/07/14
Discussion