🌟

Azure プライベートエンドポイント経由でリソースを管理する

3 min read

2021/11/22追記
記事後半で、PrivateLinkを作成しプライべートDNSゾーンがVNETに関連付けされますが、それ以降だとbastionでのVMへの接続ができません。bastionサブネットでの名前解決に悪影響があるようです。
予めVMに接続しておけば、そのまま利用継続できますがご注意ください。

はじめに

2021年9月に、下記の記事が公開されて「プライベートエンドポイント経由でのリソース管理」ができるようになりました。

https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/management/create-private-link-access-portal

これまでは、SQL DatabaseやBLOB Storageといったデータレイヤへのアクセスなどでプライベートエンドポイントが使えましたが、リソースの管理という観点ではプライベートエンドポイントを利用することができず、インターネットに出る口が必要となっていました。

今回のアップデートで、リソース管理においてもプライベートエンドポイントを利用できるようになりましたので、よりセキュアに環境を管理することができます。
まだプレビューですが、面白そうなので試してみました。

なお、プライベートエンドポイント自体のメリットは、以下の記事にてまとめたことがありますので、こちらをご覧ください。

https://zenn.dev/tomot/articles/89d561c36bc52c

検証環境

別に記事で作成した、以下の環境からの実行を考えてみます。赤枠のWindows Serverから管理コマンドを叩けるように、プライベートエンドポイントを作成してみます。

構築

リソース管理のプライベートリンク

まず、ポータルからサービス名「リソース管理のプライベートリンク」を検索します。

ドキュメント上では「resource management」と検索していますが、出てこないので注意!

「リソース管理のプライベートリンクの作成」を押下します。

パラメータを設定します。「Scope」には、ルート管理グループしか指定できないので注意です。(現時点では、かも?ほかに選択できないのに、なぜ選択肢があるのか…)
もちろん、ルート管理グループに対するアクセス権も必要です。

プライベートエンドポイント

「Private Link センター」から「プライベートエンドポイントの作成」ボタンを押下します。

エンドポイントのパラメータを入れていきますが、キモになるのは「②リソース」タブで、
リソースの種類、リソースと先ほど作成したプライベートリンクを指定します

「③構成」タブでは、接続先のVNET・サブネットを指定します。また、名前解決のためのDNSの設定もこちらで実施します。

DNSはこんな形で出来上がります。
どうやら「management.privatelink.azure.com」が大事そうです。

出来上がり

これで出来上がった環境は以下の通りです。元にした構成から、プライベートリンクが追加されています。

WindowsのVMから名前解決を試してみると、元々は名前解決するとパブリックなIPでしたが、

プライベートリンクを構築後は、下記の通りプライベートIPアドレス@VMsubnetで名前解決されています。

※management.azure.comは、management.privatelink.azure.comのCNAMEになってるようですね!
※雑にpingて試してます…

稼働確認

ログイン

まず、ログイン確認です。以前の記事で試した通り、az loginが可能な状態になっています。

マネジメント系コマンド

いくつか試してみます。

az group list

リソースグループをリストで取得してみます。…もちろんできますね。

az vm start/deallocate

脇に作っておいて出番の無かったLinuxVMを起動停止させてみます。

※Typoはご愛敬!

念のため塞いだ状態では

PrivateLink構築前、AzureFWの「Management」のallowを削除してみた場合は以下の通り。もちろん、実行できません。

できたこと・分かったこと

上記の通り、management.azure.comと通信するような管理系コマンドが実行できるようになったことが確認できました。
ただし、現時点ではManagedIDを使っても最初のログインでAzureADとの通信が必須となっているため、100%プライベートにコマンドを実行することはできません。
とはいえ、多くのコマンドをプライベートエンドポイント向けに実行できますので、セキュリティに気を遣うような環境においては、検討に値するかと思います。

おわりに

今回は「リソース管理」をプライベートエンドポイント経由で実行する、というのを検証してみました。機能的には十分使えそうであるということが確認できました。
ただまだ、プレビューになっていますので、GAされるのが待ち遠しいですね。

Discussion

ログインするとコメントできます