ネットワークからプライベートかつ安全にデータとサービスに接続！　Azure Private Link

# Azure Private Link
# はじめに
この記事はマイクロソフトの[Announcing Azure Private Link](https://azure.microsoft.com/en-us/blog/announcing-azure-private-link/)の要約記事です。
先月、ネットワークから個人的かつ安全にデータとサービスに接続するためのAzure Private Linkのプレビュー版が発表されました。
その機能や役割について、この記事では紹介していきます。
始めにAzure Private Linkの主要なハイライトについてまとめ、その後詳細について述べます。

## Azure Private Linkの主要なハイライト
### オンプレミスからのプライベート接続
カスタマーのVNetのプライベートIPアドレスにPaaSリソースがマッピングされるため、Azure ExpressRouteのプライベートピアリングを介してアクセスできます。
これはデータがオンプレミスからAzureへ完全にプライベートな接続をすることができるということです。
また、企業のファイヤーウォールとルートテーブルの構成を簡素化して、プライベートIPアドレスのみアクセスできるようにすることができます。

### データ流出保護
Azure Private Linkの特徴的な点は他のクラウドサービスのようにサービス全体をマッピングするのではなく、特定のPaaSリソースをプライベートIPアドレスにマッピングすることです。
そのため、同じプライベートエンドポイントを使用してデータを別アカウントに流出させるなどの攻撃を防ぐことができます。
それによって、Azure Private Linkは組み込みデータの流出を防ぎます。

### シンプルなセットアップ
Azure Private Linkは最小限のネットワーク構成でセットアップすることができます。
具体的にはPaaSリソースがプライベートエンドポイントにマッピングされれば、ルートテーブルやAzure Network Security Groups (NSGs)で追加の構成を行わなくても利用できます。

### アドレス空間のオーバーラップ
従来、複数のVNetを接続する仕組みとしてVNetピアリングが広く利用されていました。 
VNetピアリングでは、VNetに重複しないアドレス空間が必要です。
その一方で、実際のユースケースではIPアドレス空間が重複するネットワークがよく見られます。
そこで、Azure Private LinkはIPアドレス空間が重複するVNetのアプリケーションをプライベートに接続する代替手法を提供しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174954/60b2d309-9b9c-92e8-960d-3faec78ec8e1.png)
(画像は[こちら](https://azure.microsoft.com/en-us/blog/announcing-azure-private-link/)から引用させていただきました）



# Azure Private Linkとは
Azure Private Linkは、Azureの利用者がAzure StorageやSQLなどのAzureサービス・MicrosoftパートナーサービスまたはAzure Virtual Network（VNet）からプライベートに独自のサービスを利用するための、安全かつ利用の増大に柔軟に対応できる拡張性を持つ通信方法です。
その仕組みはプロバイダーとコンシューマーが両者ともにazureにホストされています。
そして、接続が確立されると、プロバイダーとコンシューマーの間のすべてのデータはインターネットから分離され、Microsoft network上に残ります。
サービスに接続するためにはゲートウェイ、そしてIPアドレスを変換するためのNATもパブリックIPアドレスも必要ありません。

Azure Private LinkはカスタマーのプライベートVNet内にAzureサービスを提供します。
VNet上のリソースにアクセスするのと同じように、そのAzureサービスにプライベートIPアドレスを用いてアクセスすることができます。
これによってアクセスルールを非公開にすることができるので、ネットワーク構成が大幅に簡素になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174954/cd484857-208b-1460-8f3e-31bd47a0e147.png)
(画像は[こちら](https://azure.microsoft.com/en-us/blog/announcing-azure-private-link/)から引用させていただきました）

以下の3つのユースケースについてそれぞれ紹介します。

- Azure PaaSサービスへのプライベート接続
- 独自のサービスへのプライベート接続
- SaaSサービスへのプライベート接続

## Azure PaaSサービスへのプライベート接続
Azure Storage や Azure SQL Databaseのようなマルチテナントを共有するサービスはVnetの外側にあり、パブリックインターフェイス経由でのみ接続可能です。
今まで、こういった接続を保護するためには、Microsoft backbone network内のトラフィックを維持し、PaaSリソースをVNetのみに固定化することができるVNet service endpointsを利用する必要がありました。
しかしその手法では、PaaSエンドポイントはパブリックIPアドレスで提供されるため、オンプレミス環境からAzure ExpressRouteプライベートピアリングやVPNゲートウェイを介してアクセスすることができません。
その一方で、今回のAzure Private LinkではVNetでプライベートエンドポイントを作成し、それをPaaSリソース（Azure StorageのblobやSQLデータベースサーバなど）にマッピングすることができます。
加えて、そのPaaSリソースはVNetのプライベートIPアドレスを介して接続することができ、オンプレミス環境からAzure ExpressRouteプライベートピアリングやVPNゲートウェイを介してアクセスすることを可能にします。
また、これはパブリックIPアドレスを利用しないため、ネットワーク構成をシンプルにすることができます。


## 独自のサービスへのプライベート接続
今回発表されたAzure Private LinkはAzure PaaSサービスだけではなく、私たちがAzureのサービス提供者として独自に提供するサービスでも活用することができます。
今まで、Azureを利用している他のコンシューマーがこういった独自のサービスにアクセスするためには、IPアドレスといったパブリックインターフェースを介してサービスにアクセスできるように設定する必要がありました。
その際にVNetピアリングを使用して、消費者のVNetに接続してプライベートに接続することもできましたが、スケーラブルでないため、すぐにIPアドレスの競合が発生していました。

今回の発表で、Azure Standard Load Balancerの裏側にある独自のVNetで完全にプライベートに接続できるようになりました。
それにより、Azure Private Linkを有効化し、VNet・サブスクリプションが異なるコンシューマーやAzure Active Directoryのテナントで実行しているコンシューマーがただクリックして承認するだけで、私たちの独自サービスに接続することができるようになりました。
サービスコンシューマーとしてしなければならないことは独自のVNetにプライベートなエンドポイントを作成し、アクセスコントロールリスト (ACLs) をパブリックIPアドレス空間に開かず、完全にプライベートな接続が可能なAzure Private Link serviceを利用することです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174954/9264cc22-a4bf-5743-20f7-3243a7486831.png)
(画像は[こちら](https://azure.microsoft.com/en-us/blog/announcing-azure-private-link/)から引用させていただきました）

## SaaSサービスへのプライベート接続
マイクロソフトのパートナーによって、Azureを用いた様々なSaaSサービスが提供されています。
これらのSaaSサービスはパブリックエンドポイントを介して提供されているため、これらをコンシューマーが利用するためにはプライベートネットワークをパブリックインターネットに開放する必要がありました。
しかし、その一方で、プライベートネットワーク内でこれらのSaaSサービスを個人的に利用したいというコンシューマーの要望は根強くありました。

今回発表されたAzure Private Linkによって、プライベートネットワーク内でこれらのSaaSサービスを個人的に利用できるようになりました。
このAzure Private Linkを通じて、今後より多くのAzureを用いた様々なSaaSサービスが提供されるとマイクロソフトは考えています。



# おわりに
現状、 Azure Private Linkのpreview版はEast US, West US, West Central USでしかすべての機能は使えないようです([参照](https://docs.microsoft.com/en-us/azure/private-link/private-link-overview#availability))。  
2019/10/08時点でサポートしているサービスは以下のようです。

- Private Link services behind Standard Load Balancer
- Azure Storage
- Azure Data Lake Storage Gen2
- Azure SQL Database
- Azure SQL Data Warehouse

Azure Private Linkのドキュメントは[こちら](https://docs.microsoft.com/en-us/azure/private-link/)です。  
奥山奈々さん並びに佐藤匠さん、翻訳や内容の校正にご協力いただき、ありがとうございました。