Az Azure Files két fő végponttípust biztosít az Azure-fájlmegosztások eléréséhez:
Nyilvános végpontok, amelyek nyilvános IP-címmel rendelkeznek, és a világ bármely pontjáról elérhetők.
Privát végpontok, amelyek egy virtuális hálózaton belül léteznek, és a virtuális hálózat címteréből származó privát IP-címmel rendelkeznek.
Nyilvános és privát végpontok léteznek az Azure Storage-fiókban. A tárfiókok olyan felügyeleti szerkezetek, amelyek egy megosztott tárolókészletet jelölnek, amelyben több fájlmegosztást, valamint más tárolási erőforrásokat, például blobtárolókat vagy üzenetsorokat helyezhet üzembe.
Ez a cikk azt ismerteti, hogyan konfigurálhatja a tárfiók végpontjait az Azure-fájlmegosztás közvetlen elérésére. A cikk nagy része arra is vonatkozik, hogy az Azure File Sync hogyan működik együtt a tárfiók nyilvános és privát végpontjaival. Az Azure File Sync hálózati szempontjaival kapcsolatos további információkért tekintse meg az Azure File Sync proxy- és tűzfalbeállítások konfigurálását ismertető témakört.
Ez a cikk feltételezi, hogy már létrehozott egy Azure-előfizetést. Ha még nem rendelkezik előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .
Ez a cikk feltételezi, hogy már létrehozott egy Azure-fájlmegosztást egy helyszíni tárfiókban, amelyhez csatlakozni szeretne. Az Azure-fájlmegosztások létrehozásáról az Azure-fájlmegosztás létrehozása című témakörben olvashat.
A végpontokat úgy konfigurálhatja, hogy korlátozzák a tárfiókhoz való hálózati hozzáférést. A tárfiókok virtuális hálózathoz való hozzáférésének korlátozására két módszer létezik:
A nyilvános végpont korlátozása egy vagy több virtuális hálózatra. Ez a virtuális hálózat szolgáltatásvégpontoknak nevezett képességével működik. Ha szolgáltatásvégponton keresztül korlátozza a tárfiókra irányuló forgalmat, akkor is a nyilvános IP-címen keresztül éri el a tárfiókot, de a hozzáférés csak a konfigurációban megadott helyekről lehetséges.
Privát végpont létrehozása
Amikor privát végpontot hoz létre a tárfiókhoz, a következő Azure-erőforrások lesznek üzembe helyezve:
Privát végpont: A tárfiók privát végpontját képviselő Azure-erőforrás. Ezt úgy tekintheti, mint egy erőforrást, amely egy tárfiókot és egy hálózati adaptert csatlakoztat.
Hálózati adapter (NIC): Az a hálózati adapter, amely a megadott virtuális hálózaton/alhálózaton belül privát IP-címet tart fenn. Ez pontosan ugyanaz az erőforrás, amely virtuális gép (VM) üzembe helyezésekor lesz üzembe helyezve, azonban ahelyett, hogy egy virtuális géphez rendelne hozzá, az a privát végpont tulajdonában van.
Privát tartománynévrendszer (DNS)-zóna: Ha korábban még nem telepített privát végpontot ehhez a virtuális hálózathoz, a rendszer egy új privát DNS-zónát helyez üzembe a virtuális hálózaton. Létrejön egy DNS A rekord is ebben a DNS-zónában lévő tárfiókhoz. Ha már üzembe helyezett egy privát végpontot ebben a virtuális hálózaton, a tárfiók új A rekordja lesz hozzáadva a meglévő DNS-zónához. A DNS-zóna üzembe helyezése nem kötelező. Azonban erősen ajánlott és kötelező, ha Azure-fájlmegosztásait egy AD-szolgáltatásnévvel vagy a FileREST API használatával csatlakoztatja.
Feljegyzés
Ez a cikk a tárfiók DNS-utótagját használja az Azure nyilvános régióihoz. core.windows.net Ez a megjegyzés olyan Azure Szuverén felhőkre is vonatkozik, mint az Azure US Government felhő és a 21Vianet-felhő által üzemeltetett Microsoft Azure. Csak cserélje le a környezetének megfelelő utótagokat.
Lépjen arra a tárfiókra, amelyhez privát végpontot szeretne létrehozni. A tárfiók tartalomjegyzékében válassza a Hálózatkezelés, a Privát végpont kapcsolatok, majd a + Privát végpont lehetőséget egy új privát végpont létrehozásához.
Az eredményként kapott varázsló több oldalból áll.
Az Alapszintű beállítások panelen válassza ki a kívánt előfizetést, erőforráscsoportot, nevet, hálózati adapternevet és régiót a privát végponthoz. Ezek lehetnek tetszőlegesek, nem kell semmilyen módon megegyezniük a tárfiókokkal, bár a privát végpontot ugyanabban a régióban kell létrehoznia, amelyben a privát végpontot létre szeretné hozni. Ezután válassza a Tovább: Erőforrás lehetőséget.
Az Erőforrás panelen válassza ki a cél alerőforráshoz tartozó fájlt. Ezután válassza a Tovább: Virtuális hálózat lehetőséget.
A Virtuális hálózat panelen kiválaszthatja azt a virtuális hálózatot és alhálózatot, amelybe a privát végpontot hozzá szeretné adni. Válassza ki az új privát végpont dinamikus vagy statikus IP-címfoglalását. Ha statikus beállítást választ, meg kell adnia egy nevet és egy magánhálózati IP-címet is. Igény szerint alkalmazásbiztonsági csoportot is megadhat. Ha végzett, válassza a Tovább: DNS lehetőséget.
A DNS panel a privát végpont privát DNS-zónával való integrálására vonatkozó információkat tartalmazza. Győződjön meg arról, hogy az előfizetés és az erőforráscsoport helyes, majd válassza a Tovább: Címkék lehetőséget.
Igény szerint címkéket is alkalmazhat az erőforrások kategorizálásához, például alkalmazhatja a Környezet nevet és a Teszt értéket az összes tesztelési erőforrásra. Szükség esetén adja meg a név-érték párokat, majd válassza a Tovább: Véleményezés + létrehozás lehetőséget.
Kattintson a Véleményezés + létrehozás gombra a privát végpont létrehozásához.
Ha privát végpontot szeretne létrehozni a tárfiókhoz, először be kell szereznie egy hivatkozást a tárfiókra és arra a virtuális hálózati alhálózatra, amelyhez hozzá szeretné adni a privát végpontot. Cserélje le <storage-account-resource-group-name>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, és <vnet-subnet-name> az alábbi:
$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
}
Privát végpont létrehozásához létre kell hoznia egy privát kapcsolati szolgáltatáskapcsolatot a tárfiókhoz. A privát kapcsolat szolgáltatáskapcsolat a privát végpont létrehozásának bemenete.
# 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
Az Azure-beli privát DNS-zóna létrehozása lehetővé teszi a tárfiók eredeti nevét, például storageaccount.file.core.windows.net feloldható a virtuális hálózaton belüli privát IP-címre. Bár a privát végpontok létrehozása szempontjából nem kötelező, kifejezetten szükséges az Azure-fájlmegosztás közvetlen csatlakoztatásához egy AD-felhasználónév használatával, vagy a REST API-val való hozzáféréshez.
# 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
}
Most, hogy már rendelkezik a privát DNS-zónára mutató hivatkozással, létre kell hoznia egy A rekordot a tárfiókhoz.
Ha privát végpontot szeretne létrehozni a tárfiókhoz, először be kell szereznie egy hivatkozást a tárfiókra és arra a virtuális hálózati alhálózatra, amelyhez hozzá szeretné adni a privát végpontot. Cserélje le <storage-account-resource-group-name>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, és <vnet-subnet-name> az alábbi:
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 '"')
Privát végpont létrehozásához először meg kell győződnie arról, hogy az alhálózat privát végpontjának hálózati házirendje le van tiltva. Ezután létrehozhat egy privát végpontot a az network private-endpoint create paranccsal.
Az Azure-beli privát DNS-zóna létrehozása lehetővé teszi a tárfiók eredeti nevét, például storageaccount.file.core.windows.net feloldható a virtuális hálózaton belüli privát IP-címre. Bár a privát végpont létrehozása szempontjából nem kötelező, kifejezetten szükséges az Azure-fájlmegosztás csatlakoztatása egy AD-felhasználónévvel vagy a REST API-val való hozzáféréshez.
# 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
Most, hogy már rendelkezik a privát DNS-zónára mutató hivatkozással, létre kell hoznia egy A rekordot a tárfiókhoz.
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
Ha virtuális géppel rendelkezik a virtuális hálózaton belül, vagy konfigurálta a DNS-továbbítást az Azure Files DNS-továbbításának konfigurálása című cikkben leírtak szerint, tesztelheti, hogy a privát végpont megfelelően van-e beállítva. Futtassa a következő parancsokat a PowerShellből, a parancssorból vagy a terminálból (Windows, Linux vagy macOS rendszeren működik). A megfelelő tárfiók nevére kell cserélnie <storage-account-name> :
Ha sikeres, a következő kimenetnek kell megjelennie, ahol 192.168.0.5 a virtuális hálózat magánvégpontjának privát IP-címe látható (a kimenet Windows esetén látható):
Ha a virtuális hálózaton belül virtuális géppel rendelkezik, vagy a DNS-továbbítást az Azure Files DNS-továbbításának konfigurálásával konfigurálta, az alábbi parancsok futtatásával tesztelheti, hogy a privát végpont megfelelően van-e beállítva:
Ha sikeres, a következő kimenetnek kell megjelennie, ahol 192.168.0.5 a virtuális hálózat privát végpontjának privát IP-címe található:
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
Ha a virtuális hálózaton belül virtuális géppel rendelkezik, vagy a DNS-továbbítást az Azure Files DNS-továbbításának konfigurálásával konfigurálta, az alábbi parancsok futtatásával tesztelheti, hogy a privát végpont megfelelően van-e beállítva:
Ha minden sikeres, a következő kimenetnek kell megjelennie, ahol 192.168.0.5 a virtuális hálózat privát végpontjának privát IP-címe található. Az elérési út helyett továbbra is a fájlmegosztás csatlakoztatására kell használnia storageaccount.file.core.windows.netprivatelink .
A nyilvános végpont hozzáférésének korlátozásához először le kell tiltania a nyilvános végponthoz való általános hozzáférést. A nyilvános végponthoz való hozzáférés letiltása nem befolyásolja a privát végpontokat. A nyilvános végpont letiltása után kiválaszthatja azokat a hálózatokat vagy IP-címeket, amelyek továbbra is hozzáférhetnek. A tárfiókok legtöbb tűzfalszabályzata általában egy vagy több virtuális hálózat hálózati hozzáférését korlátozza.
A nyilvános végponthoz való hozzáférés letiltása
Ha a nyilvános végponthoz való hozzáférés le van tiltva, a tárfiók továbbra is elérhető a privát végpontokon keresztül. Ellenkező esetben a tárfiók nyilvános végpontjára irányuló érvényes kérelmeket a rendszer elutasítja, kivéve, ha kifejezetten engedélyezett forrásból származnak.
Lépjen arra a tárfiókra, amelyhez korlátozni szeretné a nyilvános végponthoz való hozzáférést. A tárfiók tartalomjegyzékében válassza a Hálózatkezelés lehetőséget.
A lap tetején válassza az Engedélyezve lehetőséget a kijelölt virtuális hálózatok és IP-címek választógombja közül. Ez feloldja a nyilvános végpont korlátozásának szabályozására szolgáló számos beállítást. Válassza a Megbízható szolgáltatások listájában szereplő Azure-szolgáltatások hozzáférésének engedélyezése a tárfiókhoz, hogy a megbízható, első féltől származó Microsoft-szolgáltatások, például az Azure File Sync hozzáférjen a tárfiókhoz.
Az alábbi PowerShell-parancs megtagadja a tárfiók nyilvános végpontjára történő összes forgalmat. Vegye figyelembe, hogy ennek a parancsnak a paramétere a -Bypass következő.AzureServices Ez lehetővé teszi, hogy a megbízható, első féltől származó szolgáltatások, például az Azure File Sync hozzáférjenek a tárfiókhoz a nyilvános végponton keresztül.
# 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
Az alábbi CLI-parancs megtagadja a tárfiók nyilvános végpontjára történő összes forgalmat. Vegye figyelembe, hogy ennek a parancsnak a paramétere a -bypass következő.AzureServices Ez lehetővé teszi, hogy a megbízható, első féltől származó szolgáltatások, például az Azure File Sync hozzáférjenek a tárfiókhoz a nyilvános végponton keresztül.
# 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
Nyilvános végpont hozzáférésének korlátozása adott virtuális hálózatokhoz
Ha a tárfiókot meghatározott virtuális hálózatokra korlátozza, engedélyezi a nyilvános végpontra irányuló kéréseket a megadott virtuális hálózatokon belülről. Ez a virtuális hálózat szolgáltatásvégpontoknak nevezett képességével működik. Ez privát végpontokkal vagy anélkül is használható.
Keresse meg azt a tárfiókot, amelyhez a nyilvános végpontot adott virtuális hálózatokra szeretné korlátozni. A tárfiók tartalomjegyzékében válassza a Hálózatkezelés lehetőséget.
A lap tetején válassza az Engedélyezve lehetőséget a kijelölt virtuális hálózatok és IP-címek választógombja közül. Ez feloldja a nyilvános végpont korlátozásának szabályozására szolgáló számos beállítást. A +Meglévő virtuális hálózat hozzáadása lehetőséget választva válassza ki azt a virtuális hálózatot, amely számára engedélyezni kell a tárfiók nyilvános végponton keresztüli elérését. Válasszon ki egy virtuális hálózatot és egy alhálózatot a virtuális hálózathoz, majd válassza az Engedélyezés lehetőséget.
Válassza a Megbízható szolgáltatások listájában szereplő Azure-szolgáltatások hozzáférésének engedélyezése a tárfiókhoz, hogy a megbízható, első féltől származó Microsoft-szolgáltatások, például az Azure File Sync hozzáférjen a tárfiókhoz.
Ahhoz, hogy a tárfiók nyilvános végpontja elérhető legyen adott virtuális hálózatokhoz szolgáltatásvégpontok használatával, először adatokat kell gyűjtenünk a tárfiókról és a virtuális hálózatról. Töltse ki, <storage-account-resource-group><storage-account-name>majd <vnet-resource-group-name><vnet-name><subnet-name> gyűjtse össze ezeket az adatokat.
Ahhoz, hogy a virtuális hálózatról érkező forgalmat az Azure network fabric a tárfiók nyilvános végpontjához érje, a virtuális hálózat alhálózatának közzé kell tennie a Microsoft.Storage szolgáltatásvégpontot. Az alábbi PowerShell-parancsok hozzáadják a Microsoft.Storage szolgáltatásvégpontot az alhálózathoz, ha még nincs ott.
Ahhoz, hogy a tárfiók nyilvános végpontja elérhető legyen adott virtuális hálózatokhoz szolgáltatásvégpontok használatával, először adatokat kell gyűjtenünk a tárfiókról és a virtuális hálózatról. Töltse ki, <storage-account-resource-group><storage-account-name>majd <vnet-resource-group-name><vnet-name><subnet-name> gyűjtse össze ezeket az adatokat.
Ahhoz, hogy a virtuális hálózatról érkező forgalmat az Azure network fabric a tárfiók nyilvános végpontjához érje, a virtuális hálózat alhálózatának közzé kell tennie a Microsoft.Storage szolgáltatásvégpontot. Az alábbi PARANCSSOR-parancsok hozzáadják a Microsoft.Storage szolgáltatásvégpontot az alhálózathoz, ha még nincs ott.
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
A tárfiók felé irányuló forgalom korlátozásának utolsó lépése egy hálózati szabály létrehozása és a tárfiók hálózati szabálykészletének hozzáadása.