Konfigurace koncových bodů veřejné a privátní sítě Synchronizace souborů Azure
Článek
Azure Files a Synchronizace souborů Azure poskytují dva hlavní typy koncových bodů pro přístup ke sdíleným složkám Azure:
Veřejné koncové body, které mají veřejnou IP adresu a jsou přístupné odkudkoli na světě.
Privátní koncové body, které existují ve virtuální síti a mají privátní IP adresu z adresního prostoru dané virtuální sítě.
U služby Soubory Azure i Synchronizace souborů Azure řídí objekty správy Azure (účet úložiště a služba synchronizace úložiště) veřejné i privátní koncové body. Účet úložiště je konstruktor správy, který představuje sdílený fond úložiště, ve kterém můžete nasadit více sdílených složek a také další prostředky úložiště, jako jsou objekty blob nebo fronty. Služba synchronizace úložiště je konstruktor správy, který představuje registrované servery, což jsou souborové servery Windows se zavedeným vztahem důvěryhodnosti s Synchronizace souborů Azure a skupiny synchronizace, které definují topologii vztahu synchronizace.
Tento článek se zaměřuje na konfiguraci koncových bodů sítě pro službu Azure Files i pro Synchronizace souborů Azure. Další informace o tom, jak nakonfigurovat koncové body sítě pro přímý přístup ke sdíleným složkám Azure místo ukládání do mezipaměti v místním prostředí s Synchronizace souborů Azure najdete v tématu Konfigurace koncových bodů sítě služby Azure Files.
Máte předplatné Azure. Pokud ještě nemáte předplatné, vytvořte si bezplatný účet , než začnete.
Už jste vytvořili sdílenou složku Azure v účtu úložiště, ke kterému se chcete připojit z místního prostředí. Informace o tom, jak vytvořit sdílenou složku Azure, najdete v tématu Vytvoření sdílené složky Azure.
Povolíte provoz domény do následujících koncových bodů, viz koncové body služby Azure:
Když pro prostředek Azure vytvoříte privátní koncový bod, nasadí se následující prostředky:
Privátní koncový bod: Prostředek Azure představující privátní koncový bod pro účet úložiště nebo službu synchronizace úložiště. Představte si to jako prostředek, který propojuje váš prostředek Azure a síťové rozhraní.
Síťové rozhraní: Síťové rozhraní, které udržuje privátní IP adresu v rámci zadané virtuální sítě nebo podsítě. Jedná se o úplně stejný prostředek, který se nasadí při nasazení virtuálního počítače, ale místo přiřazení k virtuálnímu počítači vlastní privátní koncový bod.
Privátní zóna DNS: Pokud jste ještě nikdy nenasadili privátní koncový bod pro tuto virtuální síť, nasadí se pro vaši virtuální síť nová zóna privátního DNS. Vytvoří se také záznam DNS A pro prostředek Azure v této zóně DNS. Pokud jste už v této virtuální síti nasadili privátní koncový bod, přidá se do existující zóny DNS nový záznam A pro prostředek Azure. Nasazení zóny DNS je volitelné, ale důrazně doporučujeme zjednodušit požadovanou správu DNS.
Poznámka:
Tento článek používá přípony DNS pro veřejné oblasti Azure, core.windows.net pro účty úložiště a afs.azure.net pro služby Synchronizace úložiště. Platí to také pro suverénní cloudy Azure, jako je cloud Azure US Government, a stačí nahradit příslušné přípony pro vaše prostředí.
Přejděte do účtu úložiště, pro který chcete vytvořit privátní koncový bod. V nabídce služby v části Zabezpečení a sítě vyberte Sítě, připojení privátního koncového bodu a potom + Privátní koncový bod a vytvořte nový privátní koncový bod.
Výsledný průvodce má k dokončení více stránek.
V okně Základy vyberte požadované předplatné, skupinu prostředků, název, název síťového rozhraní a oblast pro váš privátní koncový bod. Může to být cokoli, nemusí se nijak shodovat s účtem úložiště, i když musíte vytvořit privátní koncový bod ve stejné oblasti jako virtuální síť, ve které chcete privátní koncový bod vytvořit. Pak vyberte Další: Prostředek.
V okně Prostředek vyberte soubor pro cílový dílčí prostředek. Pak vyberte Další: Virtuální síť.
Okno Virtuální síť umožňuje vybrat konkrétní virtuální síť a podsíť, ke které chcete přidat privátní koncový bod. Vyberte dynamické nebo statické přidělování IP adres pro nový privátní koncový bod. Pokud vyberete statickou adresu, budete také muset zadat název a privátní IP adresu. Volitelně můžete také zadat skupinu zabezpečení aplikace. Až budete hotovi, vyberte Další: DNS.
Okno DNS obsahuje informace pro integraci privátního koncového bodu s privátní zónou DNS. Ujistěte se, že je předplatné a skupina prostředků správné, a pak vyberte Další: Značky.
Volitelně můžete použít značky pro kategorizaci prostředků, jako je použití názvu Prostředí a hodnota Test u všech testovacích prostředků. V případě potřeby zadejte páry název/hodnota a pak vyberte Další: Zkontrolovat a vytvořit.
Výběrem možnosti Vytvořit vytvořte privátní koncový bod.
Pokud máte virtuální počítač uvnitř virtuální sítě nebo jste nakonfigurovali předávání DNS, jak je popsáno v tématu Konfigurace předávání DNS pro službu Azure Files, můžete otestovat, že je váš privátní koncový bod správně nastavený spuštěním následujících příkazů z PowerShellu, příkazového řádku nebo terminálu (funguje pro Windows, Linux nebo macOS). Musíte nahradit <storage-account-name> odpovídajícím názvem účtu úložiště:
Pokud všechno funguje úspěšně, měli byste vidět následující výstup, kde 192.168.0.5 je privátní IP adresa privátního koncového bodu ve vaší virtuální síti (výstup zobrazený pro Windows):
Pokud chcete pro svůj účet úložiště vytvořit privátní koncový bod, musíte nejprve získat odkaz na váš účet úložiště a podsíť virtuální sítě, do které chcete přidat privátní koncový bod. Nahradit <storage-account-resource-group-name>, , <vnet-resource-group-name><storage-account-name>, <vnet-name>a <vnet-subnet-name> níže:
$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
}
Pokud chcete vytvořit privátní koncový bod, musíte vytvořit připojení služby private link k účtu úložiště. Připojení služby Private Link je vstupem pro vytvoření privátního koncového bodu.
# 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
Vytvoření privátní zóny DNS Azure umožňuje původní název účtu úložiště, například storageaccount.file.core.windows.net přeložit na privátní IP adresu uvnitř virtuální sítě. I když je z pohledu vytvoření privátního koncového bodu volitelné, je explicitně vyžadováno pro přímé připojení sdílené složky Azure pomocí objektu zabezpečení uživatele AD nebo přístupu přes rozhraní 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
}
Teď, když máte odkaz na privátní zónu DNS, musíte pro svůj účet úložiště vytvořit záznam A.
Pokud máte virtuální počítač ve vaší virtuální síti nebo jste nakonfigurovali přesměrování DNS, jak je popsáno v konfiguraci předávání DNS pro službu Azure Files, můžete otestovat, že je váš privátní koncový bod správně nastavený pomocí následujících příkazů:
Pokud všechno funguje úspěšně, měli byste vidět následující výstup, kde 192.168.0.5 je privátní IP adresa privátního koncového bodu ve vaší virtuální síti:
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
Pokud chcete pro svůj účet úložiště vytvořit privátní koncový bod, musíte nejprve získat odkaz na váš účet úložiště a podsíť virtuální sítě, do které chcete přidat privátní koncový bod. Nahradit <storage-account-resource-group-name>, , <vnet-resource-group-name><storage-account-name>, <vnet-name>a <vnet-subnet-name> níže:
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 '"')
Pokud chcete vytvořit privátní koncový bod, musíte nejdřív zajistit, aby zásady sítě privátních koncových bodů podsítě byly zakázané. Potom můžete pomocí příkazu vytvořit privátní koncový bod az network private-endpoint create .
Vytvoření privátní zóny DNS Azure umožňuje původní název účtu úložiště, například storageaccount.file.core.windows.net přeložit na privátní IP adresu uvnitř virtuální sítě. I když je z pohledu vytvoření privátního koncového bodu nepovinný, je explicitně potřeba pro připojení sdílené složky Azure pomocí objektu zabezpečení uživatele AD nebo přístupu přes rozhraní 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
Teď, když máte odkaz na privátní zónu DNS, musíte pro svůj účet úložiště vytvořit záznam 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
Pokud máte virtuální počítač ve vaší virtuální síti nebo jste nakonfigurovali přesměrování DNS, jak je popsáno v konfiguraci předávání DNS pro službu Azure Files, můžete otestovat, že je váš privátní koncový bod správně nastavený pomocí následujících příkazů:
Pokud všechno funguje úspěšně, měli byste vidět následující výstup, kde 192.168.0.5 je privátní IP adresa privátního koncového bodu ve vaší virtuální síti:
Přejděte do Centra služby Private Link tak , že do panelu hledání v horní části webu Azure Portal zadáte Private Link . V obsahu centra Private Link vyberte privátní koncové body a pak + Přidat a vytvořte nový privátní koncový bod.
Výsledný průvodce má k dokončení více stránek.
V okně Základy vyberte požadovanou skupinu prostředků, název a oblast vašeho privátního koncového bodu. Může to být cokoli, nemusí se nijak shodovat se službou synchronizace úložiště, i když musíte privátní koncový bod vytvořit ve stejné oblasti jako virtuální síť, ve které chcete privátní koncový bod vytvořit.
V okně Prostředek vyberte přepínač Pro připojení k prostředku Azure v adresáři. V části Typ prostředku jako typ prostředku vyberte Microsoft.StorageSync/storageSyncServices .
Okno Konfigurace umožňuje vybrat konkrétní virtuální síť a podsíť, ke které chcete přidat privátní koncový bod. Vyberte stejnou virtuální síť jako virtuální síť, kterou jste použili pro výše uvedený účet úložiště. Okno Konfigurace obsahuje také informace pro vytvoření nebo aktualizaci zóny privátního DNS.
Vyberte Zkontrolovat a vytvořit privátní koncový bod.
Spuštěním následujících příkazů PowerShellu můžete otestovat, že je váš privátní koncový bod správně nastavený.
Pokud všechno funguje správně, měli byste vidět následující výstup, kde 192.168.1.4, 192.168.1.5192.168.1.6a 192.168.1.7 jsou privátní IP adresy přiřazené k privátnímu koncovému bodu:
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
Pokud chcete pro službu synchronizace úložiště vytvořit privátní koncový bod, musíte nejprve získat odkaz na službu synchronizace úložiště. Nezapomeňte nahradit <storage-sync-service-resource-group> a <storage-sync-service> nahradit správné hodnoty pro vaše prostředí. Následující příkazy PowerShellu předpokládají, že jste už naplnili informace o virtuální síti.
$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
}
Pokud chcete vytvořit privátní koncový bod, musíte vytvořit připojení služby privátního propojení ke službě synchronizace úložiště. Připojení privátního propojení je vstupem pro vytvoření privátního koncového bodu.
# 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
Vytvoření privátní zóny DNS Azure umožňuje překlad názvů hostitelů pro službu synchronizace úložiště, jako mysssmanagement.westus2.afs.azure.netje například , na správné privátní IP adresy služby synchronizace úložiště uvnitř virtuální sítě. I když je z hlediska vytváření privátního koncového bodu nepovinný, vyžaduje se explicitně, aby agent Synchronizace souborů Azure přistupoval ke službě synchronizace úložiště.
# 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 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
}
Teď, když máte odkaz na privátní zónu DNS, musíte pro službu synchronizace úložiště vytvořit záznam A.
Pokud chcete pro službu synchronizace úložiště vytvořit privátní koncový bod, musíte nejprve získat odkaz na službu synchronizace úložiště. Nezapomeňte nahradit <storage-sync-service-resource-group> a <storage-sync-service> nahradit správné hodnoty pro vaše prostředí. Následující příkazy rozhraní příkazového řádku předpokládají, že jste už naplnili informace o virtuální síti.
Pokud chcete vytvořit privátní koncový bod, musíte nejdřív zajistit, aby zásady sítě privátních koncových bodů podsítě byly zakázané. Potom můžete pomocí příkazu vytvořit privátní koncový bod az network private-endpoint create .
Vytvoření privátní zóny DNS Azure umožňuje překlad názvů hostitelů pro službu synchronizace úložiště, jako mysssmanagement.westus2.afs.azure.netje například , na správné privátní IP adresy služby synchronizace úložiště uvnitř virtuální sítě. I když je z hlediska vytváření privátního koncového bodu nepovinný, vyžaduje se explicitně, aby agent Synchronizace souborů Azure přistupoval ke službě synchronizace úložiště.
# 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:
# privatelinke.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
Teď, když máte odkaz na privátní zónu DNS, musíte pro službu synchronizace úložiště vytvořit záznam 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
Omezení přístupu k veřejným koncovým bodům
Přístup k veřejným koncovým bodům účtu úložiště i službám synchronizace úložiště můžete omezit. Omezení přístupu k veřejnému koncovému bodu poskytuje dodatečné zabezpečení tím, že zajišťuje, aby síťové pakety byly přijímány pouze ze schválených umístění.
Omezení přístupu k veřejnému koncovému bodu účtu úložiště
Omezení přístupu k veřejnému koncovému bodu se provádí pomocí nastavení brány firewall účtu úložiště. Obecně platí, že většina zásad brány firewall pro účet úložiště omezí síťový přístup k jedné nebo více virtuálním sítím. Existují dva přístupy k omezení přístupu k účtu úložiště na virtuální síť:
Vytvořte jeden nebo více privátních koncových bodů pro účet úložiště a zakažte přístup k veřejnému koncovému bodu. Tím se zajistí, že přístup ke sdíleným složkám Azure v rámci účtu úložiště bude mít přístup jenom provoz pocházející z požadovaných virtuálních sítí.
Omezte veřejný koncový bod na jednu nebo více virtuálních sítí. Funguje to pomocí funkce virtuální sítě označované jako koncové body služby. Když omezíte provoz na účet úložiště prostřednictvím koncového bodu služby, stále přistupujete k účtu úložiště přes veřejnou IP adresu.
Poznámka:
V účtu úložiště musí být vybraná možnost Povolit službám Azure v seznamu důvěryhodných služeb přístup k této výjimce účtu úložiště, aby služby Microsoft důvěryhodné první strany, jako je například Synchronizace souborů Azure pro přístup k účtu úložiště. Další informace najdete v tématu Udělení přístupu k důvěryhodným službám Azure.
Udělení přístupu k důvěryhodným službám Azure a zakázání přístupu k veřejnému koncovému bodu účtu úložiště
Pokud je přístup k veřejnému koncovému bodu zakázaný, bude k účtu úložiště stále možné přistupovat prostřednictvím jeho privátních koncových bodů. Jinak budou zamítnuty platné požadavky na veřejný koncový bod účtu úložiště.
Přejděte do účtu úložiště, pro který chcete omezit veškerý přístup k veřejnému koncovému bodu. V obsahu účtu úložiště vyberte Sítě.
V horní části stránky vyberte přepínač Povoleno z vybraných virtuálních sítí a IP adres . Tím se zruší skrytí řady nastavení pro řízení omezení veřejného koncového bodu. Výběrem možnosti Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště povolte důvěryhodným služby Microsoft první strany, jako je Synchronizace souborů Azure pro přístup k účtu úložiště.
Následující příkaz PowerShellu zakáže veškerý provoz do veřejného koncového bodu účtu úložiště. Všimněte si, že tento příkaz má -Bypass parametr nastavený na AzureServices. To umožní důvěryhodným službám první strany, jako je Synchronizace souborů Azure, přístup k účtu úložiště prostřednictvím veřejného koncového bodu.
# 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
Následující příkaz rozhraní příkazového řádku zakáže veškerý provoz do veřejného koncového bodu účtu úložiště. Všimněte si, že tento příkaz má -bypass parametr nastavený na AzureServices. To umožní důvěryhodným službám první strany, jako je Synchronizace souborů Azure, přístup k účtu úložiště prostřednictvím veřejného koncového bodu.
# 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
Udělení přístupu k důvěryhodným službám Azure a omezení přístupu k veřejnému koncovému bodu účtu úložiště na konkrétní virtuální sítě
Když omezíte účet úložiště na konkrétní virtuální sítě, povolíte požadavky na veřejný koncový bod v rámci zadaných virtuálních sítí. Funguje to pomocí funkce virtuální sítě označované jako koncové body služby. Můžete ho použít s privátními koncovými body nebo bez.
Přejděte na účet úložiště, pro který chcete omezit veřejný koncový bod na konkrétní virtuální sítě. V obsahu účtu úložiště vyberte Sítě.
V horní části stránky vyberte přepínač Povoleno z vybraných virtuálních sítí a IP adres . Tím se zruší skrytí řady nastavení pro řízení omezení veřejného koncového bodu. Vyberte +Přidat existující virtuální síť a vyberte konkrétní virtuální síť, která by měla mít povolený přístup k účtu úložiště prostřednictvím veřejného koncového bodu. Vyberte virtuální síť a podsíť pro tuto virtuální síť a pak vyberte Povolit.
Výběrem možnosti Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště povolte důvěryhodným služby Microsoft první strany, jako je Synchronizace souborů Azure pro přístup k účtu úložiště.
Abychom omezili přístup k veřejnému koncovému bodu účtu úložiště na konkrétní virtuální sítě pomocí koncových bodů služby, musíme nejprve shromáždit informace o účtu úložiště a virtuální síti. <storage-account-resource-group>Vyplňte a <storage-account-name><vnet-resource-group-name><vnet-name><subnet-name> shromážděte tyto informace.
Aby se provoz z virtuální sítě umožnil síťovým prostředkům infrastruktury Azure dostat do veřejného koncového bodu účtu úložiště, musí Microsoft.Storage mít podsíť virtuální sítě vystavený koncový bod služby. Následující příkazy PowerShellu Microsoft.Storage přidají koncový bod služby do podsítě, pokud tam ještě není.
Abychom omezili přístup k veřejnému koncovému bodu účtu úložiště na konkrétní virtuální sítě pomocí koncových bodů služby, musíme nejprve shromáždit informace o účtu úložiště a virtuální síti. <storage-account-resource-group>Vyplňte a <storage-account-name><vnet-resource-group-name><vnet-name><subnet-name> shromážděte tyto informace.
Aby se provoz z virtuální sítě umožnil síťovým prostředkům infrastruktury Azure dostat do veřejného koncového bodu účtu úložiště, musí Microsoft.Storage mít podsíť virtuální sítě vystavený koncový bod služby. Následující příkazy rozhraní příkazového řádku přidají Microsoft.Storage koncový bod služby do podsítě, pokud tam ještě není.
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
Posledním krokem při omezení provozu na účet úložiště je vytvoření síťového pravidla a přidání do sady pravidel sítě účtu úložiště.
Zakázání přístupu k veřejnému koncovému bodu služby synchronizace úložiště
Synchronizace souborů Azure umožňuje omezit přístup pouze k určitým virtuálním sítím prostřednictvím privátních koncových bodů; Synchronizace souborů Azure nepodporuje koncové body služby pro omezení přístupu k veřejnému koncovému bodu na konkrétní virtuální sítě. To znamená, že dva stavy veřejného koncového bodu služby synchronizace úložiště jsou povolené a zakázané.
Důležité
Před zakázáním přístupu k veřejnému koncovému bodu musíte vytvořit privátní koncový bod. Pokud je veřejný koncový bod zakázaný a není nakonfigurovaný žádný privátní koncový bod, synchronizace nemůže fungovat.
Přejděte do služby synchronizace úložiště a v levém navigačním panelu vyberte Nastavení>sítě.
V části Povolit přístup vyberte pouze privátní koncové body.
Ze seznamu připojení privátního koncového bodu vyberte privátní koncový bod.
Pokud chcete zakázat přístup k veřejnému koncovému bodu služby synchronizace úložiště, nastavte incomingTrafficPolicy vlastnost služby synchronizace úložiště na AllowVirtualNetworksOnlyhodnotu . Pokud chcete povolit přístup k veřejnému koncovému bodu služby synchronizace úložiště, nastavte incomingTrafficPolicy místo AllowAllTraffic toho. Nezapomeňte nahradit <storage-sync-service-resource-group> a <storage-sync-service> použít vlastní hodnoty.
Azure CLI nepodporuje nastavení incomingTrafficPolicy vlastnosti ve službě synchronizace úložiště. Pokud chcete získat pokyny k zakázání veřejného koncového bodu služby synchronizace úložiště, vyberte kartu Azure PowerShellu.
Azure Policy
Azure Policy pomáhá vynucovat standardy organizace a vyhodnocovat dodržování předpisů vůči těmto standardům ve velkém měřítku. Azure Files a Synchronizace souborů Azure zpřístupňují několik užitečných zásad sítě pro audit a nápravu, které vám pomůžou monitorovat a automatizovat nasazení.
Zásady auditují vaše prostředí a upozorňují vás, pokud se vaše účty úložiště nebo služby synchronizace úložiště liší od definovaného chování. Pokud je například veřejný koncový bod povolený, když byla zásada nastavená tak, aby byly veřejné koncové body zakázané. Zásady můžete dále upravovat nebo nasazovat tak, aby byly krok dál a proaktivně upravovány prostředky (jako je služba synchronizace úložiště) nebo nasazovat prostředky (například privátní koncové body) tak, aby byly v souladu se zásadami.
Pro soubory Azure a Synchronizace souborů Azure jsou k dispozici následující předem definované zásady:
Přístup k veřejné síti by měl být pro Synchronizace souborů Azure zakázaný.
Audit
Soubory Azure
Účet úložiště potřebuje aspoň jeden privátní koncový bod. Další informace najdete v tématu Vytvoření privátního koncového bodu účtu úložiště.
Účet úložiště by měl používat připojení privátního propojení
Audit
Synchronizace souborů Azure
Služba synchronizace úložiště potřebuje aspoň jeden privátní koncový bod. Další informace najdete v tématu Vytvoření privátního koncového bodu služby synchronizace úložiště.
Synchronizace souborů Azure by měl používat privátní propojení
Změnit
Synchronizace souborů Azure
Zakažte veřejný koncový bod služby synchronizace úložiště.
Úprava – Konfigurace Synchronizace souborů Azure pro zakázání přístupu k veřejné síti
Nasadit
Synchronizace souborů Azure
Nasaďte privátní koncový bod pro službu synchronizace úložiště.
Konfigurace Synchronizace souborů Azure s privátními koncovými body
Nasadit
Synchronizace souborů Azure
Nasaďte záznam A do privatelink.afs.azure.net zóny DNS.
Konfigurace Synchronizace souborů Azure pro použití privátních zón DNS
Pokud chcete nastavit zásady nasazení privátního koncového bodu, přejděte na web Azure Portal a vyhledejte zásady. Centrum Azure Policy by mělo být hlavním výsledkem. V obsahu Centra zásad přejděte k definicím vytváření>. Podokno Výsledné definice obsahuje předem definované zásady napříč všemi službami Azure. Pokud chcete najít konkrétní zásadu, vyberte kategorii Úložiště ve filtru kategorií nebo vyhledejte konfigurovat Synchronizace souborů Azure s privátními koncovými body. Vyberte ... a Přiřaďte k vytvoření nové zásady z definice.
Okno Základyv Průvodci přiřazením zásad vám umožní nastavit obor, seznam vyloučení prostředků nebo skupin prostředků a dát zásadám popisný název, který vám pomůže rozlišit. Aby zásady fungovaly, nemusíte je upravovat, ale pokud chcete provést změny. Výběrem možnosti Další přejděte na stránku Parametry.
V okně Parametry vyberte ... vedle rozevíracího seznamu privateEndpointSubnetId a vyberte virtuální síť a podsíť, kde se mají nasadit privátní koncové body pro prostředky služby synchronizace úložiště. Načtení dostupných virtuálních sítí ve vašem předplatném může trvat několik sekund. Vyberte příslušnou virtuální síť nebo podsíť pro vaše prostředí a klikněte na Vybrat. Výběrem možnosti Další přejděte do okna Náprava .
Aby bylo možné privátní koncový bod nasadit při identifikaci služby synchronizace úložiště bez privátního koncového bodu, musíte na stránce Náprava vybrat úlohu Vytvořit nápravu. Nakonec vyberte Zkontrolovat a vytvořit, abyste zkontrolovali přiřazení zásady a vytvořili ho.
Výsledné přiřazení zásad se bude spouštět pravidelně a nemusí se spouštět okamžitě po vytvoření.