Azure Private Linkが出たのでStorageとSQLへの接続を試してみる


Azure Private Linkについて

概要

https://docs.microsoft.com/ja-jp/azure/private-link/private-link-overview
よりセキュアにPaasサービスに接続できまっせというもの

手順参考url

プライベートエンドポイントを作成する
https://docs.microsoft.com/ja-jp/azure/private-link/create-private-endpoint-portal
非公開でストレージに接続する
https://docs.microsoft.com/ja-jp/azure/private-link/create-private-endpoint-storage-portal

環境構成

Virtual Network

仮想ネットワークを作成しておきます
Private Linkはこのネットワーク内のPrivate IPをPaaSサービスに割当てて各サービスに接続する仕組みのようです。

Storage Account

テスト対象のストレージを作成します。

ストレージアカウント作成

ネットワーク設定部分にPrivate Linkの設定が表示されるようにUIが変更されています。

Private End Point(Storage)

ではプライベートエンドポイントを作成します

ストレージアカウントが作成できたら信頼されたAzure Serviceのチェックを外しておきます。
これでPrivate Linkの経路以外ではアクセスできないストレージになりました。

SQL Server

作成方法は割愛。こちらはサーバ作るタイミングではネットワーク設定がないので。
Azure Serviceのチェックは外しておきます。

Private Link Center


Private End Pointの一覧が見れます。
ストレージアカウント用のエンドポイントが作成されています。

SQL Serverのエンドポイントを作成しましょう。※画像は西部2にしてますが、米国西部です。

なるほど、ここで他サブスクリプションが選べるのかな

デプロイ先の仮想ネットワークとDNSゾーンの確認をして作成

リソースの状況
エンドポイントを作成すると、エンドポイントを作成したリソース用のNICが作成されます。

内部IPが確認できます。

Network Security Group

ちなみにsubnetの構成は以下。
bastion Subnet・・・踏み台用。WindowsVMをデプロイします。自環境からのRDPのみを許可してます。
default Subnet・・・Private End Pointをデプロイしてます。既定の設定でInt経由のアクセスを不許可です。


Virtual Machine

bastionサブネットにデプロイ

接続確認

IP確認

VMから接続してみます。
まずはIPを確認してみましょう。エンドポイントはDNSゾーンから確認できます。

SQL Server

nslookup <SQL Server名>.privatelink.database.windows.net

ストレージアカウント

nslookup <ストレージアカウント名>.blob.core.windows.net/

見つかりました。Private IPで見えてますね

168.63.129.16はMicrosoftの管理するPublicIPです。
https://docs.microsoft.com/ja-jp/azure/virtual-network/what-is-ip-address-168-63-129-16

では実際に接続をしてみます。

SQL Server接続確認

SQL Server Management Studioから接続してみます。
SQL Server のFWはどこからもアクセスさせない設定です。サービスエンドポイントも使用しないので、ネットワーク選択もしてません。

ローカルPCから接続不可です。

VMからつながりました

Storage Account接続確認

再掲ですが、どこからもアクセスさせない設定です。

ローカルPCから接続不可です。

ドキュメントにhost設定が必要の旨があったので編集しておきます。

VMからつながりました

所感

かなり簡単に作成ができました。
今期のAzureはセキュリティ部分のかゆいところが改善されていきそう。
既存のサービスエンドポイントとの使い分けや、ロードバランサが使えるPrivate Link Serviceの活用は要勉強ですね

追記

2019/10/24
DataFactoryからSelf-hosted iRを使ってStorageAccountのPrivate Endpointにつなごうとしたところ、自動入力される部分が微妙そうで、Endpointのsuffix変更やほかにもちょっと検証が必要そうでした。
検証でき次第記事化(したい)