はじめに
はい、皆さまこんにちは。
突然ですが私はプライベートな空間が必須派で、一人でいる時間がないと苦しくなるタイプです。
TwitterなどのSNSもまったく利用しない時間があったり。
四六時中コミュニケーション取っているタイプとは仲良くなれそうにありません。
さて、Azure上では多くのPaaSリソースが存在しているわけですが、当然ながらこれらは複数のユーザーからアクセスできるようになっています。
つまり、パブリックネットワーク上にあるわけです。
PaaSリソースもパブリックなアクセスだけだと疲れてしまう(?)ので、プライベートから接続できるようにしたいものですね。
はい、というわけで今回はプライベートリンクのお話です(雑な導入)
Azureプライベートリンクとは
仮想ネットワーク内のプライベートエンドポイント経由でAzure PaaSに接続できるサービス。
通常PaaSリソースはパブリックインターネットに公開されています。
パブリックインターネットに公開されているということは、セキュリティを気にしなくてはなりません。
インターネットに公開されていないのがやっぱり安心です。
また、仮想ネットワークからプライベートで接続できるということは、ExpressRouteを利用したオンプレミス側ネットワークからもプライベートで接続できるということです。
プライベートリンクを利用すれば、PaaSリソースをオンプレミスで利用しているのと同じように利用できます。うーん便利。
プライベートリンクは可用性ゾーンにまたがっているため、障害にも強いです。
プライベートエンドポイントでストレージアカウントに接続する
ではサンプルとして、ストレージアカウントをプライベートエンドポイントで接続するようにしてみましょう。
構成については、以下の通り。
![]() |
---|
※ストレージアカウントは、プライベートエンドポイント以外にも、パブリックエンドポイントで接続できるVnetを制限することができます。
(下記図②の方法)
しかしやっぱりパブリックエンドポイントなので、セキュリティに不安が残るのはしかたなし。
![]() |
---|
プライベートエンドポイントの設定は、作成したときでも、作ったあとでも設定することができます。
ここではストレージアカウント作成後の設定を行います。
構築
では具体的に構築をやってきましょう!
Vnet
![]() |
---|
先に適当なVnetとサブネットは作成しておきましょう。
プライベートリンク
![]() |
---|
ストレージアカウントの左側メニューから、「ネットワーク」、上部のメニューから「プライベートエンドポイント接続」を選択します。
「プライベートエンドポイント」を選択すると、画面が切り替わります。
![]() |
---|
適当に名前をつけ… |
![]() |
---|
今回はblobストレージ上の静的webサイトを対象にしたいので、webを対象とします。
![]() |
---|
一番最初に作成した仮想ネットワークとサブネットを選択します。
また、プライベートDNSゾーンと統合します。Azure内ではプライベートDNSゾーンを利用するのが簡単です。
書いてある通り、独自のDNSサーバを利用したり、仮想マシン上でhostsファイルを利用してDNSレコードを設定したりすることもできます。
![]() |
---|
あとは作成しればOKです。
VM
適当にパブリックIPを付与しないVMを作成しておきます。動作確認が目で分かりやすいようにWindowsServerを立てておきます。
![]() |
---|
Azure Bastion
これも適当にAzure Bastionを作成しておきます。
![]() |
---|
動作確認
はい、ここまでで準備ができました。動作確認をします。
わかりやすいように、ストレージアカウントの$webコンテナには、以下をアップロードしておきました。
test private endpoint
まずインターネットから普通に静的サイトへアクセスしてみます…
![]() |
---|
404になりますね。正しくブロックされています。
ではBastion経由でVMに接続し、VMから静的サイトに接続してみます…
![]() |
---|
はい、意図した通りのメッセージが表示されますね。
プライベートエンドポイント経由で接続できていることが確認できました。
終わりに
今回はプライベートリンクを利用したストレージアカウントの接続方法について書いてみました。
何かのお役に立てれば幸いです。
参考
Azure Storage のプライベート エンドポイントを使用する
https://docs.microsoft.com/ja-jp/azure/storage/common/storage-private-endpoints