Azure

Azure Private EndpointでNSG(Network Security Group)がGAした

はじめに

Azure Private Endpointでは以前からNSGをプレビューとして公開していました。今回はGAしたので改めて確認していきたいと思います。

Manage network policies for private endpoints - Azure Private Link | Microsoft Learn
Manage network policies for private endpoints - Azure Private Link | Microsoft Learn

Learn how to manage network policies for private endpoints.

docs.microsoft.com

有効化には privateEndpointNetworkPolicies Enabledに設定する手順が必要です。

また、様々な制限事項があるため事前に確認することをお勧めします。

What is a private endpoint? - Azure Private Link | Microsoft Learn
What is a private endpoint? - Azure Private Link | Microsoft Learn

In this article, you'll learn how to use the Private Endpoint feature of Azure Private Link.

docs.microsoft.com

前提

Private Endpointの設定が完了していること。

今回はサンプルとしてWebAppsに適用しています。

プライベートエンドポイントには無効化されますと書いていますが、privateEndpointNetworkPolicies 設定後に反映されるようになります。

問題なく内部からアクセスできていることが分かります。

$ dig webapp1289367.azurewebsites.net

; <<>> DiG 9.16.1-Ubuntu <<>> webapp1289367.azurewebsites.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52816
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;webapp1289367.azurewebsites.net. IN A

;; ANSWER SECTION:
webapp1289367.azurewebsites.net. 732 IN CNAME webapp1289367.privatelink.azurewebsites.net.
webapp1289367.privatelink.azurewebsites.net. 10 IN A 10.2.1.4

アクセスできるかを確認

$ curl -I https://webapp1289367.azurewebsites.net
HTTP/1.1 200 OK
Content-Length: 3269
Content-Type: text/html
Date: Mon, 22 Aug 2022 05:01:01 GMT
Server: Microsoft-IIS/10.0
Accept-Ranges: bytes
ETag: "4ca1444be1b5d81:0"
Last-Modified: Mon, 22 Aug 2022 04:40:24 GMT
Set-Cookie: ARRAffinity=4b3e9d7243043145f30ef214452b71163b8defc4e171d81090f8c904e96ebe98;Path=/;HttpOnly;Secure;Domain=webapp1289367.azurewebsites.net
Set-Cookie: ARRAffinitySameSite=4b3e9d7243043145f30ef214452b71163b8defc4e171d81090f8c904e96ebe98;Path=/;HttpOnly;SameSite=None;Secure;Domain=webapp1289367.azurewebsites.net
X-Powered-By: ASP.NET

privateEndpointNetworkPolicies

設定値を確認します。

az network vnet subnet show --resource-group MyResourceGroup --name MySubnet --vnet-name MyVNet

Disabledになっていることが分かります。これを

"privateEndpointNetworkPolicies": "Disabled"

設定を変更します。CLI利用 --disable-private-endpoint-network-policies false

az network vnet subnet show --resource-group MyResourceGroup --name MySubnet --vnet-name MyVNet --disable-private-endpoint-network-policies false

変更されたことを確認します。

"privateEndpointNetworkPolicies": "Enabled"

以上で設定は完了です。サブネットにNSGを適用します。

ちなみにポータルからも変更できます。サブネットを開き最下部に設定項目があります。

NSGの適用

サブネットに適用するNSGを作成します。試しにHTTPSを拒否してみます。

サブネットに適用します。

アクセスできるか確認してみます。

$ curl -m 10 -I https://webapp1289367.azurewebsites.net -vvvv
* Trying 10.2.1.4:443...
* TCP_NODELAY set
* Connection timed out after 10001 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 10001 milliseconds

 

アクセスを許可に変更してみます。

再度、アクセスが行われるか確認してみます。

$ curl -m 10 -I https://webapp1289367.azurewebsites.net -vvvv
* Trying 10.2.1.4:443...
* TCP_NODELAY set
* Connected to webapp1289367.azurewebsites.net (10.2.1.4) port 443 (#0)

接続できることを確認できます。

まとめ

Private EndpointでもNSGを設定することが可能になりました(GA)。これまでPrivate EndpointのNSGがプレビューだったのでかけることに躊躇していましたが、これからは問題なく適用できると思います。さらに細かなネットワークセキュリティ要件に適用することができるでしょう。

-Azure
-