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

#Azure Private Linkについて
###概要
https://docs.microsoft.com/ja-jp/azure/private-link/private-link-overview
よりセキュアにPaasサービスに接続できまっせというもの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/b7e0a952-82c4-d381-e75b-d8966ac4df0c.png)

###手順参考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サービスに割当てて各サービスに接続する仕組みのようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/21eaa676-fcaf-d6db-9b88-7a69aeede894.png)
##Storage Account
テスト対象のストレージを作成します。

##ストレージアカウント作成
ネットワーク設定部分にPrivate Linkの設定が表示されるようにUIが変更されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/e9dd405d-84c7-c67d-efe9-0ebb3eeda0f7.png)
###Private End Point(Storage)
ではプライベートエンドポイントを作成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/ca7a0fb5-ebdc-a85a-180e-b4a5e54df03f.png)


ストレージアカウントが作成できたら信頼されたAzure Serviceのチェックを外しておきます。
これでPrivate Linkの経路以外ではアクセスできないストレージになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/98e7059c-8d5a-334d-d94c-7893216560d8.png)
##SQL Server
作成方法は割愛。こちらはサーバ作るタイミングではネットワーク設定がないので。
Azure Serviceのチェックは外しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/e6e52e53-23c3-fb86-dbd2-3d58404dd5f6.png)


##Private Link Center
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/d4769a92-8929-e56a-c261-d2a9669cf76b.png)
Private End Pointの一覧が見れます。
ストレージアカウント用のエンドポイントが作成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/ee95bb94-b022-9c38-0da6-4ae7ad7a2e13.png)
SQL Serverのエンドポイントを作成しましょう。※画像は西部２にしてますが、米国西部です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/2899cca1-1673-727b-7616-de59515eda08.png)

なるほど、ここで他サブスクリプションが選べるのかな
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/8949a4dd-1ab9-ba8b-cb5a-f86df3f378e7.png)

デプロイ先の仮想ネットワークとDNSゾーンの確認をして作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/4f9f1a78-9331-f4c5-6a43-ecd4263e2b6e.png)

リソースの状況
エンドポイントを作成すると、エンドポイントを作成したリソース用のNICが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/312a192a-0dea-2afe-dec6-4835d80956d2.png)
内部IPが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/c3e2e411-cd38-c64a-b257-925b4759e693.png)


##Network Security Group
ちなみにsubnetの構成は以下。
bastion Subnet・・・踏み台用。WindowsVMをデプロイします。自環境からのRDPのみを許可してます。
default Subnet・・・Private End Pointをデプロイしてます。既定の設定でInt経由のアクセスを不許可です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/e1041fd2-36e5-62a1-ba79-23f98e16156d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/00e6e4fc-333d-fecc-42cc-bed4778142d6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/0e1aeec7-f185-e0ed-8637-6397c378efd2.png)
##Virtual Machine
bastionサブネットにデプロイ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/8187d22d-a0cf-4595-2654-9dd58d60c4ae.png)

#接続確認
##IP確認
VMから接続してみます。
まずはIPを確認してみましょう。エンドポイントはDNSゾーンから確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/97c748ed-bcb9-9bfd-a484-f9ca21ae0d56.png)
####SQL Server
```powershell
nslookup <SQL Server名>.privatelink.database.windows.net
```
####ストレージアカウント
```powershell
nslookup <ストレージアカウント名>.blob.core.windows.net/
```
見つかりました。Private IPで見えてますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/3566bf32-7340-1e70-7b08-c928e1d4b237.png)

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はどこからもアクセスさせない設定です。サービスエンドポイントも使用しないので、ネットワーク選択もしてません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/64474bbe-99d0-2d08-9cc2-f83e37f88fe3.png)

ローカルPCから接続不可です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/4208436c-08ba-d6ed-fbbe-b3df711046fe.png)

VMからつながりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/51bae6f9-e014-1fab-ef9c-fd3ddea1183c.png)


###Storage Account接続確認
再掲ですが、どこからもアクセスさせない設定です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/98e7059c-8d5a-334d-d94c-7893216560d8.png)

ローカルPCから接続不可です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/dd6502ab-0106-e72d-4f9c-a5eb169ba42f.png)

ドキュメントにhost設定が必要の旨があったので編集しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/394ebec9-afee-22d7-89c5-99274fea6467.png)


VMからつながりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281819/6150a296-aa36-e1b2-d579-1db87ea73e70.png)

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

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