Azure File Syncは2つのAzureリソースを使用し、それぞれ独自のネットワークエンドポイントを持っています。ストレージアカウント(Azureファイル共有を保持)とStorage Sync Service(同期、サーバー登録、同期グループを調整)です。 両方のリソースはデフォルトでパブリックエンドポイントを使用しています。
Azure File SyncエージェントはHTTPS(ポート443)を通じて両方のリソースと通信します。 VPNやExpressRouteなしでインターネット経由でAzureに接続するサーバーなら、パブリックエンドポイントを使え、設定は不要です。 しかし、多くのAzure File Syncの顧客はプライベートエンドポイントの設定を望んでいます。
プライベートエンドポイントが必要かどうかは以下の表を参考にしてください。 必要なら両方のリソースにプライベートエンドポイントを作成しましょう。
| ~する必要がある |
Use |
| VPNやExpressRouteなしでインターネット経由でAzureに接続するサーバーを同期させる |
パブリックエンドポイント(設定不要) |
| すべての同期トラフィックをExpressRouteまたはサイト間VPN接続でルーティングします |
両方のリソースに対するプライベートエンドポイント |
| 公共インターネット上のデータ公開を禁止するコンプライアンス要件を満たす |
両方のリソースに対するプライベートエンドポイント |
| セキュリティ強化策としてパブリックエンドポイントを無効にする |
まず両方のリソースにプライベートエンドポイントを設置し、その後アクセスを制限します |
| ゼロトラストネットワークアクセスの実装 |
両方のリソースに対するプライベートエンドポイント |
より広いネットワークの概念については、Azure File Sync Networkingの考慮事項を参照してください。 Azure File SyncなしでAzureファイル共有に直接アクセスするためのエンドポイントを設定するには、「Azure Filesネットワークエンドポイントの設定」をご覧ください。
前提条件
この記事では、以下のことを前提としています。
追加として:
プライベート エンドポイントを作成する
Azure リソースのプライベート エンドポイントを作成すると、次のリソースがデプロイされます。
| 展開リソース |
Description |
あなたの活動内容 |
|
プライベート エンドポイント |
ストレージアカウントやストレージ同期サービスを仮想ネットワーク内のネットワークインターフェースに接続するAzureリソースです |
ストレージアカウントのプライベートエンドポイント作成とストレージ同期サービスのプライベートエンドポイント作成で、各リソースごとに1つずつ作成してください |
|
ネットワーク インターフェイス (NIC) |
サブネット内のプライベートエンドポイントのプライベートIPアドレスを保持します |
プライベートエンドポイントで自動的に作成;追加の行動は必要ありません |
|
プライベート DNS ゾーン |
リソースの公開ホスト名をプライベートエンドポイントのIPアドレスにマッピングするため、クライアントは接続文字列を変えずにプライベートエンドポイントに解決します |
存在しなければ自動的に作成されます。手動のDNS設定を避けることを推奨します |
注意
この記事では、AzureパブリックリージョンのDNSサフィックスを使用しています。ストレージアカウントにはcore.windows.net、ストレージ同期サービスにはafs.azure.netです。 この名称はAzure 米国政府機関クラウドのようなAzure Sovereignクラウドにも適用されます。 環境に適したサフィックスに置き換えます。
ストレージ アカウントのプライベート エンドポイントを作成する
プライベート エンドポイントを作成するストレージ アカウントに移動します。 サービス メニューの [セキュリティとネットワーク] で、[ネットワーク]、[プライベート エンドポイント接続]、および [+ プライベート エンドポイント] の順に選択して新しいプライベート エンドポイントを作成します。
生成されたウィザードには、完了するページが複数あります。
[基本] ブレードで、プライベート エンドポイントの目的のサブスクリプション、リソース グループ、名前、ネットワーク インターフェイス名、およびリージョンを選択します。 これらには任意の内容を指定でき、ストレージ アカウントと一致している必要はありませんが、プライベート エンドポイントは、そのプライベート エンドポイントを作成しようとしている仮想ネットワークと同じリージョン内に作成する必要があります。 その後、[次へ: リソース] を選択します。
[リソース] ブレードで、ターゲット サブリソースのファイルを選択します。
[次へ: Virtual Network] を選択します。
[Virtual Network] ブレードでは、プライベート エンドポイントを追加する特定の仮想ネットワークとサブネットを選択できます。 新しいプライベート エンドポイントの動的または静的 IP アドレスの割り当てを選択します。 静的を選択した場合は、名前とプライベート IP アドレスも指定する必要があります。 必要に応じて、アプリケーション セキュリティ グループを指定することもできます。 完了したら、[次: DNS] を選びます。
DNS ブレードには、プライベート エンドポイントとプライベート DNS ゾーンを統合するための情報が含まれています。 サブスクリプションとリソース グループが正しいことを確認し、[次へ: タグ] を選択します。
必要に応じて、タグを適用してリソースを分類できます。たとえば、[名前] の [環境] と [値] の [テスト] をすべてのテスト リソースに適用します。 必要に応じて名前と値のペアを入力し、[次へ: レビュー + 作成] を選択します。
[作成] を選択してプライベート エンドポイントを作成します。
仮想ネットワーク内にVMがある場合、または「Azure FilesのDNS転送の設定」で説明されているようにDNS転送を設定している場合、PowerShell、コマンドライン、またはターミナル(Windows、Linux、macOSで動作)から以下のコマンドを実行して、プライベートエンドポイントが正しく設定されているかテストできます。
<storage-account-name>をストレージアカウント名に置き換えてください:
nslookup <storage-account-name>.file.core.windows.net
すべてが正常に動作する場合は、次のような出力が表示されます。192.168.0.5 は、仮想ネットワーク内のプライベート エンドポイントのプライベート IP アドレスです (Windows の場合に表示される出力)。
Server: UnKnown
Address: 10.2.4.4
Non-authoritative answer:
Name: storageaccount.privatelink.file.core.windows.net
Address: 192.168.0.5
Aliases: storageaccount.file.core.windows.net
ストレージ アカウント用のプライベート エンドポイントを作成するには、まず、プライベート エンドポイントを追加するストレージ アカウントと仮想ネットワーク サブネットへの参照を取得する必要があります。
<storage-account-resource-group-name>、<storage-account-name>、<vnet-resource-group-name>、<vnet-name>、<vnet-subnet-name> を、次のように置き換えます。
$storageAccountResourceGroupName = "<storage-account-resource-group-name>"
$storageAccountName = "<storage-account-name>"
$virtualNetworkResourceGroupName = "<vnet-resource-group-name>"
$virtualNetworkName = "<vnet-name>"
$subnetName = "<vnet-subnet-name>"
# Get storage account reference, and throw error if it doesn't exist
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $storageAccountResourceGroupName `
-Name $storageAccountName `
-ErrorAction SilentlyContinue
if ($null -eq $storageAccount) {
$errorMessage = "Storage account $storageAccountName not found "
$errorMessage += "in resource group $storageAccountResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
# Get virtual network reference, and throw error if it doesn't exist
$virtualNetwork = Get-AzVirtualNetwork `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $virtualNetworkName `
-ErrorAction SilentlyContinue
if ($null -eq $virtualNetwork) {
$errorMessage = "Virtual network $virtualNetworkName not found "
$errorMessage += "in resource group $virtualNetworkResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
# Get reference to virtual network subnet, and throw error if it doesn't exist
$subnet = $virtualNetwork | `
Select-Object -ExpandProperty Subnets | `
Where-Object { $_.Name -eq $subnetName }
if ($null -eq $subnet) {
Write-Error `
-Message "Subnet $subnetName not found in virtual network $virtualNetworkName." `
-ErrorAction Stop
}
プライベート エンドポイントを作成するには、ストレージ アカウントに対するプライベート リンク サービス接続を作成する必要があります。 プライベート リンク サービス接続は、プライベート エンドポイントの作成に対する入力です。
# Disable private endpoint network policies
$subnet.PrivateEndpointNetworkPolicies = "Disabled"
$virtualNetwork = $virtualNetwork | `
Set-AzVirtualNetwork -ErrorAction Stop
# Create a private link service connection to the storage account.
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
-Name "$storageAccountName-Connection" `
-PrivateLinkServiceId $storageAccount.Id `
-GroupId "file" `
-ErrorAction Stop
# Create a new private endpoint.
$privateEndpoint = New-AzPrivateEndpoint `
-ResourceGroupName $storageAccountResourceGroupName `
-Name "$storageAccountName-PrivateEndpoint" `
-Location $virtualNetwork.Location `
-Subnet $subnet `
-PrivateLinkServiceConnection $privateEndpointConnection `
-ErrorAction Stop
Azure プライベート DNS ゾーンを作成すると、ストレージ アカウントの元の名前 (storageaccount.file.core.windows.net など) を仮想ネットワーク内のプライベート IP アドレスに解決できます。 プライベート エンドポイントの作成の観点からは省略可能ですが、AD ユーザー プリンシパルを使用して直接 Azure ファイル共有をマウントする、または REST API 経由でアクセスする場合は、明示的に必要になります。
# Get the desired storage account suffix (core.windows.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
$storageAccountSuffix = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty StorageEndpointSuffix
# For public cloud, this will generate the following DNS suffix:
# privatelink.file.core.windows.net.
$dnsZoneName = "privatelink.file.$storageAccountSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
$dnsZone = Get-AzPrivateDnsZone | `
Where-Object { $_.Name -eq $dnsZoneName } | `
Where-Object {
$privateDnsLink = Get-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $_.ResourceGroupName `
-ZoneName $_.Name `
-ErrorAction SilentlyContinue
$privateDnsLink.VirtualNetworkId -eq $virtualNetwork.Id
}
if ($null -eq $dnsZone) {
# No matching DNS zone attached to virtual network, so create new one.
$dnsZone = New-AzPrivateDnsZone `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsZoneName `
-ErrorAction Stop
$privateDnsLink = New-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $virtualNetworkResourceGroupName `
-ZoneName $dnsZoneName `
-Name "$virtualNetworkName-DnsLink" `
-VirtualNetworkId $virtualNetwork.Id `
-ErrorAction Stop
}
これで、プライベート DNS ゾーンへの参照を用意できたので、ストレージ アカウントの A レコードを作成する必要があります。
$privateEndpointIP = $privateEndpoint | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object @{
Name = "NetworkInterfaces";
Expression = { Get-AzNetworkInterface -ResourceId $_.Id }
} | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty IpConfigurations | `
Select-Object -ExpandProperty PrivateIpAddress
$privateDnsRecordConfig = New-AzPrivateDnsRecordConfig `
-IPv4Address $privateEndpointIP
New-AzPrivateDnsRecordSet `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $storageAccountName `
-RecordType A `
-ZoneName $dnsZoneName `
-Ttl 600 `
-PrivateDnsRecords $privateDnsRecordConfig `
-ErrorAction Stop | `
Out-Null
仮想ネットワーク内にVMがある場合、または「Azure FilesのDNS転送の設定」で説明されているように設定している場合、以下のコマンドを使ってプライベートエンドポイントが正しく設定されているかテストできます:
$storageAccountHostName = [System.Uri]::new($storageAccount.PrimaryEndpoints.file) | `
Select-Object -ExpandProperty Host
Resolve-DnsName -Name $storageAccountHostName
すべてが正常に動作する場合は、次のような出力が表示されます。192.168.0.5 は、仮想ネットワーク内のプライベート エンドポイントのプライベート IP アドレスです。
Name Type TTL Section NameHost
---- ---- --- ------- --------
storageaccount.file.core.windows CNAME 60 Answer storageaccount.privatelink.file.core.windows.net
.net
Name : storageaccount.privatelink.file.core.windows.net
QueryType : A
TTL : 600
Section : Answer
IP4Address : 192.168.0.5
ストレージ アカウント用のプライベート エンドポイントを作成するには、まず、プライベート エンドポイントを追加するストレージ アカウントと仮想ネットワーク サブネットへの参照を取得する必要があります。
<storage-account-resource-group-name>、<storage-account-name>、<vnet-resource-group-name>、<vnet-name>、<vnet-subnet-name> を、次のように置き換えます。
storageAccountResourceGroupName="<storage-account-resource-group-name>"
storageAccountName="<storage-account-name>"
virtualNetworkResourceGroupName="<vnet-resource-group-name>"
virtualNetworkName="<vnet-name>"
subnetName="<vnet-subnet-name>"
# Get storage account ID
storageAccount=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "id" | \
tr -d '"')
# Get virtual network ID
virtualNetwork=$(az network vnet show \
--resource-group $virtualNetworkResourceGroupName \
--name $virtualNetworkName \
--query "id" | \
tr -d '"')
# Get subnet ID
subnet=$(az network vnet subnet show \
--resource-group $virtualNetworkResourceGroupName \
--vnet-name $virtualNetworkName \
--name $subnetName \
--query "id" | \
tr -d '"')
プライベート エンドポイントを作成するには、まず、サブネットのプライベート エンドポイント ネットワーク ポリシーが無効に設定されていることを確認する必要があります。 次に、az network private-endpoint create コマンドを使用して、プライベート エンドポイントを作成できます。
# Disable private endpoint network policies
az network vnet subnet update \
--ids $subnet \
--disable-private-endpoint-network-policies \
--output none
# Get virtual network location
region=$(az network vnet show \
--ids $virtualNetwork \
--query "location" | \
tr -d '"')
# Create a private endpoint
privateEndpoint=$(az network private-endpoint create \
--resource-group $storageAccountResourceGroupName \
--name "$storageAccountName-PrivateEndpoint" \
--location $region \
--subnet $subnet \
--private-connection-resource-id $storageAccount \
--group-id "file" \
--connection-name "$storageAccountName-Connection" \
--query "id" | \
tr -d '"')
Azure プライベート DNS ゾーンを作成すると、ストレージ アカウントの元の名前 (storageaccount.file.core.windows.net など) を仮想ネットワーク内のプライベート IP アドレスに解決できます。 プライベート エンドポイントの作成の観点からは省略可能ですが、AD ユーザー プリンシパルを使用して Azure ファイル共有をマウントしたり、REST API 経由でアクセスしたりする場合は、明示的に必要になります。
# Get the desired storage account suffix (core.windows.net for public cloud).
# This is done like this so this script will seamlessly work for non-public Azure.
storageAccountSuffix=$(az cloud show \
--query "suffixes.storageEndpoint" | \
tr -d '"')
# For public cloud, this will generate the following DNS suffix:
# privatelink.file.core.windows.net.
dnsZoneName="privatelink.file.$storageAccountSuffix"
# Find a DNS zone matching desired name attached to this virtual network.
possibleDnsZones=""
possibleDnsZones=$(az network private-dns zone list \
--query "[?name == '$dnsZoneName'].id" \
--output tsv)
dnsZone=""
possibleDnsZone=""
for possibleDnsZone in $possibleDnsZones
do
possibleResourceGroupName=$(az resource show \
--ids $possibleDnsZone \
--query "resourceGroup" | \
tr -d '"')
link=$(az network private-dns link vnet list \
--resource-group $possibleResourceGroupName \
--zone-name $dnsZoneName \
--query "[?virtualNetwork.id == '$virtualNetwork'].id" \
--output tsv)
if [ -z $link ]
then
echo "1" > /dev/null
else
dnsZoneResourceGroup=$possibleResourceGroupName
dnsZone=$possibleDnsZone
break
fi
done
if [ -z $dnsZone ]
then
# No matching DNS zone attached to virtual network, so create a new one
dnsZone=$(az network private-dns zone create \
--resource-group $virtualNetworkResourceGroupName \
--name $dnsZoneName \
--query "id" | \
tr -d '"')
az network private-dns link vnet create \
--resource-group $virtualNetworkResourceGroupName \
--zone-name $dnsZoneName \
--name "$virtualNetworkName-DnsLink" \
--virtual-network $virtualNetwork \
--registration-enabled false \
--output none
dnsZoneResourceGroup=$virtualNetworkResourceGroupName
fi
これで、プライベート DNS ゾーンへの参照を用意できたので、ストレージ アカウントの A レコードを作成する必要があります。
privateEndpointNIC=$(az network private-endpoint show \
--ids $privateEndpoint \
--query "networkInterfaces[0].id" | \
tr -d '"')
privateEndpointIP=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[0].privateIPAddress" | \
tr -d '"')
az network private-dns record-set a create \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--name $storageAccountName \
--output none
az network private-dns record-set a add-record \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--record-set-name $storageAccountName \
--ipv4-address $privateEndpointIP \
--output none
仮想ネットワーク内にVMがある場合、または「Azure FilesのDNS転送の設定」で説明されているように設定している場合、以下のコマンドを使ってプライベートエンドポイントが正しく設定されているかテストできます:
httpEndpoint=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "primaryEndpoints.file" | \
tr -d '"')
hostName=$(echo $httpEndpoint | cut -c7-$(expr length $httpEndpoint) | tr -d "/")
nslookup $hostName
すべてが正常に動作する場合は、次のような出力が表示されます。192.168.0.5 は、仮想ネットワーク内のプライベート エンドポイントのプライベート IP アドレスです。
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
storageaccount.file.core.windows.net canonical name = storageaccount.privatelink.file.core.windows.net.
Name: storageaccount.privatelink.file.core.windows.net
Address: 192.168.0.5
ストレージ同期サービス プライベート エンドポイントを作成する
Azureポータルの検索バー上部に「Private Link」と入力すると、Private Link Centerにアクセスしてください。 Private Link Centerの目次でPrivate endpointsを選択し、+Add を選択して新しいプライベートエンドポイントを作成します。
生成されたウィザードには、完了するページが複数あります。
「基本」タブで、プライベートエンドポイントのリソースグループ、名前、リージョンを選択します。 これらの値は任意の有効な値であってよい。 ストレージ同期サービスと一致する必要はありませんが、選択した仮想ネットワークと同じリージョン内でプライベートエンドポイントを作成する必要があります。
[リソース] タブで [Connect to an Azure resource in my directory](マイ ディレクトリ内の Azure リソースに接続する) を選択します。
リソースタイプの中でMicrosoftを選択します。StorageSync/storageSyncServices。
設定タブでは、プライベートエンドポイントを追加したい特定の仮想ネットワークとサブネットを選択できます。 ストレージアカウントで使ったのと同じ仮想ネットワークを選択してください。
設定タブにはプライベートDNSゾーンの作成および更新に関する情報も含まれています。
[確認と作成] を選び、プライベート エンドポイントを作成します。
次の PowerShell コマンドを実行して、ご使用のプライベート エンドポイントが正しく設定されていることをテストできます。
$privateEndpointResourceGroupName = "<your-private-endpoint-resource-group>"
$privateEndpointName = "<your-private-endpoint-name>"
Get-AzPrivateEndpoint `
-ResourceGroupName $privateEndpointResourceGroupName `
-Name $privateEndpointName `
-ErrorAction Stop | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty Id | `
ForEach-Object { Get-AzNetworkInterface -ResourceId $_ } | `
Select-Object -ExpandProperty IpConfigurations | `
Select-Object -ExpandProperty PrivateLinkConnectionProperties | `
Select-Object -ExpandProperty Fqdns | `
ForEach-Object { Resolve-DnsName -Name $_ } | `
Format-List
すべてが正常に動作する場合は、次のような出力が表示されます。192.168.1.4、192.168.1.5、192.168.1.6、192.168.1.7 は、プライベート エンドポイントに割り当てられているプライベート IP アドレスです。
Name : mysssmanagement.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : mysssmanagement.westus2.privatelink.afs.azure.net
Name : mysssmanagement.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.4
Name : myssssyncp.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : myssssyncp.westus2.privatelink.afs.azure.net
Name : myssssyncp.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.5
Name : myssssyncs.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : myssssyncs.westus2.privatelink.afs.azure.net
Name : myssssyncs.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.6
Name : mysssmonitoring.westus2.afs.azure.net
Type : CNAME
TTL : 60
Section : Answer
NameHost : mysssmonitoring.westus2.privatelink.afs.azure.net
Name : mysssmonitoring.westus2.privatelink.afs.azure.net
QueryType : A
TTL : 60
Section : Answer
IP4Address : 192.168.1.7
ストレージ同期サービスのプライベートエンドポイントを作成するには、まずストレージ同期サービスの参照を取得します。
<storage-sync-service-resource-group> および <storage-sync-service> を実際の環境の適切な値に置き換えてください。 以下のPowerShellコマンドは、すでに仮想ネットワーク情報を入力していると仮定しています。
$storageSyncServiceResourceGroupName = "<storage-sync-service-resource-group>"
$storageSyncServiceName = "<storage-sync-service>"
$storageSyncService = Get-AzStorageSyncService `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name $storageSyncServiceName `
-ErrorAction SilentlyContinue
if ($null -eq $storageSyncService) {
$errorMessage = "Storage Sync Service $storageSyncServiceName not found "
$errorMessage += "in resource group $storageSyncServiceResourceGroupName."
Write-Error -Message $errorMessage -ErrorAction Stop
}
プライベート エンドポイントを作成するには、ストレージ同期サービスに対するプライベート リンク サービス接続を作成する必要があります。 プライベート リンク接続は、プライベート エンドポイントの作成に対する入力です。
# Disable private endpoint network policies
$subnet.PrivateEndpointNetworkPolicies = "Disabled"
$virtualNetwork = $virtualNetwork | `
Set-AzVirtualNetwork -ErrorAction Stop
# Create a private link service connection to the storage account
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
-Name "$storageSyncServiceName-Connection" `
-PrivateLinkServiceId $storageSyncService.ResourceId `
-GroupId "Afs" `
-ErrorAction Stop
# Create a new private endpoint
$privateEndpoint = New-AzPrivateEndpoint `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name "$storageSyncServiceName-PrivateEndpoint" `
-Location $virtualNetwork.Location `
-Subnet $subnet `
-PrivateLinkServiceConnection $privateEndpointConnection `
-ErrorAction Stop
Azure プライベート DNS ゾーンを作成すると、ストレージ同期サービスのホスト名 (mysssmanagement.westus2.afs.azure.net など) を仮想ネットワーク内のストレージ同期サービスの正しいプライベート IP に解決できます。 プライベート エンドポイントの作成の観点からは省略可能ですが、Azure File Sync エージェントがストレージ同期サービスにアクセスする場合は、明示的に必要になります。
# Get the desired Storage Sync Service suffix (afs.azure.net for public cloud)
# This is done like this so this script will seamlessly work for non-public Azure
$azureEnvironment = Get-AzContext | `
Select-Object -ExpandProperty Environment | `
Select-Object -ExpandProperty Name
switch($azureEnvironment) {
"AzureCloud" {
$storageSyncSuffix = "afs.azure.net"
}
"AzureUSGovernment" {
$storageSyncSuffix = "afs.azure.us"
}
"AzureChinaCloud" {
$storageSyncSuffix = "afs.azure.cn"
}
default {
Write-Error
-Message "The Azure environment $_ is not currently supported by Azure File Sync." `
-ErrorAction Stop
}
}
# For public cloud, this will generate the following DNS suffix:
# privatelink.afs.azure.net
$dnsZoneName = "privatelink.$storageSyncSuffix"
# Find a DNS zone matching desired name attached to this virtual network
$dnsZone = Get-AzPrivateDnsZone | `
Where-Object { $_.Name -eq $dnsZoneName } | `
Where-Object {
$privateDnsLink = Get-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $_.ResourceGroupName `
-ZoneName $_.Name `
-ErrorAction SilentlyContinue
$privateDnsLink.VirtualNetworkId -eq $virtualNetwork.Id
}
if ($null -eq $dnsZone) {
# No matching DNS zone attached to virtual network, so create a new one
$dnsZone = New-AzPrivateDnsZone `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsZoneName `
-ErrorAction Stop
$privateDnsLink = New-AzPrivateDnsVirtualNetworkLink `
-ResourceGroupName $virtualNetworkResourceGroupName `
-ZoneName $dnsZoneName `
-Name "$virtualNetworkName-DnsLink" `
-VirtualNetworkId $virtualNetwork.Id `
-ErrorAction Stop
}
これで、プライベート DNS ゾーンへの参照を用意できたので、ご使用のストレージ同期サービスの A レコードを作成する必要があります。
$privateEndpointIpFqdnMappings = $privateEndpoint | `
Select-Object -ExpandProperty NetworkInterfaces | `
Select-Object -ExpandProperty Id | `
ForEach-Object { Get-AzNetworkInterface -ResourceId $_ } | `
Select-Object -ExpandProperty IpConfigurations | `
ForEach-Object {
$privateIpAddress = $_.PrivateIpAddress;
$_ | `
Select-Object -ExpandProperty PrivateLinkConnectionProperties | `
Select-Object -ExpandProperty Fqdns | `
Select-Object `
@{
Name = "PrivateIpAddress";
Expression = { $privateIpAddress }
}, `
@{
Name = "FQDN";
Expression = { $_ }
}
}
foreach($ipFqdn in $privateEndpointIpFqdnMappings) {
$privateDnsRecordConfig = New-AzPrivateDnsRecordConfig `
-IPv4Address $ipFqdn.PrivateIpAddress
$dnsEntry = $ipFqdn.FQDN.Substring(0,
$ipFqdn.FQDN.IndexOf(".", $ipFqdn.FQDN.IndexOf(".") + 1))
New-AzPrivateDnsRecordSet `
-ResourceGroupName $virtualNetworkResourceGroupName `
-Name $dnsEntry `
-RecordType A `
-ZoneName $dnsZoneName `
-Ttl 600 `
-PrivateDnsRecords $privateDnsRecordConfig `
-ErrorAction Stop | `
Out-Null
}
ストレージ同期サービスのプライベートエンドポイントを作成するには、まずストレージ同期サービスの参照を取得します。
<storage-sync-service-resource-group> および <storage-sync-service> を実際の環境の適切な値に置き換えてください。 以下のCLIコマンドは、すでに仮想ネットワーク情報を入力していると仮定しています。
storageSyncServiceResourceGroupName="<storage-sync-service-resource-group>"
storageSyncServiceName="<storage-sync-service>"
storageSyncService=$(az resource show \
--resource-group $storageSyncServiceResourceGroupName \
--name $storageSyncServiceName \
--resource-type "Microsoft.StorageSync/storageSyncServices" \
--query "id" | \
tr -d '"')
storageSyncServiceRegion=$(az resource show \
--resource-group $storageSyncServiceResourceGroupName \
--name $storageSyncServiceName \
--resource-type "Microsoft.StorageSync/storageSyncServices" \
--query "location" | \
tr -d '"')
プライベートエンドポイントを作成するには、まずサブネットのプライベートエンドポイントネットワークポリシーが 無効化されていることを確認してください。 次に az network private-endpoint create コマンドを使ってプライベートエンドポイントを作成します。
# Disable private endpoint network policies
az network vnet subnet update \
--ids $subnet \
--disable-private-endpoint-network-policies \
--output none
# Get virtual network location
region=$(az network vnet show \
--ids $virtualNetwork \
--query "location" | \
tr -d '"')
# Create a private endpoint
privateEndpoint=$(az network private-endpoint create \
--resource-group $storageSyncServiceResourceGroupName \
--name "$storageSyncServiceName-PrivateEndpoint" \
--location $region \
--subnet $subnet \
--private-connection-resource-id $storageSyncService \
--group-id "Afs" \
--connection-name "$storageSyncServiceName-Connection" \
--query "id" | \
tr -d '"')
Azure プライベート DNS ゾーンを作成すると、ストレージ同期サービスのホスト名 (mysssmanagement.westus2.afs.azure.net など) を仮想ネットワーク内のストレージ同期サービスの正しいプライベート IP に解決できます。 プライベート エンドポイントの作成の観点からは省略可能ですが、Azure File Sync エージェントがストレージ同期サービスにアクセスする場合は、明示的に必要になります。
# Get the desired storage account suffix (afs.azure.net for public cloud)
# This is done like this so this script will seamlessly work for non-public Azure
azureEnvironment=$(az cloud show \
--query "name" |
tr -d '"')
storageSyncSuffix=""
if [ $azureEnvironment == "AzureCloud" ]
then
storageSyncSuffix="afs.azure.net"
elif [ $azureEnvironment == "AzureUSGovernment" ]
then
storageSyncSuffix="afs.azure.us"
else
echo "Unsupported Azure environment $azureEnvironment."
fi
# For public cloud, this will generate the following DNS suffix:
# privatelink.afs.azure.net
dnsZoneName="privatelink.$storageSyncSuffix"
# Find a DNS zone matching desired name attached to this virtual network
possibleDnsZones=""
possibleDnsZones=$(az network private-dns zone list \
--query "[?name == '$dnsZoneName'].id" \
--output tsv)
dnsZone=""
possibleDnsZone=""
for possibleDnsZone in $possibleDnsZones
do
possibleResourceGroupName=$(az resource show \
--ids $possibleDnsZone \
--query "resourceGroup" | \
tr -d '"')
link=$(az network private-dns link vnet list \
--resource-group $possibleResourceGroupName \
--zone-name $dnsZoneName \
--query "[?virtualNetwork.id == '$virtualNetwork'].id" \
--output tsv)
if [ -z $link ]
then
echo "1" > /dev/null
else
dnsZoneResourceGroup=$possibleResourceGroupName
dnsZone=$possibleDnsZone
break
fi
done
if [ -z $dnsZone ]
then
# No matching DNS zone attached to virtual network, so create a new one
dnsZone=$(az network private-dns zone create \
--resource-group $virtualNetworkResourceGroupName \
--name $dnsZoneName \
--query "id" | \
tr -d '"')
az network private-dns link vnet create \
--resource-group $virtualNetworkResourceGroupName \
--zone-name $dnsZoneName \
--name "$virtualNetworkName-DnsLink" \
--virtual-network $virtualNetwork \
--registration-enabled false \
--output none
dnsZoneResourceGroup=$virtualNetworkResourceGroupName
fi
これで、プライベート DNS ゾーンへの参照を用意できたので、ご使用のストレージ同期サービスの A レコードを作成する必要があります。
privateEndpointNIC=$(az network private-endpoint show \
--ids $privateEndpoint \
--query "networkInterfaces[0].id" | \
tr -d '"')
privateIpAddresses=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[].privateIpAddress" \
--output tsv)
hostNames=$(az network nic show \
--ids $privateEndpointNIC \
--query "ipConfigurations[].privateLinkConnectionProperties.fqdns[]" \
--output tsv)
i=0
for privateIpAddress in $privateIpAddresses
do
j=0
targetHostName=""
for hostName in $hostNames
do
if [ $i == $j ]
then
targetHostName=$hostName
break
fi
j=$(expr $j + 1)
done
endpointName=$(echo $targetHostName | \
cut -c1-$(expr $(expr index $targetHostName ".") - 1))
az network private-dns record-set a create \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--name "$endpointName.$storageSyncServiceRegion" \
--output none
az network private-dns record-set a add-record \
--resource-group $dnsZoneResourceGroup \
--zone-name $dnsZoneName \
--record-set-name "$endpointName.$storageSyncServiceRegion" \
--ipv4-address $privateIpAddress \
--output none
i=$(expr $i + 1)
done
パブリック エンドポイントへのアクセスを制限する
ストレージ アカウントとストレージ同期サービスの両方のパブリック エンドポイントへのアクセスを制限できます。 パブリック エンドポイントへのアクセスを制限して、承認済みの場所からのネットワーク パケットのみが受け入れられるようにすることで、セキュリティが強化されます。
ストレージ アカウントのパブリック エンドポイントへのアクセスを制限する
ストレージアカウントのファイアウォール設定を使ってパブリックエンドポイントへのアクセスを制限できます。 一般に、ストレージ アカウントのほとんどのファイアウォール ポリシーではネットワーク アクセスが 1 つ以上の仮想ネットワークに制限されます。 ストレージ アカウントへのアクセスを仮想ネットワークに制限するには、次のいずれかの方法を使用します。
-
ストレージ アカウントに 1 つ以上のプライベート エンドポイントを作成し、パブリック エンドポイントへのアクセスを無効にします。 これで、そのストレージ アカウント内の Azure ファイル共有にアクセスできるのは、特定の仮想ネットワーク内から送信されたトラフィックだけになります。
- パブリック エンドポイントを 1 つ以上の仮想ネットワークに制限します。 このアプローチは、仮想ネットワークのサービス エンドポイントと呼ばれる機能を活用することで機能します。 サービスエンドポイントを通じてストレージアカウントにトラフィックを制限しても、そのストレージアカウントにはパブリックIPアドレス経由でアクセスしています。
注意
Azure File Sync などの信頼できる Microsoft のファーストパーティ サービスがストレージ アカウントにアクセスできるようにするには、ストレージ アカウントで このリソースへのアクセスを信頼できる Microsoft サービスに許可する チェック ボックスを選択します。 詳細については、「 特定のネットワークへのパブリックエンドポイントへのアクセスを制限する」をご覧ください。
重要
Azure File Sync には、ネットワーク セキュリティ境界 (NSP) に関する既知の制限があります。
ストレージ同期サービスを境界内に配置することはできません。また、境界全体の統合はサポートされていません。
ストレージ同期サービスを NSP によって保護されたストレージ アカウントに接続するには:
-
マネージド ID を使用するようにストレージ同期サービスを構成します。
- ストレージ同期サービスをホストするサブスクリプションを許可リストする NSP 受信プロファイル規則を作成します。
同期が正しく機能するためには、ストレージ同期サービスが境界外に残っている必要があります。
信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にする
パブリックエンドポイントへのアクセスを無効にしても、プライベートエンドポイントを通じてストレージアカウントにアクセスできますが、ストレージアカウントのパブリックエンドポイントへのリクエストは拒否されます。
パブリック エンドポイントへのすべてのアクセスを制限するストレージ アカウントに移動します。 ストレージ アカウントの目次で、 [ネットワーク] を選択します。
ページの上部で、[選択した仮想ネットワークと IP アドレスから有効] ラジオボタンを選択します。 これにより、パブリック エンドポイントの制限を制御するためのいくつかの設定が表示されるようになります。
[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選び、Azure File Sync などの信頼できるファースト パーティの Microsoft サービスに、ストレージ アカウントへのアクセスを許可します。
次の PowerShell コマンドを使用すると、ストレージ アカウントのパブリック エンドポイントに対するすべてのトラフィックが拒否されます。 このコマンドでは、-Bypass パラメーターが AzureServices に設定されていることに注意してください。 これにより、Azure File Sync などの信頼できるファーストパーティのサービスが、パブリック エンドポイント経由でストレージ アカウントにアクセスできるようになります。
# This assumes $storageAccount is still defined from the beginning of this of this guide.
$storageAccount | Update-AzStorageAccountNetworkRuleSet `
-DefaultAction Deny `
-Bypass AzureServices `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Out-Null
次の CLI コマンドを使用すると、ストレージ アカウントのパブリック エンドポイントに対するすべてのトラフィックが拒否されます。 このコマンドでは、-bypass パラメーターが AzureServices に設定されていることに注意してください。 これにより、Azure File Sync などの信頼できるファーストパーティのサービスが、パブリック エンドポイント経由でストレージ アカウントにアクセスできるようになります。
# This assumes $storageAccountResourceGroupName and $storageAccountName
# are still defined from the beginning of this guide.
az storage account update \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--bypass "AzureServices" \
--default-action "Deny" \
--output none
信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限する
ストレージ アカウントを特定の仮想ネットワークに制限すると、指定した仮想ネットワーク内からパブリック エンドポイントへの要求が許可されます。 これは、"サービス エンドポイント" と呼ばれる仮想ネットワークの機能を使用して実現できます。 これは、プライベート エンドポイントの有無に関係なく使用できます。
パブリック エンドポイントを特定の仮想ネットワークに制限するストレージ アカウントに移動します。 ストレージ アカウントの目次で、 [ネットワーク] を選択します。
ページの上部で、[選択した仮想ネットワークと IP アドレスから有効] ラジオボタンを選択します。 これにより、パブリック エンドポイントの制限を制御するためのいくつかの設定が表示されるようになります。
[+ 既存の仮想ネットワークを追加] を選び、パブリック エンドポイント経由でのストレージ アカウントへのアクセスを許可する特定の仮想ネットワークを選びます。 仮想ネットワークとその仮想ネットワークのサブネットを選び、[有効化] を選びます。
[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選び、Azure File Sync などの信頼できるファースト パーティの Microsoft サービスに、ストレージ アカウントへのアクセスを許可します。
サービス エンドポイントを使用して、ストレージ アカウントのパブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限するには、まず、ストレージ アカウントと仮想ネットワークに関する情報を収集する必要があります。 この情報を収集するには、<storage-account-resource-group>、<storage-account-name>、<vnet-resource-group-name>、<vnet-name>、<subnet-name> を指定します。
$storageAccountResourceGroupName = "<storage-account-resource-group>"
$storageAccountName = "<storage-account-name>"
$restrictToVirtualNetworkResourceGroupName = "<vnet-resource-group-name>"
$restrictToVirtualNetworkName = "<vnet-name>"
$subnetName = "<subnet-name>"
$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $storageAccountResourceGroupName `
-Name $storageAccountName `
-ErrorAction Stop
$virtualNetwork = Get-AzVirtualNetwork `
-ResourceGroupName $restrictToVirtualNetworkResourceGroupName `
-Name $restrictToVirtualNetworkName `
-ErrorAction Stop
$subnet = $virtualNetwork | `
Select-Object -ExpandProperty Subnets | `
Where-Object { $_.Name -eq $subnetName }
if ($null -eq $subnet) {
Write-Error `
-Message "Subnet $subnetName not found in virtual network $restrictToVirtualNetworkName." `
-ErrorAction Stop
}
仮想ネットワークからのトラフィックが、ストレージ アカウントのパブリック エンドポイントへのアクセスを Azure ネットワーク ファブリックによって許可されるためには、仮想ネットワークのサブネットで Microsoft.Storage サービス エンドポイントが公開されている必要があります。 次の PowerShell コマンドを使用すると、まだ存在しない場合は、Microsoft.Storage サービス エンドポイントがサブネットに追加されます。
$serviceEndpoints = $subnet | `
Select-Object -ExpandProperty ServiceEndpoints | `
Select-Object -ExpandProperty Service
if ($serviceEndpoints -notcontains "Microsoft.Storage") {
if ($null -eq $serviceEndpoints) {
$serviceEndpoints = @("Microsoft.Storage")
} elseif ($serviceEndpoints -is [string]) {
$serviceEndpoints = @($serviceEndpoints, "Microsoft.Storage")
} else {
$serviceEndpoints += "Microsoft.Storage"
}
$virtualNetwork = $virtualNetwork | Set-AzVirtualNetworkSubnetConfig `
-Name $subnetName `
-AddressPrefix $subnet.AddressPrefix `
-ServiceEndpoint $serviceEndpoints `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Set-AzVirtualNetwork `
-ErrorAction Stop
}
ストレージ アカウントへのトラフィックを制限する最後のステップでは、ネットワーク ルールを作成し、ストレージ アカウントのネットワーク ルール セットに追加します。
$networkRule = $storageAccount | Add-AzStorageAccountNetworkRule `
-VirtualNetworkResourceId $subnet.Id `
-ErrorAction Stop
$storageAccount | Update-AzStorageAccountNetworkRuleSet `
-DefaultAction Deny `
-Bypass AzureServices `
-VirtualNetworkRule $networkRule `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Out-Null
サービス エンドポイントを使用して、ストレージ アカウントのパブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限するには、まず、ストレージ アカウントと仮想ネットワークに関する情報を収集する必要があります。 この情報を収集するには、<storage-account-resource-group>、<storage-account-name>、<vnet-resource-group-name>、<vnet-name>、<subnet-name> を指定します。
storageAccountResourceGroupName="<storage-account-resource-group>"
storageAccountName="<storage-account-name>"
restrictToVirtualNetworkResourceGroupName="<vnet-resource-group-name>"
restrictToVirtualNetworkName="<vnet-name>"
subnetName="<subnet-name>"
storageAccount=$(az storage account show \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--query "id" | \
tr -d '"')
virtualNetwork=$(az network vnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--name $restrictToVirtualNetworkName \
--query "id" | \
tr -d '"')
subnet=$(az network vnet subnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--vnet-name $restrictToVirtualNetworkName \
--name $subnetName \
--query "id" | \
tr -d '"')
仮想ネットワークからのトラフィックが、ストレージ アカウントのパブリック エンドポイントへのアクセスを Azure ネットワーク ファブリックによって許可されるためには、仮想ネットワークのサブネットで Microsoft.Storage サービス エンドポイントが公開されている必要があります。 次の CLI コマンドを使用すると、まだ存在しない場合は、Microsoft.Storage サービス エンドポイントがサブネットに追加されます。
serviceEndpoints=$(az network vnet subnet show \
--resource-group $restrictToVirtualNetworkResourceGroupName \
--vnet-name $restrictToVirtualNetworkName \
--name $subnetName \
--query "serviceEndpoints[].service" \
--output tsv)
foundStorageServiceEndpoint=false
for serviceEndpoint in $serviceEndpoints
do
if [ $serviceEndpoint = "Microsoft.Storage" ]
then
foundStorageServiceEndpoint=true
fi
done
if [ $foundStorageServiceEndpoint = false ]
then
serviceEndpointList=""
for serviceEndpoint in $serviceEndpoints
do
serviceEndpointList+=$serviceEndpoint
serviceEndpointList+=" "
done
serviceEndpointList+="Microsoft.Storage"
az network vnet subnet update \
--ids $subnet \
--service-endpoints $serviceEndpointList \
--output none
fi
ストレージ アカウントへのトラフィックを制限する最後のステップでは、ネットワーク ルールを作成し、ストレージ アカウントのネットワーク ルール セットに追加します。
az storage account network-rule add \
--resource-group $storageAccountResourceGroupName \
--account-name $storageAccountName \
--subnet $subnet \
--output none
az storage account update \
--resource-group $storageAccountResourceGroupName \
--name $storageAccountName \
--bypass "AzureServices" \
--default-action "Deny" \
--output none
ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にする
Azure File Sync を使用すると、プライベート エンドポイントによるアクセスを特定の仮想ネットワークのみに制限できます。Azure File Sync では、サービス エンドポイントによって、パブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限することはサポートされていません。 つまり、ストレージ同期サービスのパブリック エンドポイントには有効と無効の 2 つの状態があるということです。
重要
パブリック エンドポイントへのアクセスを無効にする前に、プライベート エンドポイントを作成する必要があります。 パブリック エンドポイントが無効になっていて、プライベート エンドポイントが構成されていない場合は、同期が機能しません。
ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にするには、次の手順に従います。
-
Azure portal にサインインします。
- ストレージ同期サービスにアクセスし、左のナビゲーションから 設定>ネットワーク を選択します。
-
[アクセスを許可する] で、[プライベート エンドポイントのみ] を選択します。
-
[プライベート エンドポイントの接続] の一覧からプライベート エンドポイントを選択します。
ストレージ同期サービスのパブリックエンドポイントへのアクセスを無効にするには、ストレージ同期サービスの incomingTrafficPolicy プロパティを AllowVirtualNetworksOnlyに設定してください。 ストレージ同期サービスのパブリックエンドポイントへのアクセスを有効にするには、 incomingTrafficPolicy を AllowAllTrafficに設定してください。
<storage-sync-service-resource-group> と <storage-sync-service> を独自の値に置き換えます。
$storageSyncServiceResourceGroupName = "<storage-sync-service-resource-group>"
$storageSyncServiceName = "<storage-sync-service>"
Set-AzStorageSyncService `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name $storageSyncServiceName `
-IncomingTrafficPolicy AllowVirtualNetworksOnly
Azure CLI では、ストレージ同期サービスに incomingTrafficPolicy プロパティを設定できません。 Storage Sync Serviceのパブリックエンドポイントを無効にする方法については、Azure PowerShellタブを選択してください。
Azure Files および Azure File Sync 向けの Azure Policy
Azure Policy を使用すると、組織の標準を適用し、標準に対するコンプライアンスを大規模に評価する場合に役立ちます。 Azure Files と Azure File Sync により、デプロイの監視と自動化に役立ついくつかの便利な監査および修復ネットワーク ポリシーが公開されています。
ポリシーによって環境が監査され、ストレージ アカウントまたはストレージ同期サービスが定義された動作から逸脱している場合は警告されます。 例えば、ポリシーがパブリックエンドポイントを無効にするよう設定されているのに、パブリックエンドポイントが有効になっているとポリシーが警告します。 ポリシーの変更および展開は、リソース(例えばストレージ同期サービス)を積極的に変更したり、リソース(プライベートエンドポイントなど)をポリシーに合わせて展開したりできます。
次の事前定義されたポリシーは、Azure Files と Azure File Sync で使用できます。
| アクション |
Service |
条件 |
ポリシー名 |
| 監査 |
Azure Files |
ストレージ アカウントのパブリック エンドポイントが有効になっています。 詳細については、「信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 |
ストレージ アカウントではネットワーク アクセスを制限する必要がある |
| 監査 |
Azure File Sync |
ストレージ同期サービスのパブリック エンドポイントが有効になっています。 詳細については、「ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 |
Azure File Sync のパブリック ネットワーク アクセスを無効にする必要がある |
| 監査 |
Azure Files |
ストレージ アカウントには、少なくとも 1 つのプライベート エンドポイントが必要です。 詳細については、「ストレージ アカウントのプライベート エンドポイントを作成する」を参照してください。 |
ストレージ アカウントではプライベート リンク接続を使用する必要がある |
| 監査 |
Azure File Sync |
ストレージ同期サービスには、少なくとも 1 つのプライベート エンドポイントが必要です。 詳細については、「ストレージ同期のプライベート エンドポイントを作成する」を参照してください。 |
Azure File Sync ではプライベート リンクを使用する必要がある |
| 変更 |
Azure File Sync |
ストレージ同期サービスのパブリック エンドポイントを無効にします。 |
変更 - パブリック ネットワーク アクセスを無効にするように Azure File Sync を構成する |
| デプロイ |
Azure File Sync |
ストレージ同期サービスのプライベート エンドポイントをデプロイします。 |
プライベート エンドポイントを持つ Azure File Sync を構成する |
| デプロイ |
Azure File Sync |
A レコードを privatelink.afs.azure.net DNS ゾーンにデプロイします。 |
プライベート DNS ゾーンを使用するように Azure File Sync を構成する |
プライベート エンドポイント デプロイ ポリシーを設定する
プライベートエンドポイント展開ポリシーを設定するには、以下の手順に従ってください:
-
Azureポータルにサインインして「ポリシー」を検索してください。 結果から ポリシー を選択します。
- ポリシーセンターの目次にある 「Authoring>Definitions 」へ行ってください。
-
定義ペインでカテゴリフィルターのストレージカテゴリを選択するか、「Configure Azure File Sync with private endpoints」を検索してください。
- ポリシーの横で ... を選択し、次に 割り当てを選択します。
-
Basicsページでは、オプションで範囲、除外リスト、そしてポリシーのフレンドリーな名前を設定することができます。
次へを選択します。
-
パラメータページで、privateEndpointSubnetIdフィールドの隣にある...を選択します。 ストレージ同期サービスリソースのプライベートエンドポイントを展開すべき仮想ネットワークとサブネットを選択してください。 ウィザードは利用可能な仮想ネットワークの読み込みに数秒かかることもあります。
次へを選択します。
-
リメディエーションページで「リメディエーションタスクを作成」を選択し、プライベートエンドポイントを持たないストレージ同期サービスが特定された際にプライベートエンドポイントが展開されます。
- ポリシー割り当てを確認するには レビュー+作成 を選択し、その後 作成を選択します。
結果のポリシーの割り当ては定期的に実行されます。また、作成された直後には実行されない場合があります。
関連項目