[Azure][Network] Service EndpointとPrivate Endpoint

クラウド

PaaSはとっても便利・・だがね。

クラウドの一形態として、Platform as a Service (PaaS)ってのがある。よくお世話になるPaaSとして、私の場合はAzure Storageなんかが挙げられるのだけど、確かに便利。ただ若干セキュリティが怖い。

基本的にはPaaSってパブリックIPアドレスでやり取りをする。時々面白いことに、デフォルトのセキュリティ設定がぱっくり全解放で口を開けて待ってたりすることがある。これは結構まずいことだったりするんでIP制限をかけたりする訳なんだけど、それもまた面倒だったりする。

AzureにおけるPaaS保護の一形態

そこで、PaaSリソースのIPベースセキュリティを確保する一つの手段として、「閉域網にアクセス範囲を限定する」というものがあったりする。その手段として挙げられるのが

  • Service Endpoint
  • Private Endpoint

と言うものだったりする。

閉域でPaaSへアクセスする手段2つ(Private Link->正しくはPrivate Endpoint)

Service Endpoint

Service Endpointは昔からある機能で、VNET上にある隠しゲートウェイ(Azure Gateway)に対して、特定の種類のリソースが取り得るパブリックIPアドレス帯全域に対してVNET内のエンドポイントをネクストホップに設定する機能である。

赤枠で囲ったのがService Endpointを示す。

これにより、IaaS上のVMなどがPaaSへアクセスする際、AzureGatewayからデフォルトゲートウェイではなく、専用のIaaSエンドポイントを経由して通信するようになる。つまりはパブリックネットワーク越しではない、VNET内部を経由したアクセスに切り替わる。

Private Endpoint

これに対してPrivate Endpointは最近登場した手法で、特定のPaaSリソースとVNETで使用される仮想NICを関連付けるものである。これにより、PaaSリソースはIaaSリソースとしてVNET内のプライベートIPアドレスを持つリソースとしてアクセスすることが可能になる。

VNET内のプライベートIPアドレスを保持しているので、VNETルーティングの仕組みに完全に統合できるし、例えばオンプレミス環境からVPN越しにPaaSリソースへアクセスすると言ったことも可能になる。

現在Private Endpointは日本においては東西リージョンで実装が可能であり、私もStorageリソースに用いていたりする。

プライベートエンドポイントとNICは一対で構成される

ちなみに、Storageリソースの場合は、リソースの種類によって個別にリンクを構成する必要があるので注意なのと、サブネットは専用のものを立てる必要があり、かつサブネット委任が必要である点に気をつけませう。

Private Endpointの設定

Private Endpointの作成画面 1

まずはprivateEndpointリソースの配置情報を記述する必要があるのでこれを設定して次へをクリックする。

Private Endpointの作成画面 2

関連付けるリソースの指定を行う。2020年2月現在での対応リソースは上記の通りのようで、特にデータベース関連のリソースが多いですね。さすがにデータベースのクエリをインターネット上に流すのはアレだよなぁ・・・・と言う話なんだと思われます。

Azure Storageを関連付けた場合のターゲットサブリソース

私の場合はAzure Storageで使用してるので、これを選択すると上記のように、さらにどのリソースと連携するのかを選択する必要があります。私はblobとfileで利用しているのですが、それぞれに異なるリンクリソースが必要となるわけでして。

この後割愛しますが、ネットワークの設定を定義したら、リンク付けが行われてプライベートIP経由でアクセスできるようになります。

オンプレミスからのアクセス

オンプレミスからのアクセスの場合ですが、実は単純にUNCでIPアドレス指定をしてもうまくいかず、FQDN指定で名前を引く必要がありました。当方の環境では、内部キャッシュDNSに対して以下のレコードを追加して対応しています。

内部DNSに仕込んだゾーン

これで内部のサーバから、該当のFile Storageをドライブマウントすることが容易に行えました。

PaaSは便利です。だからこそ。

実際私もいろいろな用途でPaaSリソースを扱うことはあるんですが、ぶっちゃけ楽です。なによりOSを一切考慮しなくて良い、初っぱなから一定のチューニングが施されたものが準備されているわけで、それに伴う運用負担が軽減されているのは本当にありがたいと思います。

ただ、いくら暗号化していると言ってもやっぱり、例えばSQL Serverを1433/tcpでインターネット向けにぱっくり開いてお待ちしておりますと言うのはなかなかにホラーな話で、それに対する対応策として今回こうした機能が登場してきているんだろうなーと感じています。

一体そのデータは「どこから発信され、どこを経由して、どう着信しているのか?」というのはインフラエンジニアは特に気にするのではないでしょうか。そうした観点が、仮にPaaS全盛期に入ったとしても、一定の理解をすべきポイントな気が私はするのです。

タイトルとURLをコピーしました