📓

Azureのサービスエンドポイントを、ポリシーを付与して試す

に公開

はじめに

今回は、サービスエンドポイントがないサブネットに対し、ポリシーをつけたサービスエンドポイントを設けてみました。

概要

まず、以下の環境が前提にあります。この時点でストレージへの接続状況を確認します。

そのあと、ポリシー付きのサービスエンドポイントを設定して、接続状況を確認します。

参考

https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoint-policies?tabs=portal

前提環境作成

VNet作成

まずは仮想ネットワークを作成します。サブネットはデフォルトを使っていきます。
ポータルの仮想ネットワークから、作成をクリックします。

色々入力して、以下のように作成します。

ストレージを2つ作成

以下の設定を参考にストレージを2つ作成します。
https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoint-policies?tabs=portal#create-two-storage-accounts

作成したストレージは以下です。任意のネットワークからのアクセスを可としています。

両方のストレージにファイル共有も作成します。バックアップ無しのシンプルな構成を作ります。

この時点でテスト

この時点で確認用のVMを作ります。以下を参考に作ります。
https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoint-policies?tabs=portal#validate-access-restriction-to-azure-storage-accounts

接続確認するストレージのキーを確認します。key1の値とします。

接続確認するコマンドは、以下を参考にします。

https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoint-policies?tabs=portal#confirm-access-to-the-allowed-storage-account

以下のコマンドの(pasted from procedure above)をキーの値に、allowedaccountを作成したストレージアカウントに置き換えます。ダブルクォーテーションで囲んでおいてください。
またZドライブになっていますが、2つのストレージを別の文字に割り当ててもよいです。

## Enter the storage account key for the allowed storage account that you recorded earlier.
$storageAcctKey1 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey1 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\allowedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\allowedaccount.file.core.windows.net\file-share" -Credential $credential

起動しているVMで添付の画像のように、スクリプトを入力して実行します。

2つのストレージどちらでも以下のような出力が得られました。

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Z                                      FileSystem    \\deniedaccount6432.file.core.wi...                               

いったんVMを再起動しておくと、ネットワークドライブを解除されます。

サービスエンドポイントポリシーの作成

ストレージへのアクセスを制御するための、サービスエンドポイントポリシーを作成します。

以下の設定で作成しました。

サービスエンドポイントの作成:サブネットの設定変更

サービスエンドポイントを、作成したVNet内のサブネットを指定して設定します。

先ほど作成したサービスエンドポイントポリシーを割り当てながら作成します。

再度確認

先ほどのスクリプトを、再度実行します。

許可ストレージで試した結果です。

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Z                                      FileSystem    \\allowedaccount1482.file.core.w...                               

不許可ストレージで試した結果です

New-PSDrive : Access is denied
At C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows\1.1.22\Downloads\script14.ps1:7 char:1
+ New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount6432 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
    + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand

おわりに

今回は、Azureのストレージへのサービスエンドポイントを設ける際に、ポリシーを設定してみる内容を記事にしてみました。
既存の環境に、後から設定するケースを考えてみました。
この記事がどなたかのお役に立ちましたら幸いです。

Discussion