Azure File Sync wykorzystuje dwa zasoby Azure, z których każdy ma własne punkty końcowe sieci: konto pamięci masowej (które posiada współudział plików Azure) oraz usługę Storage Sync (która koordynuje synchronizację, rejestrację serwera i grupy synchronizacji). Oba zasoby domyślnie korzystają z publicznych punktów końcowych.
Agent Azure File Sync komunikuje się z oboma zasobami przez HTTPS (port 443). Dla serwerów łączących się z Azure przez internet bez VPN czy ExpressRoute możesz korzystać z publicznego endpointu i nie potrzebujesz żadnej konfiguracji. Jednak większość klientów Azure File Sync chce konfigurować prywatne punkty końcowe.
Użyj poniższej tabeli, aby zdecydować, czy potrzebujesz prywatnych punktów końcowych. Jeśli ich potrzebujesz, utwórz prywatne punkty końcowe dla obu zasobów.
| Muszę... |
Użyj |
| Synchronizuj serwery łączące się z Azure przez internet bez VPN czy ExpressRoute |
Publiczne punkty końcowe (bez potrzeby konfiguracji) |
| Cały ruch synchronizacyjny kieruj przez ExpressRoute lub połączenie VPN między lokalizacjami |
Prywatne punkty końcowe dla obu zasobów |
| Spełnienie wymogów zgodności zakazujących danych w publicznym internecie |
Prywatne punkty końcowe dla obu zasobów |
| Wyłącz publiczny punkt końcowy jako środek wzmacniający bezpieczeństwo |
Najpierw prywatne punkty końcowe dla obu zasobów, a następnie ogranicz dostęp |
| Wdróż dostęp do sieci w modelu Zero Trust |
Prywatne punkty końcowe dla obu zasobów |
Dla szerszych koncepcji sieciowych zobacz Azure File Sync networking considerations. Aby skonfigurować endpointy do bezpośredniego dostępu do Azure file share (bez Azure File Sync), zobacz Configure Azure Files network endpoints.
Wymagania wstępne
W tym artykule przyjęto założenie, że:
Dodatkowo:
Tworzenie prywatnych punktów końcowych
Podczas tworzenia prywatnego punktu końcowego dla zasobu platformy Azure są wdrażane następujące zasoby:
| Rozmieszczony zasób |
Description |
Co robisz |
|
Prywatny punkt końcowy |
Zasób Azure, który łączy Twoje konto pamięci masowej lub usługę synchronizacji pamięci z interfejsem sieciowym w twojej wirtualnej sieci |
Stwórz jeden dla każdego zasobu w Utwórz prywatny punkt końcowy konta pamięci orazUtworzenie prywatnego punktu końcowego Storage Sync Service |
| interfejsu sieciowego (NIC) |
Posiada prywatny adres IP prywatnego punktu końcowego w twojej podsieci |
Tworzone automatycznie z prywatnym endpointem; Nie wymagane są dodatkowe działania |
|
Prywatna strefa DNS |
Mapuje publiczną nazwę hosta zasobu na prywatny adres IP punktu końcowego, dzięki czemu klienci rozpoznają tę nazwę jako prywatny punkt końcowy bez zmiany ciągów połączenia |
Tworzone automatycznie, jeśli takie nie istnieje; Zaleca się unikanie ręcznej konfiguracji DNS |
Uwaga
W tym artykule używano sufiksów DNS dla regionów Azure Public – core.windows.net dla kont afs.azure.net pamięci oraz dla usług synchronizacji danych. Ta nomenklatura dotyczy również chmur Azure Sovereign, takich jak Azure US Government cloud. Wystarczy zastąpić odpowiednie sufiksy dla danego środowiska.
Utwórz prywatny punkt końcowy konta magazynu
Przejdź do konta przechowywania, dla którego chcesz utworzyć prywatny punkt końcowy. W menu usługi w obszarze Zabezpieczenia i sieć wybierz Sieć, Prywatne połączenia punktów końcowych, a następnie + Prywatny punkt końcowy, aby utworzyć nowy prywatny punkt końcowy.
Wynikowy kreator ma wiele stron, które trzeba wypełnić.
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 wprowadź pary nazwa/wartość, a następnie wybierz pozycję Dalej: Przejrzyj i utwórz.
Wybierz pozycję Utwórz , aby utworzyć prywatny punkt końcowy.
Jeśli masz maszynę wirtualną w swojej wirtualnej sieci lub skonfigurowano przekierowanie DNS zgodnie z opisem w Configuring DNS forwarding for Azure Files, możesz sprawdzić, czy Twój prywatny endpoint jest poprawnie skonfigurowany, uruchamiając następujące polecenia z PowerShell, wiersza poleceń lub terminala (działa na Windows, Linux lub macOS). Zastąp <storage-account-name> nazwę swojego konta magazynowego:
nslookup <storage-account-name>.file.core.windows.net
Jeśli wszystko działa pomyślnie, 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):
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
Aby utworzyć prywatny punkt końcowy dla usługi magazynu, najpierw musisz uzyskać dostęp do usługi magazynu oraz do 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 przechowywania. Połączenie usługi prywatnego łącza jest elementem wejściowym do tworzenia 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 oryginalną nazwę konta magazynu, na przykład storageaccount.file.core.windows.net rozpoznawanie prywatnego adresu IP wewnątrz sieci wirtualnej. Chociaż z punktu widzenia tworzenia prywatnego punktu końcowego jest to opcjonalne, jest wyraźnie wymagane do zamontowania udziału plików Azure bezpośrednio z użyciem jednostki 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 = 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
}
Teraz, gdy masz odwołanie do prywatnej strefy DNS, musisz utworzyć rekord A dla konta magazynowego.
$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
Jeśli masz maszynę wirtualną w swojej sieci wirtualnej lub skonfigurowano przekierowanie DNS zgodnie z opisaniem w Configure DNS forwarding for Azure Files, możesz sprawdzić, czy Twój prywatny punkt końcowy jest poprawnie skonfigurowany, używając następujących poleceń:
$storageAccountHostName = [System.Uri]::new($storageAccount.PrimaryEndpoints.file) | `
Select-Object -ExpandProperty Host
Resolve-DnsName -Name $storageAccountHostName
Jeśli wszystko działa pomyślnie, 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
Aby utworzyć prywatny punkt końcowy dla usługi magazynu, najpierw musisz uzyskać dostęp do usługi magazynu oraz do 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 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 .
# 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 '"')
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. Choć z perspektywy tworzenia prywatnego punktu końcowego jest to opcjonalne, jest wyraźnie wymagane do zamontowania udziału plików platformy Azure przy użyciu jednostki użytkownika AD lub uzyskania 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 odwołanie do prywatnej strefy DNS, musisz utworzyć rekord A dla konta magazynowego.
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 swojej sieci wirtualnej lub skonfigurowano przekierowanie DNS zgodnie z opisaniem w Configure DNS forwarding for Azure Files, możesz sprawdzić, czy Twój prywatny punkt końcowy jest poprawnie skonfigurowany, używając następujących poleceń:
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
Jeśli wszystko działa pomyślnie, 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:
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
Utwórz prywatny punkt końcowy usługi Storage Sync.
Przejdź do Private Link Center, wpisując Private Link w pasku wyszukiwania na górze portalu Azure. W spisie zawartości usługi Private Link Center wybierz Prywatne punkty końcowe, a następnie wybierz + Dodaj, aby utworzyć nowy prywatny punkt końcowy.
Wynikowy kreator ma wiele stron, które trzeba wypełnić.
W zakładce Podstawy wybierz grupę zasobów, nazwę i region dla swojego prywatnego punktu końcowego. Te wartości mogą być dowolnymi wartościami poprawnymi. Nie muszą być w żaden sposób zgodne z usługą Storage Sync Service, ale musisz utworzyć prywatny punkt końcowy w tym samym regionie co wybrana sieć wirtualna.
Na karcie Zasób wybierz pozycję Połącz z zasobem platformy Azure w moim katalogu. W kategorii Resource wybierz Microsoft. StorageSync/storageSyncServices.
Zakładka Konfiguracja pozwala wybrać konkretną sieć wirtualną i podsieć, do której chcesz dodać swój prywatny punkt końcowy. Wybierz tę samą sieć wirtualną, jaką użyłeś do konta pamięci. Zakładka Konfiguracja zawiera także informacje o tworzeniu i aktualizacji prywatnej strefy DNS.
Wybierz Przejrzyj i utwórz, aby utworzyć prywatny punkt końcowy.
Możesz sprawdzić, czy prywatny punkt końcowy jest poprawnie skonfigurowany, uruchamiając następujące polecenia programu 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
Jeśli wszystko działa poprawnie, powinny zostać wyświetlone następujące dane wyjściowe, w których 192.168.1.4, 192.168.1.5, 192.168.1.6i 192.168.1.7 są prywatnymi adresami IP przypisanymi do prywatnego punktu końcowego:
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
Aby utworzyć prywatny punkt końcowy dla usługi Storage Sync Service, najpierw pobierz odwołanie do usługi Storage Sync Service. Zastąp <storage-sync-service-resource-group> i <storage-sync-service> prawidłowymi wartościami dla swojego środowiska. Poniższe polecenia PowerShell zakładają, że już wypełniłeś informacje o sieci wirtualnej.
$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
}
Aby utworzyć prywatny punkt końcowy, należy utworzyć połączenie usługi prywatnego połączenia z usługą synchronizacji pamięci. Połączenie prywatnego łącza stanowi dane wejściowe do tworzenia 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 "$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
Utworzenie prywatnej strefy DNS platformy Azure umożliwia rozpoznawanie nazw hostów dla usługi synchronizacji magazynu, takich jak mysssmanagement.westus2.afs.azure.net, w celu rozpoznawania prawidłowych prywatnych adresów IP dla usługi synchronizacji magazynu wewnątrz sieci wirtualnej. Chociaż z perspektywy tworzenia prywatnego punktu końcowego jest to opcjonalne, agent usługi Azure File Sync musi mieć jawny dostęp do Storage Sync Service.
# 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
}
Teraz, gdy masz odwołanie do prywatnej strefy DNS, musisz utworzyć rekord A dla usługi Azure File Sync.
$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
}
Aby utworzyć prywatny punkt końcowy dla usługi Storage Sync Service, najpierw pobierz odwołanie do usługi Storage Sync Service. Zastąp <storage-sync-service-resource-group> i <storage-sync-service> prawidłowymi wartościami dla swojego środowiska. Poniższe polecenia CLI zakładają, że już wypełniłeś informacje o wirtualnej sieci.
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 '"')
Aby utworzyć prywatny punkt końcowy, upewnij się najpierw, że zasady sieciowe prywatnego punktu końcowego podsieci są ustawione na wyłączone. Następnie utwórz prywatny punkt końcowy za pomocą polecenia 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 '"')
Utworzenie prywatnej strefy DNS platformy Azure umożliwia rozpoznawanie nazw hostów dla usługi synchronizacji magazynu, takich jak mysssmanagement.westus2.afs.azure.net, w celu rozpoznawania prawidłowych prywatnych adresów IP dla usługi synchronizacji magazynu wewnątrz sieci wirtualnej. Chociaż z perspektywy tworzenia prywatnego punktu końcowego jest to opcjonalne, agent usługi Azure File Sync musi mieć jawny dostęp do Storage Sync Service.
# 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
Teraz, gdy masz odwołanie do prywatnej strefy DNS, musisz utworzyć rekord A dla usługi Azure File Sync.
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
Ograniczanie dostępu do publicznych punktów końcowych
Możesz ograniczyć dostęp do publicznych punktów końcowych zarówno konta magazynu, jak i usług synchronizacji magazynu. Ograniczenie dostępu do publicznego punktu końcowego zapewnia dodatkowe zabezpieczenia, zapewniając, że pakiety sieciowe są akceptowane tylko z zatwierdzonych lokalizacji.
Ogranicz dostęp do publicznego punktu końcowego konta przechowywania
Możesz ograniczyć dostęp do publicznego endpointu, korzystając z ustawień zapory na kontach magazynowych. Ogólnie rzecz biorąc, większość zasad zapory dla konta magazynowego ogranicza dostęp sieciowy do jednej lub więcej sieci wirtualnych. Aby ograniczyć dostęp do konta magazynowego z poziomu sieci wirtualnej, użyj jednej z następujących metod:
-
Utwórz co najmniej jeden prywatny punkt końcowy dla konta magazynowego i wyłącz dostęp do publicznego punktu końcowego. Dzięki temu tylko ruch pochodzący z żądanych sieci wirtualnych może uzyskiwać dostęp do udziałów plików platformy Azure w ramach konta magazynu.
- Ogranicz publiczny punkt końcowy do co najmniej jednej sieci wirtualnej. To podejście działa poprzez wykorzystanie funkcji sieci wirtualnej zwanej punktami końcowymi usług. Gdy ograniczasz ruch do konta pamięci przez punkt końcowy usługi, nadal masz dostęp do konta magazynowego przez publiczny adres IP.
Ważne
Usługa Azure File Sync ma znane ograniczenie dotyczące obwodów zabezpieczeń sieci (NSP).
Nie można umieścić usług synchronizacji danych wewnątrz perymetru sieciowego, a pełna integracja z perymetrem nie jest obsługiwana.
Aby połączyć usługę synchronizacji magazynu z kontem magazynu chronionym przez NSP:
- Skonfiguruj usługę synchronizacji magazynu, aby korzystała z tożsamości zarządzanych.
- Utwórz regułę profilu ruchu przychodzącego NSP, która dodaje do listy dozwolonych subskrypcję hostującą usługę synchronizacji danych.
Usługi synchronizacji danych muszą pozostać poza obwodem, aby synchronizacja działała poprawnie.
Udzielanie dostępu do zaufanych usług platformy Azure i wyłączanie dostępu do publicznego punktu końcowego konta magazynu
Po wyłączeniu dostępu do publicznego punktu końcowego nadal możesz uzyskać dostęp do konta pamięci przez jego prywatny punkt końcowy, ale żądania do publicznego punktu końcowego tego konta są odrzucane.
Przejdź do konta magazynu, dla którego chcesz ograniczyć dostęp do publicznego punktu końcowego. W menu konta magazynu wybierz Sieć.
W górnej części strony wybierz przełącznik opcji Włączone z wybranych sieci wirtualnych i adresów IP. Spowoduje to ukrycie wielu ustawień kontroli ograniczeń publicznego punktu końcowego. Wybierz opcję Zezwalaj usługom platformy Azure z listy zaufanych usług na dostęp do tego konta magazynu, aby umożliwić zaufanym usługom pierwszej strony, takim jak Azure File Sync, dostęp do konta magazynu.
Następujące polecenie programu PowerShell zablokuje cały ruch do publicznego punktu końcowego konta przechowywania. Należy pamiętać, że to polecenie ma parametr -Bypass ustawiony na AzureServices. Zaufane usługi pierwszej strony, takie jak Azure File Sync, będą mogły uzyskać 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 wszystkiemu ruchowi do publicznego endpointu konta magazynu. Należy pamiętać, że to polecenie ma parametr -bypass ustawiony na AzureServices. Zaufane usługi pierwszej strony, takie jak Azure File Sync, będą mogły uzyskać dostęp do konta magazynowego 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
Zezwalaj na dostęp zaufanym usługom platformy Azure oraz ogranicz dostęp do publicznego punktu końcowego konta magazynowego na określone sieci wirtualne.
Jeśli ograniczasz konto magazynu do określonych sieci wirtualnych, zezwalasz na żądania do publicznego punktu końcowego ze wskazanych sieci wirtualnych. 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 menu konta magazynu wybierz Sieć.
W górnej części strony wybierz przełącznik opcji Włączone 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 końcowego. Wybierz sieć wirtualną i podsieć dla tej sieci wirtualnej, a następnie wybierz pozycję Włącz.
Wybierz opcję Zezwalaj usługom platformy Azure z listy zaufanych usług na dostęp do tego konta magazynu, aby umożliwić zaufanym usługom pierwszej strony, takim jak Azure File Sync, dostęp do konta magazynu.
Aby ograniczyć dostęp do publicznego punktu końcowego konta magazynowego do konkretnych 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.
$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
}
Aby ruch z sieci wirtualnej mógł być dozwolony przez sieć szkieletową sieci szkieletowej platformy Azure w celu uzyskania dostępu do publicznego punktu końcowego konta magazynu, podsieć sieci wirtualnej musi mieć Microsoft.Storage uwidoczniony punkt końcowy usługi. Następujące polecenia programu PowerShell spowodują dodanie punktu końcowego Microsoft.Storage usługi do podsieci, jeśli jeszcze nie istnieje.
$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
}
Ostatnim krokiem ograniczania ruchu do konta magazynu jest utworzenie reguły sieciowej i dodanie jej do zestawu reguł sieciowych konta magazynu.
$networkRule = $storageAccount | Add-AzStorageAccountNetworkRule `
-VirtualNetworkResourceId $subnet.Id `
-ErrorAction Stop
$storageAccount | Update-AzStorageAccountNetworkRuleSet `
-DefaultAction Deny `
-Bypass AzureServices `
-VirtualNetworkRule $networkRule `
-WarningAction SilentlyContinue `
-ErrorAction Stop | `
Out-Null
Aby ograniczyć dostęp do publicznego punktu końcowego konta magazynowego do konkretnych 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.
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 '"')
Aby ruch z sieci wirtualnej mógł być dozwolony przez sieć szkieletową sieci szkieletowej platformy Azure w celu uzyskania dostępu do publicznego punktu końcowego konta magazynu, podsieć sieci wirtualnej musi mieć Microsoft.Storage uwidoczniony punkt końcowy usługi. Następujące polecenia wiersza polecenia dodadzą punkt końcowy usługi Microsoft.Storage do podsieci, jeśli jeszcze tam nie istnieje.
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.
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
Wyłącz dostęp do publicznego punktu końcowego usługi synchronizacji magazynu
Usługa Azure File Sync umożliwia ograniczenie dostępu do określonych sieci wirtualnych tylko za pośrednictwem prywatnych punktów końcowych; Usługa Azure File Sync nie obsługuje punktów końcowych usługi w celu ograniczenia dostępu do publicznego punktu końcowego do określonych sieci wirtualnych. Oznacza to, że dwa stany publicznego punktu końcowego usługi synchronizacji magazynu są włączone i wyłączone.
Ważne
Przed wyłączeniem dostępu do publicznego punktu końcowego należy utworzyć prywatny punkt końcowy. Jeśli publiczny punkt końcowy jest wyłączony i nie skonfigurowano prywatnego punktu końcowego, synchronizacja nie może działać.
Aby wyłączyć dostęp do publicznego punktu końcowego usługi synchronizacji magazynu, wykonaj następujące kroki:
- Zaloguj się w witrynie Azure Portal.
- Przejdź do usługi synchronizacji pamięci i wybierz Ustawienia>Sieć z lewej strony nawigacji.
- W polu Zezwalaj na dostęp, wybierz opcję Tylko prywatne punkty końcowe.
- Wybierz prywatny punkt końcowy z listy Połączenia prywatnego punktu końcowego.
Aby wyłączyć dostęp do publicznego punktu końcowego usługi Storage Sync Service, ustaw właściwość incomingTrafficPolicy usługi Storage Sync Service na AllowVirtualNetworksOnly. Aby umożliwić dostęp do publicznego punktu końcowego Storage Sync Service, ustaw incomingTrafficPolicy na AllowAllTraffic. Zastąp <storage-sync-service-resource-group> i <storage-sync-service> własnymi wartościami.
$storageSyncServiceResourceGroupName = "<storage-sync-service-resource-group>"
$storageSyncServiceName = "<storage-sync-service>"
Set-AzStorageSyncService `
-ResourceGroupName $storageSyncServiceResourceGroupName `
-Name $storageSyncServiceName `
-IncomingTrafficPolicy AllowVirtualNetworksOnly
Azure CLI nie obsługuje ustawiania incomingTrafficPolicy właściwości w usłudze Storage Sync. Wybierz zakładkę Azure PowerShell, aby uzyskać instrukcje, jak wyłączyć publiczny endpoint Storage Sync Service.
Azure Policy dla Azure Files i Azure File Sync
Usługa Azure Policy pomaga wymuszać standardy organizacji i oceniać zgodność z tymi standardami na dużą skalę. Usługi Azure Files i Azure File Sync udostępniają kilka przydatnych zasad sieciowych inspekcji i korygowania, które ułatwiają monitorowanie i automatyzowanie wdrożenia.
Polityki przeprowadzają audyt środowiska i ostrzegają cię, jeśli konta magazynowe lub Usługi Synchronizacji Magazynu odbiegają od określonego zachowania. Na przykład zasada ostrzega, jeśli publiczny punkt końcowy jest włączony, gdy zasada jest skonfigurowana tak, aby wyłączać publiczne punkty końcowe. Zasady „Modify” i „Deploy” mogą proaktywnie modyfikować zasób (taki jak Storage Sync Service) lub wdrażać zasoby (takie jak prywatne punkty końcowe), aby zapewnić zgodność z zasadami.
Następujące wstępnie zdefiniowane zasady są dostępne dla usług Azure Files i Azure File Sync:
| Akcja |
Usługa |
Stan |
Nazwa zasady |
| Audit |
Azure Files |
Publiczny punkt końcowy konta przechowywania jest włączony. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu do zaufanych usług Azure i wyłączanie dostępu do publicznego punktu końcowego konta magazynu. |
Konta magazynowe powinny ograniczać dostęp sieciowy |
| Audit |
Azure File Sync |
Publiczny punkt końcowy usługi synchronizacji magazynu jest włączony. Aby uzyskać więcej informacji, zobacz Wyłączanie dostępu do publicznego punktu końcowego usługi Storage Sync Service. |
Dostęp do sieci publicznej powinien być wyłączony dla usługi Azure File Sync |
| Audit |
Azure Files |
Konto magazynowe wymaga co najmniej jednego prywatnego punktu końcowego. Aby uzyskać więcej informacji, przejdź do Utwórz prywatny punkt końcowy konta magazynu. |
Konto magazynowe powinno używać łącza prywatnego. |
| Audit |
Azure File Sync |
Usługa synchronizacji magazynu wymaga co najmniej jednego prywatnego punktu końcowego. Aby uzyskać więcej informacji, zobacz Utwórz prywatny punkt końcowy usługi synchronizacji magazynu. |
Usługa Azure File Sync powinna używać łącza prywatnego |
| Zmień |
Azure File Sync |
Wyłącz publiczny punkt końcowy usługi synchronizacji magazynu. |
Modyfikowanie — konfigurowanie usługi Azure File Sync w celu wyłączenia dostępu do sieci publicznej |
| Wdrażaj |
Azure File Sync |
Wdróż prywatny punkt końcowy do usługi Storage Sync Service. |
Konfigurowanie usługi Azure File Sync z prywatnymi punktami końcowymi |
| Wdrażaj |
Azure File Sync |
Wdróż rekord A w privatelink.afs.azure.net strefie DNS. |
Konfigurowanie usługi Azure File Sync do korzystania z prywatnych stref DNS |
Konfigurowanie zasad wdrażania prywatnego punktu końcowego
Aby skonfigurować prywatną politykę wdrożenia punktów końcowych, należy postępować zgodnie z następującymi krokami:
- Zaloguj się do portalu Azure i wyszukaj Politykę. Wybierz Politykę spośród wyników.
- Przejdź do Definicji Autorstwa> w spisie treści Centrum Polityk.
- W panelu Definicje wybierz kategorię Storage w filtrze kategorii lub wyszukaj Configure Azure File Sync with private endpoints.
- Wybierz ... obok zasad, a następnie wybierz Przypisz.
- Na stronie Podstawy opcjonalnie ustaw zakres, listę wyłączeń oraz przyjazną nazwę polisy. Wybierz Dalej.
- Na stronie Parametry wybierz ... obok pola privateEndpointSubnetId . Wybierz sieć wirtualną i podsieć, w której powinny być wdrożone prywatne punkty końcowe dla zasobów Storage Sync Service. Kreator może potrzebować kilku sekund na załadowanie dostępnych sieci wirtualnych. Wybierz Dalej.
- Na stronie Remediation wybierz Utwórz zadanie korygujące, aby prywatny punkt końcowy został wdrożony po wykryciu usługi Storage Sync Service bez prywatnego punktu końcowego.
- Wybierz Przejrzyj i utwórz, aby przejrzeć przypisanie zasad, a następnie wybierz Utwórz.
Wynikowe przydzielenie polityki będzie wykonywane okresowo i może nie być uruchamiane natychmiast po utworzeniu.
Zobacz też