Konfigurowanie punktów końcowych sieci na potrzeby uzyskiwania dostępu do udziałów plików platformy Azure
Artykuł
Usługa Azure Files udostępnia dwa główne typy punktów końcowych na potrzeby uzyskiwania dostępu do udziałów plików platformy Azure:
Publiczne punkty końcowe, które mają publiczny adres IP i mogą być dostępne z dowolnego miejsca na świecie.
Prywatne punkty końcowe, które istnieją w sieci wirtualnej i mają prywatny adres IP z przestrzeni adresowej tej sieci wirtualnej.
Publiczne i prywatne punkty końcowe istnieją na koncie usługi Azure Storage. Konto przechowywania to konstrukcja zarządzania, która reprezentuje wspólną pulę zasobów przechowywania, w której można utworzyć wiele udostępnień plików, a także inne zasoby przechowywania, takie jak kontenery BLOB lub kolejki.
W tym artykule opisano sposób konfigurowania punktów końcowych konta magazynu na potrzeby bezpośredniego uzyskiwania dostępu do udziału plików platformy Azure. Także znaczna część tego artykułu odnosi się do sposobu, w jaki usługa Azure File Sync współpracuje z publicznymi i prywatnymi punktami końcowymi konta magazynu. Aby uzyskać więcej informacji na temat zagadnień dotyczących sieci dla usługi Azure File Sync, zobacz konfigurowanie serwera proxy i ustawień zapory usługi Azure File Sync.
Zalecamy zapoznanie się z zagadnieniami dotyczącymi sieci usługi Azure Files przed przeczytaniem tego przewodnika.
Dotyczy
Typ udostępniania plików
SMB
NFS
Udziały plików standardowych (GPv2), LRS/ZRS
Udziały plików w warstwie standardowej (GPv2), GRS/GZRS
Zasoby plikowe klasy Premium (FileStorage), LRS/ZRS
Wymagania wstępne
W tym artykule założono, że utworzono już subskrypcję platformy Azure. Jeśli nie masz jeszcze subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
W tym artykule założono, że utworzono już udział plików platformy Azure na koncie magazynu, z którym chcesz nawiązać połączenie ze środowiska lokalnego. Aby dowiedzieć się, jak utworzyć udział plików platformy Azure, zobacz Tworzenie udziału plików platformy Azure.
Można skonfigurować punkty końcowe, aby ograniczyć dostęp sieciowy do konta magazynowania. Istnieją dwa podejścia do ograniczania dostępu do konta magazynu do sieci wirtualnej:
Utwórz przynajmniej jeden prywatny punkt końcowy dla konta magazynu danych, a następnie ogranicz cały dostęp do publicznego punktu końcowego. Dzięki temu tylko ruch pochodzący z wybranych sieci wirtualnych może uzyskiwać dostęp do udziałów plików platformy Azure na koncie magazynowym. Zobacz Koszt usługi Private Link.
Ogranicz publiczny punkt końcowy do co najmniej jednej sieci wirtualnej. Działa to przy użyciu możliwości sieci wirtualnej nazywanej punktami końcowymi usługi. Jeśli ograniczasz ruch do konta magazynu za pośrednictwem punktu końcowego usługi, nadal uzyskujesz dostęp do konta magazynu za pośrednictwem publicznego adresu IP, ale dostęp jest możliwy tylko z lokalizacji, które określisz w konfiguracji.
Tworzenie prywatnego punktu końcowego
Podczas tworzenia prywatnego punktu końcowego dla konta magazynu są wdrażane następujące zasoby platformy Azure:
Prywatny punkt końcowy: zasób platformy Azure reprezentujący prywatny punkt końcowy konta magazynowego. Można to traktować jako zasób, który łączy konto magazynowe i interfejs sieciowy.
Interfejs sieciowy (NIC): interfejs sieciowy, który utrzymuje prywatny adres IP w określonej sieci wirtualnej/podsieci. Jest to dokładnie ten sam zasób, który jest wdrażany podczas wdrażania maszyny wirtualnej, jednak zamiast być przypisanym do maszyny wirtualnej, jest on własnością prywatnego punktu końcowego.
Prywatna strefa systemu nazw domen (DNS): jeśli wcześniej nie wdrożono prywatnego punktu końcowego dla tej sieci wirtualnej, zostanie wdrożona nowa prywatna strefa DNS dla sieci wirtualnej. Rekord typu A DNS zostanie również utworzony dla konta magazynowego w tej strefie DNS. Jeśli w tej sieci wirtualnej wdrożono już prywatny punkt końcowy, nowy rekord A dla konta przechowywania zostanie dodany do istniejącej strefy DNS. Wdrażanie strefy DNS jest opcjonalne. Jest to jednak zdecydowanie zalecane i wymagane w przypadku montowania udostępnień plików Azure z kontekstu usługi AD lub korzystania z interfejsu API FileREST.
Uwaga
W tym artykule używany jest sufiks DNS dla konta magazynu dla publicznych regionów platformy Azure. core.windows.net Ten komentarz dotyczy również chmur suwerennych platformy Azure, takich jak chmura platformy Azure DLA instytucji rządowych USA i platforma Microsoft Azure obsługiwana przez chmurę 21Vianet. Wystarczy zastąpić odpowiednie sufiksy dla danego środowiska.
Przejdź do konta przechowywania, dla którego chcesz utworzyć prywatny punkt końcowy. W menu usługi w obszarze Zabezpieczenia i sieci wybierz Sieci, Połączenia prywatnych punktów końcowych, a następnie + Prywatny punkt końcowy, aby utworzyć nowy prywatny punkt końcowy.
Wygenerowany kreator zawiera wiele stron do wypełnienia.
W bloku Podstawy wybierz odpowiednią subskrypcję, grupę zasobów, nazwę, nazwę interfejsu sieciowego i region dla prywatnego punktu końcowego. Mogą to być dowolne elementy, ale nie muszą być zgodne z kontem magazynu w żaden sposób, chociaż należy utworzyć prywatny punkt końcowy w tym samym regionie co sieć wirtualna, w której chcesz utworzyć prywatny punkt końcowy. Następnie wybierz pozycję Dalej: Zasób.
W bloku Zasób wybierz plik dla docelowego zasobu podrzędnego. Następnie wybierz pozycję Dalej: Sieć wirtualna.
Blok Sieć wirtualna umożliwia wybranie określonej sieci wirtualnej i podsieci, do której chcesz dodać prywatny punkt końcowy. Wybierz alokację dynamicznego lub statycznego adresu IP dla nowego prywatnego punktu końcowego. Jeśli wybierzesz statyczny, musisz również podać nazwę i prywatny adres IP. Opcjonalnie możesz również określić grupę zabezpieczeń aplikacji. Po zakończeniu wybierz pozycję Dalej: DNS.
Blok DNS zawiera informacje dotyczące integrowania prywatnego punktu końcowego z prywatną strefą DNS. Upewnij się, że subskrypcja i grupa zasobów są poprawne, a następnie wybierz pozycję Dalej: Tagi.
Opcjonalnie można zastosować tagi do kategoryzowania zasobów, takich jak zastosowanie nazwy Środowisko i wartość Test do wszystkich zasobów testowych. W razie potrzeby wpisz pary nazwa/wartość, a następnie wybierz Dalej: Przejrzyj i utwórz.
Wybierz pozycję Utwórz , aby utworzyć prywatny punkt końcowy.
Aby utworzyć prywatny punkt końcowy dla konta magazynowego, najpierw musisz uzyskać dostęp do konta magazynowego i podsieci sieci wirtualnej, do której chcesz dodać prywatny punkt końcowy. Zastąp wartości <storage-account-resource-group-name>, , <storage-account-name><vnet-resource-group-name>, <vnet-name>i <vnet-subnet-name> poniżej:
$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
}
Aby utworzyć prywatny punkt końcowy, musisz utworzyć połączenie usługi łącza prywatnego z kontem magazynowym. Połączenie usługi łącza prywatnego jest kluczowym elementem w tworzeniu prywatnego punktu końcowego.
# 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
Utworzenie prywatnej strefy DNS platformy Azure umożliwia oryginalnej nazwie konta magazynu, na przykład storageaccount.file.core.windows.net, rozwiązać się do prywatnego adresu IP wewnątrz sieci wirtualnej. Chociaż z perspektywy tworzenia prywatnego punktu końcowego jest to opcjonalne, jest wyraźnie wymagany do podłączenia udziału plików platformy Azure bezpośrednio przy użyciu przedstawiciela użytkownika usługi AD lub uzyskiwania dostępu za pośrednictwem interfejsu API REST.
# 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
}
Skoro już masz odniesienie do prywatnej strefy DNS, musisz utworzyć rekord A dla konta magazynowego.
Aby utworzyć prywatny punkt końcowy dla konta przechowywania, najpierw musisz uzyskać referencję do konta przechowywania i podsieci w sieci wirtualnej, do której chcesz dodać prywatny punkt końcowy. Zastąp wartości <storage-account-resource-group-name>, , <storage-account-name><vnet-resource-group-name>, <vnet-name>i <vnet-subnet-name> poniżej:
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 '"')
Aby utworzyć prywatny punkt końcowy, należy najpierw upewnić się, że zasady sieci prywatnego punktu końcowego podsieci są ustawione na wyłączone. Następnie możesz utworzyć prywatny punkt końcowy za az network private-endpoint create pomocą polecenia .
Utworzenie prywatnej strefy DNS platformy Azure umożliwia oryginalną nazwę konta magazynu, na przykład storageaccount.file.core.windows.net rozpoznawanie prywatnego adresu IP wewnątrz sieci wirtualnej. Chociaż z perspektywy tworzenia prywatnego punktu końcowego jest to opcjonalne, jawnie jest wymagane do zamontowania udziału plików platformy Azure przy użyciu konta użytkownika AD lub uzyskiwania dostępu za pośrednictwem interfejsu API REST.
# 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
Teraz, gdy masz odniesienie do prywatnej strefy DNS, musisz utworzyć rekord A dla swojego konta przechowywania.
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
Jeśli masz maszynę wirtualną w sieci wirtualnej lub skonfigurowano przekazywanie DNS zgodnie z opisem w temacie Konfigurowanie przekazywania DNS dla usługi Azure Files, możesz sprawdzić, czy prywatny punkt końcowy jest poprawnie skonfigurowany. Uruchom następujące polecenia z poziomu programu PowerShell, wiersza polecenia lub terminalu (działa w systemach Windows, Linux lub macOS). Musisz zastąpić <storage-account-name> odpowiednią nazwą konta pamięci masowej.
W przypadku powodzenia powinny zostać wyświetlone następujące dane wyjściowe, gdzie 192.168.0.5 jest prywatnym adresem IP prywatnego punktu końcowego w sieci wirtualnej (dane wyjściowe wyświetlane dla systemu Windows):
Jeśli masz maszynę wirtualną w sieci wirtualnej lub skonfigurowano przekazywanie DNS zgodnie z opisem w temacie Konfigurowanie przekazywania DNS dla usługi Azure Files, możesz przetestować, czy prywatny punkt końcowy jest poprawnie skonfigurowany, uruchamiając następujące polecenia:
W przypadku powodzenia powinny zostać wyświetlone następujące dane wyjściowe, gdzie 192.168.0.5 jest prywatnym adresem IP prywatnego punktu końcowego w sieci wirtualnej:
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
Jeśli masz maszynę wirtualną w sieci wirtualnej lub skonfigurowano przekazywanie DNS zgodnie z opisem w temacie Konfigurowanie przekazywania DNS dla usługi Azure Files, możesz przetestować, czy prywatny punkt końcowy jest poprawnie skonfigurowany, uruchamiając następujące polecenia:
Jeśli wszystko powiedzie się, powinny zostać wyświetlone następujące dane wyjściowe, gdzie 192.168.0.5 jest prywatnym adresem IP prywatnego punktu końcowego w sieci wirtualnej. Nadal należy użyć storageaccount.file.core.windows.net, aby zamontować udział plików zamiast ścieżki privatelink.
Ograniczanie dostępu do publicznego punktu końcowego
Ograniczenie dostępu do publicznego punktu końcowego wymaga najpierw wyłączenia ogólnego dostępu do publicznego punktu końcowego. Wyłączenie dostępu do publicznego punktu końcowego nie ma wpływu na prywatne punkty końcowe. Po wyłączeniu publicznego punktu końcowego można wybrać określone sieci lub adresy IP, które mogą nadal uzyskiwać do niego dostęp. Ogólnie rzecz biorąc, większość zasad zapory dla konta magazynowego ogranicza dostęp sieciowy do jednej lub więcej sieci wirtualnych.
Wyłączanie dostępu do publicznego punktu końcowego
Gdy dostęp do publicznego punktu końcowego jest wyłączony, konto magazynu nadal może być dostępne za pośrednictwem jego prywatnych punktów końcowych. W przeciwnym razie prawidłowe żądania do publicznego interfejsu konta magazynu zostaną odrzucone, chyba że pochodzą one ze sprecyzowanego dozwolonego źródła.
Przejdź do konta magazynu, dla którego chcesz ograniczyć cały dostęp do publicznego punktu końcowego. W menu konta magazynu, wybierz Ustawienia sieciowe.
W górnej części strony wybierz przełącznik Włączone dla wybranych sieci wirtualnych i adresów IP. Spowoduje to ukrycie wielu ustawień kontroli ograniczeń publicznego punktu końcowego. Wybierz Zezwalaj usługom platformy Azure na liście zaufanych usług, aby uzyskać dostęp do tego konta magazynu, aby umożliwić dostęp zaufanym usługom pierwszej strony firmy Microsoft, takim jak Azure File Sync, do tego konta magazynu.
Następujące polecenie programu PowerShell zablokuje cały ruch do publicznego punktu końcowego konta magazynu. Należy pamiętać, że to polecenie ma parametr -Bypass ustawiony na wartość AzureServices. Umożliwi to zaufanym usługom pierwszej strony, takim jak Azure File Sync, dostęp do konta magazynowego za pośrednictwem publicznego punktu końcowego.
# 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
Następujące polecenie CLI zablokuje cały ruch do publicznego punktu końcowego konta magazynowego. Należy pamiętać, że to polecenie ma parametr -bypass ustawiony na AzureServices. Umożliwi to zaufanym usługom pierwszej strony, takim jak Azure File Sync, dostęp do konta usługi magazynowania za pośrednictwem publicznego punktu końcowego.
# 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
Ograniczanie dostępu do publicznego punktu końcowego do określonych sieci wirtualnych
Jeśli ograniczasz konto magazynu do określonych sieci wirtualnych, zezwalasz na żądania do publicznego punktu końcowego z tych sieci. Działa to przy użyciu możliwości sieci wirtualnej nazywanej punktami końcowymi usługi. Może to być używane z prywatnymi punktami końcowymi lub bez nich.
Przejdź do konta magazynu, dla którego chcesz ograniczyć publiczny punkt końcowy do określonych sieci wirtualnych. W spisie treści dla konta magazynowego wybierz pozycję Sieć.
W górnej części strony wybierz przełącznik opcji Włącz z wybranych sieci wirtualnych i adresów IP. Spowoduje to ukrycie wielu ustawień kontroli ograniczeń publicznego punktu końcowego. Wybierz pozycję +Dodaj istniejącą sieć wirtualną, aby wybrać określoną sieć wirtualną, która powinna mieć dostęp do konta magazynu za pośrednictwem publicznego punktu dostępu. Wybierz sieć wirtualną i podsieć dla tej sieci wirtualnej, a następnie wybierz pozycję Włącz.
Wybierz Zezwalaj usługom platformy Azure na liście zaufanych usług, aby uzyskać dostęp do tego konta magazynu, aby zezwolić zaufanym usługom pierwszej strony Microsoft, takim jak Azure File Sync, na dostęp do konta magazynu.
Aby ograniczyć dostęp do publicznego punktu końcowego konta magazynowego do określonych sieci wirtualnych przy użyciu punktów końcowych usługi, najpierw musimy zebrać informacje o koncie magazynowym i sieciach wirtualnych. Wypełnij pola <storage-account-resource-group>, , <storage-account-name><vnet-resource-group-name>, <vnet-name>i <subnet-name> , aby zebrać te informacje.
Aby ruch z sieci wirtualnej był dozwolony przez sieć szkieletową platformy Azure, aby dotrzeć do publicznego punktu końcowego konta magazynu, punkt końcowy usługi musi być uwidoczniony w podsieci sieci wirtualnej. Następujące polecenia programu PowerShell spowodują dodanie punktu końcowego Microsoft.Storage usługi do podsieci, jeśli jeszcze nie istnieje.
Aby ograniczyć dostęp do publicznego punktu końcowego konta magazynowego do określonych sieci wirtualnych przy użyciu punktów końcowych usługi, najpierw musimy zebrać informacje o koncie magazynowym i sieciach wirtualnych. Wypełnij pola <storage-account-resource-group>, , <storage-account-name><vnet-resource-group-name>, <vnet-name>i <subnet-name> , aby zebrać te informacje.
Aby ruch z sieci wirtualnej mógł być dozwolony przez sieć szkieletową platformy Azure, aby dotrzeć do publicznego punktu końcowego konta magazynu, podsieć sieci wirtualnej musi mieć Microsoft.Storage włączony punkt końcowy usługi. Następujące polecenia CLI dodadzą endpoint usługi do podsieci, jeśli jeszcze go tam nie ma.
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
Ostatnim krokiem ograniczania ruchu do konta magazynu jest utworzenie reguły sieciowej i dodanie jej do zestawu reguł sieciowych konta magazynu.