Configurar pontos de extremidade de rede pública e privada do Azure File Sync
Artigo
Os Arquivos do Azure e a Sincronização de Arquivos do Azure fornecem dois tipos principais de pontos de extremidade para acessar compartilhamentos de arquivos do Azure:
Pontos finais públicos, que têm um endereço IP público e podem ser acessados de qualquer lugar do mundo.
Pontos de extremidade privados, que existem dentro de uma rede virtual e têm um endereço IP privado de dentro do espaço de endereço dessa rede virtual.
Para os Arquivos do Azure e a Sincronização de Arquivos do Azure, os objetos de gerenciamento do Azure (a conta de armazenamento e o Serviço de Sincronização de Armazenamento) controlam os pontos de extremidade públicos e privados. A conta de armazenamento é uma construção de gerenciamento que representa um pool compartilhado de armazenamento no qual você pode implantar vários compartilhamentos de arquivos, bem como outros recursos de armazenamento, como blobs ou filas. O Serviço de Sincronização de Armazenamento é uma construção de gerenciamento que representa servidores registrados, que são servidores de arquivos do Windows com uma relação de confiança estabelecida com o Azure File Sync, e grupos de sincronização, que definem a topologia da relação de sincronização.
Este artigo se concentra em como configurar os pontos de extremidade de rede para Arquivos do Azure e Sincronização de Arquivos do Azure. Para saber mais sobre como configurar pontos de extremidade de rede para acessar compartilhamentos de arquivos do Azure diretamente, em vez de armazenar em cache no local com a Sincronização de Arquivos do Azure, consulte Configurando pontos de extremidade de rede dos Arquivos do Azure.
Recomendamos ler as considerações de rede do Azure File Sync antes de ler este guia de instruções.
Pré-requisitos
Este artigo parte do princípio de que:
Tem uma subscrição do Azure. Se ainda não tiver uma subscrição, crie uma conta gratuita antes de começar.
Você já criou um compartilhamento de arquivos do Azure em uma conta de armazenamento à qual gostaria de se conectar localmente. Para saber como criar um compartilhamento de arquivos do Azure, consulte Criar um compartilhamento de arquivos do Azure.
Você permite o tráfego de domínio para os seguintes pontos de extremidade, consulte Pontos de extremidade de serviço do Azure:
Além disso:
Se você pretende usar o Azure PowerShell, instale a versão mais recente.
Se você pretende usar a CLI do Azure, instale a versão mais recente.
Criar os pontos de extremidade privados
Quando você cria um ponto de extremidade privado para um recurso do Azure, os seguintes recursos são implantados:
Um ponto de extremidade privado: um recurso do Azure que representa o ponto de extremidade privado da conta de armazenamento ou o Serviço de Sincronização de Armazenamento. Pense nisso como um recurso que conecta seu recurso do Azure e uma interface de rede.
Uma interface de rede (NIC): A interface de rede que mantém um endereço IP privado dentro da rede/sub-rede virtual especificada. Esse é exatamente o mesmo recurso que é implantado quando você implanta uma máquina virtual (VM), no entanto, em vez de ser atribuído a uma VM, ele pertence ao ponto de extremidade privado.
Uma zona DNS privada: se você nunca implantou um ponto de extremidade privado para essa rede virtual antes, uma nova zona DNS privada será implantada para sua rede virtual. Um registro DNS A também será criado para o recurso do Azure nesta zona DNS. Se você já tiver implantado um ponto de extremidade privado nessa rede virtual, um novo registro A para o recurso do Azure será adicionado à zona DNS existente. A implantação de uma zona DNS é opcional, no entanto, é altamente recomendável simplificar o gerenciamento de DNS necessário.
Nota
Este artigo usa os sufixos DNS para as regiões Públicas do Azure, core.windows.net para contas de armazenamento e afs.azure.net para os Serviços de Sincronização de Armazenamento. Isso também se aplica às nuvens soberanas do Azure, como a nuvem do Azure US Government - basta substituir os sufixos apropriados para o seu ambiente.
Criar o ponto de extremidade privado da conta de armazenamento
Navegue até a conta de armazenamento para a qual você gostaria de criar um ponto de extremidade privado. No menu de serviço, em Segurança + rede, selecione Rede, Conexões de ponto de extremidade privado e, em seguida , + Ponto de extremidade privado para criar um novo ponto de extremidade privado.
O assistente resultante tem várias páginas para concluir.
Na folha Noções básicas, selecione a assinatura desejada, o grupo de recursos, o nome, o nome da interface de rede e a região para seu ponto de extremidade privado. Eles podem ser o que você quiser, eles não precisam corresponder à conta de armazenamento de forma alguma, embora você deva criar o ponto de extremidade privado na mesma região da rede virtual na qual deseja criar o ponto de extremidade privado. Em seguida, selecione Next: Resource.
Na folha Recurso, selecione o arquivo para o subrecurso de destino. Em seguida, selecione Next: Virtual Network.
A folha Rede Virtual permite que você selecione a rede virtual específica e a sub-rede à qual você gostaria de adicionar seu ponto de extremidade privado. Selecione a alocação de endereço IP dinâmico ou estático para o novo ponto de extremidade privado. Se você selecionar estático, também precisará fornecer um nome e um endereço IP privado. Você também pode, opcionalmente, especificar um grupo de segurança do aplicativo. Quando terminar, selecione Avançar: DNS.
A folha DNS contém as informações para integrar seu ponto de extremidade privado com uma zona DNS privada. Verifique se a assinatura e o grupo de recursos estão corretos e selecione Avançar: Tags.
Opcionalmente, você pode aplicar tags para categorizar seus recursos, como aplicar o nome Ambiente e o valor Test a todos os recursos de teste. Insira os pares nome/valor, se desejado, e selecione Avançar: Revisar + criar.
Selecione Criar para criar o ponto de extremidade privado.
Se você tiver uma VM dentro de sua rede virtual ou tiver configurado o encaminhamento DNS conforme descrito em Configurando o encaminhamento DNS para Arquivos do Azure, poderá testar se seu ponto de extremidade privado está configurado corretamente executando os seguintes comandos do PowerShell, da linha de comando ou do terminal (funciona para Windows, Linux ou macOS). Você deve substituir <storage-account-name> pelo nome da conta de armazenamento apropriado:
Se tudo funcionar com sucesso, você verá a seguinte saída, onde 192.168.0.5 é o endereço IP privado do ponto de extremidade privado em sua rede virtual (saída mostrada para Windows):
Para criar um ponto de extremidade privado para sua conta de armazenamento, primeiro você precisa obter uma referência à sua conta de armazenamento e à sub-rede de rede virtual à qual deseja adicionar o ponto de extremidade privado. Substitua <storage-account-resource-group-name>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, e <vnet-subnet-name> abaixo:
$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
}
Para criar um ponto de extremidade privado, você deve criar uma conexão de serviço de link privado com a conta de armazenamento. A conexão do serviço de link privado é uma entrada para a criação do ponto de extremidade privado.
# 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
Criar uma zona DNS privada do Azure habilita o nome original da conta de armazenamento, como storageaccount.file.core.windows.net resolver para o IP privado dentro da rede virtual. Embora opcional da perspetiva da criação de um ponto de extremidade privado, ele é explicitamente necessário para montar o compartilhamento de arquivos do Azure diretamente usando uma entidade de usuário do AD ou acessando por meio da 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
}
Agora que você tem uma referência à zona DNS privada, você deve criar um registro A para sua conta de armazenamento.
Se você tiver uma VM dentro de sua rede virtual ou tiver configurado o encaminhamento de DNS conforme descrito em Configurando o encaminhamento de DNS para arquivos do Azure, poderá testar se seu ponto de extremidade privado está configurado corretamente com os seguintes comandos:
Se tudo funcionar com sucesso, você verá a seguinte saída, onde 192.168.0.5 é o endereço IP privado do ponto de extremidade privado em sua rede virtual:
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
Para criar um ponto de extremidade privado para sua conta de armazenamento, primeiro você precisa obter uma referência à sua conta de armazenamento e à sub-rede de rede virtual à qual deseja adicionar o ponto de extremidade privado. Substitua <storage-account-resource-group-name>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, e <vnet-subnet-name> abaixo:
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 '"')
Para criar um ponto de extremidade privado, você deve primeiro garantir que a diretiva de rede de ponto de extremidade privado da sub-rede esteja definida como desabilitada. Em seguida, você pode criar um ponto de extremidade privado com o az network private-endpoint create comando.
Criar uma zona DNS privada do Azure habilita o nome original da conta de armazenamento, como storageaccount.file.core.windows.net resolver para o IP privado dentro da rede virtual. Embora opcional do ponto de vista da criação de um ponto de extremidade privado, ele é explicitamente necessário para montar o compartilhamento de arquivos do Azure usando uma entidade de usuário do AD ou acessando por meio da 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
Agora que você tem uma referência à zona DNS privada, você deve criar um registro A para sua conta de armazenamento.
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
Se você tiver uma VM dentro de sua rede virtual ou tiver configurado o encaminhamento de DNS conforme descrito em Configurando o encaminhamento de DNS para arquivos do Azure, poderá testar se seu ponto de extremidade privado está configurado corretamente com os seguintes comandos:
Se tudo funcionar com sucesso, você verá a seguinte saída, onde 192.168.0.5 é o endereço IP privado do ponto de extremidade privado em sua rede virtual:
Navegue até o Centro de Link Privado digitando Link Privado na barra de pesquisa na parte superior do portal do Azure. No sumário do Private Link Center, selecione Pontos de extremidade privados e, em seguida , + Adicionar para criar um novo ponto de extremidade privado.
O assistente resultante tem várias páginas para concluir.
Na folha Noções básicas, selecione o grupo de recursos, o nome e a região desejados para seu ponto de extremidade privado. Eles podem ser o que você quiser, eles não precisam corresponder ao Serviço de Sincronização de Armazenamento de forma alguma, embora você deva criar o ponto de extremidade privado na mesma região da rede virtual na qual deseja criar o ponto de extremidade privado.
Na folha Recurso, selecione o botão de opção para Conectar a um recurso do Azure no meu diretório. Em Tipo de recurso, selecione Microsoft.StorageSync/storageSyncServices para o tipo de recurso.
A folha Configuração permite que você selecione a rede virtual específica e a sub-rede à qual você gostaria de adicionar seu ponto de extremidade privado. Selecione a mesma rede virtual que você usou para a conta de armazenamento acima. A folha Configuração também contém as informações para criar/atualizar a zona DNS privada.
Selecione Rever + criar para criar o ponto de extremidade privado.
Você pode testar se seu ponto de extremidade privado está configurado corretamente executando os seguintes comandos do PowerShell.
Se tudo funcionar corretamente, você verá a seguinte saída onde 192.168.1.4, 192.168.1.5, 192.168.1.6, e 192.168.1.7 são os endereços IP privados atribuídos ao ponto de extremidade privado:
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
Para criar um ponto de extremidade privado para o Serviço de Sincronização de Armazenamento, primeiro você precisará obter uma referência ao Serviço de Sincronização de Armazenamento. Lembre-se de substituir <storage-sync-service-resource-group> e <storage-sync-service> com os valores corretos para o seu ambiente. Os comandos do PowerShell a seguir pressupõem que você já tenha preenchido as informações da rede virtual.
$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
}
Para criar um ponto de extremidade privado, você deve criar uma conexão de serviço de link privado com o Serviço de Sincronização de Armazenamento. A conexão de link privado é uma entrada para a criação do ponto de extremidade privado.
# 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
A criação de uma zona DNS privada do Azure permite que os nomes de host do Serviço de Sincronização de Armazenamento, como mysssmanagement.westus2.afs.azure.net, sejam resolvidos para os IPs privados corretos para o Serviço de Sincronização de Armazenamento dentro da rede virtual. Embora seja opcional do ponto de vista da criação de um ponto de extremidade privado, é explicitamente necessário que o agente de Sincronização de Arquivos do Azure acesse o Serviço de Sincronização de Armazenamento.
# 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
}
Agora que você tem uma referência à zona DNS privada, deve criar um registro A para o Serviço de Sincronização de Armazenamento.
Para criar um ponto de extremidade privado para o Serviço de Sincronização de Armazenamento, primeiro você precisará obter uma referência ao Serviço de Sincronização de Armazenamento. Lembre-se de substituir <storage-sync-service-resource-group> e <storage-sync-service> com os valores corretos para o seu ambiente. Os comandos da CLI a seguir pressupõem que você já tenha preenchido as informações da rede virtual.
Para criar um ponto de extremidade privado, você deve primeiro garantir que a diretiva de rede de ponto de extremidade privado da sub-rede esteja definida como desabilitada. Em seguida, você pode criar um ponto de extremidade privado com o az network private-endpoint create comando.
A criação de uma zona DNS privada do Azure permite que os nomes de host do Serviço de Sincronização de Armazenamento, como mysssmanagement.westus2.afs.azure.net, sejam resolvidos para os IPs privados corretos para o Serviço de Sincronização de Armazenamento dentro da rede virtual. Embora seja opcional do ponto de vista da criação de um ponto de extremidade privado, é explicitamente necessário que o agente de Sincronização de Arquivos do Azure acesse o Serviço de Sincronização de Armazenamento.
# 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
Agora que você tem uma referência à zona DNS privada, deve criar um registro A para o Serviço de Sincronização de Armazenamento.
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
Restringir o acesso aos pontos finais públicos
Você pode restringir o acesso aos pontos de extremidade públicos da conta de armazenamento e do Storage Sync Services. Restringir o acesso ao ponto de extremidade público fornece segurança adicional, garantindo que os pacotes de rede só sejam aceitos de locais aprovados.
Restringir o acesso ao ponto de extremidade público da conta de armazenamento
A restrição de acesso ao ponto de extremidade público é feita usando as configurações de firewall da conta de armazenamento. Em geral, a maioria das políticas de firewall para uma conta de armazenamento restringe o acesso à rede a uma ou mais redes virtuais. Há duas abordagens para restringir o acesso a uma conta de armazenamento a uma rede virtual:
Crie um ou mais pontos de extremidade privados para a conta de armazenamento e desative o acesso ao ponto de extremidade público. Isso garante que apenas o tráfego originado de dentro das redes virtuais desejadas possa acessar os compartilhamentos de arquivos do Azure na conta de armazenamento.
Restrinja o ponto de extremidade público a uma ou mais redes virtuais. Isso funciona usando um recurso da rede virtual chamado pontos de extremidade de serviço. Quando restringe o tráfego a uma conta de armazenamento através de um ponto de extremidade de serviço, continua a aceder à conta de armazenamento através do endereço IP público.
Nota
A exceção Permitir que os serviços do Azure na lista de serviços confiáveis acessem essa conta de armazenamento deve ser selecionada em sua conta de armazenamento para permitir que serviços confiáveis da Microsoft, como o Azure File Sync, acessem a conta de armazenamento. Para saber mais, consulte Conceder acesso a serviços confiáveis do Azure.
Conceder acesso a serviços confiáveis do Azure e desabilitar o acesso ao ponto de extremidade público da conta de armazenamento
Quando o acesso ao ponto de extremidade público é desativado, a conta de armazenamento ainda pode ser acessada por meio de seus pontos de extremidade privados. Caso contrário, solicitações válidas para o ponto de extremidade público da conta de armazenamento serão rejeitadas.
Navegue até a conta de armazenamento para a qual você gostaria de restringir todo o acesso ao ponto de extremidade público. No sumário da conta de armazenamento, selecione Rede.
Na parte superior da página, selecione o botão de opção Ativado a partir de redes virtuais selecionadas e endereços IP. Isso ocultará várias configurações para controlar a restrição do ponto de extremidade público. Selecione Permitir que os serviços do Azure na lista de serviços confiáveis acessem essa conta de armazenamento para permitir que serviços confiáveis da Microsoft, como o Azure File Sync, acessem a conta de armazenamento.
O comando PowerShell a seguir negará todo o tráfego para o ponto de extremidade público da conta de armazenamento. Observe que este comando tem o -Bypass parâmetro definido como AzureServices. Isso permitirá que serviços primários confiáveis, como o Azure File Sync, acessem a conta de armazenamento por meio do ponto de extremidade público.
# 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
O comando da CLI a seguir negará todo o tráfego para o ponto de extremidade público da conta de armazenamento. Observe que este comando tem o -bypass parâmetro definido como AzureServices. Isso permitirá que serviços primários confiáveis, como o Azure File Sync, acessem a conta de armazenamento por meio do ponto de extremidade público.
# 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
Conceder acesso a serviços confiáveis do Azure e restringir o acesso ao ponto de extremidade público da conta de armazenamento a redes virtuais específicas
Ao restringir a conta de armazenamento a redes virtuais específicas, você está permitindo solicitações para o ponto de extremidade público de dentro das redes virtuais especificadas. Isso funciona usando um recurso da rede virtual chamado pontos de extremidade de serviço. Isso pode ser usado com ou sem pontos de extremidade privados.
Navegue até a conta de armazenamento para a qual você gostaria de restringir o ponto de extremidade público a redes virtuais específicas. No sumário da conta de armazenamento, selecione Rede.
Na parte superior da página, selecione o botão de opção Ativado a partir de redes virtuais selecionadas e endereços IP. Isso ocultará várias configurações para controlar a restrição do ponto de extremidade público. Selecione +Adicionar rede virtual existente para selecionar a rede virtual específica que deve ter permissão para acessar a conta de armazenamento por meio do ponto de extremidade público. Selecione uma rede virtual e uma sub-rede para essa rede virtual e, em seguida, selecione Ativar.
Selecione Permitir que os serviços do Azure na lista de serviços confiáveis acessem essa conta de armazenamento para permitir que serviços confiáveis da Microsoft, como o Azure File Sync, acessem a conta de armazenamento.
Para restringir o acesso ao ponto de extremidade público da conta de armazenamento a redes virtuais específicas usando pontos de extremidade de serviço, primeiro precisamos coletar informações sobre a conta de armazenamento e a rede virtual. Preencha <storage-account-resource-group>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, e <subnet-name> recolha esta informação.
Para que o tráfego da rede virtual seja permitido pela malha de rede do Azure para chegar ao ponto de extremidade público da conta de armazenamento, a sub-rede da rede virtual deve ter o Microsoft.Storage ponto de extremidade de serviço exposto. Os comandos do PowerShell a seguir adicionarão o Microsoft.Storage ponto de extremidade do serviço à sub-rede, se ele ainda não estiver lá.
A etapa final para restringir o tráfego à conta de armazenamento é criar uma regra de rede e adicionar ao conjunto de regras de rede da conta de armazenamento.
Para restringir o acesso ao ponto de extremidade público da conta de armazenamento a redes virtuais específicas usando pontos de extremidade de serviço, primeiro precisamos coletar informações sobre a conta de armazenamento e a rede virtual. Preencha <storage-account-resource-group>, <storage-account-name>, <vnet-resource-group-name>, <vnet-name>, e <subnet-name> recolha esta informação.
Para que o tráfego da rede virtual seja permitido pela malha de rede do Azure para chegar ao ponto de extremidade público da conta de armazenamento, a sub-rede da rede virtual deve ter o Microsoft.Storage ponto de extremidade de serviço exposto. Os comandos da CLI a seguir adicionarão o ponto de extremidade do Microsoft.Storage serviço à sub-rede, se ele ainda não estiver lá.
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 etapa final para restringir o tráfego à conta de armazenamento é criar uma regra de rede e adicionar ao conjunto de regras de rede da conta de armazenamento.
Desabilitar o acesso ao ponto de extremidade público do Serviço de Sincronização de Armazenamento
A Sincronização de Ficheiros do Azure permite-lhe restringir o acesso a redes virtuais específicas apenas através de pontos de extremidade privados; A Sincronização de Ficheiros do Azure não suporta pontos de extremidade de serviço para restringir o acesso ao ponto de extremidade público a redes virtuais específicas. Isso significa que os dois estados do ponto de extremidade público do Serviço de Sincronização de Armazenamento estão habilitados e desabilitados.
Importante
Você deve criar um ponto de extremidade privado antes de desabilitar o acesso ao ponto de extremidade público. Se o ponto de extremidade público estiver desativado e não houver nenhum ponto de extremidade privado configurado, a sincronização não poderá funcionar.
Navegue até o Serviço de Sincronização de Armazenamento e selecione Configurações>de Rede na navegação à esquerda.
Em Permitir acesso de, selecione Somente pontos de extremidade privados.
Selecione um ponto de extremidade privado na lista Conexões de ponto de extremidade privado.
Para desabilitar o acesso ao ponto de extremidade público do Serviço de Sincronização de Armazenamento, defina a incomingTrafficPolicy propriedade no Serviço de Sincronização de Armazenamento como AllowVirtualNetworksOnly. Se você quiser habilitar o acesso ao ponto de extremidade público do Serviço de Sincronização de Armazenamento, defina incomingTrafficPolicy como AllowAllTraffic em vez disso. Lembre-se de substituir <storage-sync-service-resource-group> e <storage-sync-service> com seus próprios valores.
A CLI do Azure não oferece suporte à configuração da incomingTrafficPolicy propriedade no Serviço de Sincronização de Armazenamento. Selecione a guia Azure PowerShell para obter instruções sobre como desabilitar o ponto de extremidade público do Serviço de Sincronização de Armazenamento.
Azure Policy
A Política do Azure ajuda a impor os padrões da organização e a avaliar a conformidade em relação a esses padrões em escala. Os Arquivos do Azure e a Sincronização de Arquivos do Azure expõem várias políticas de rede úteis de auditoria e correção que ajudam você a monitorar e automatizar sua implantação.
As políticas auditam seu ambiente e alertam você se suas contas de armazenamento ou o Storage Sync Services divergirem do comportamento definido. Por exemplo, se um ponto de extremidade público estiver habilitado quando sua política foi definida para ter os pontos de extremidade públicos desabilitados. Modificar/implantar políticas Dê um passo adiante e modifique proativamente um recurso (como o Serviço de Sincronização de Armazenamento) ou implante recursos (como pontos de extremidade privados) para alinhá-los às políticas.
As seguintes políticas predefinidas estão disponíveis para os Arquivos do Azure e a Sincronização de Arquivos do Azure:
As contas de armazenamento devem restringir o acesso à rede
Audit
Azure File Sync
O ponto de extremidade público do Serviço de Sincronização de Armazenamento está habilitado. Consulte Desabilitar o acesso ao ponto de extremidade público do Serviço de Sincronização de Armazenamento para obter mais informações.
O acesso à rede pública deve ser desabilitado para o Azure File Sync
Audit
Ficheiros do Azure
A conta de armazenamento precisa de pelo menos um ponto de extremidade privado. Consulte Criar o ponto de extremidade privado da conta de armazenamento para obter mais informações.
A conta de armazenamento deve usar uma conexão de link privado
Audit
Azure File Sync
O Serviço de Sincronização de Armazenamento precisa de pelo menos um ponto de extremidade privado. Consulte Criar o ponto de extremidade privado do Serviço de Sincronização de Armazenamento para obter mais informações.
O Azure File Sync deve usar o link privado
Modificar
Azure File Sync
Desative o ponto de extremidade público do Serviço de Sincronização de Armazenamento.
Modificar - Configurar a Sincronização de Ficheiros do Azure para desativar o acesso à rede pública
Implementar
Azure File Sync
Implante um ponto de extremidade privado para o Serviço de Sincronização de Armazenamento.
Configurar a Sincronização de Ficheiros do Azure com pontos de extremidade privados
Implementar
Azure File Sync
Implante um registro A em privatelink.afs.azure.net zona DNS.
Configurar a Sincronização de Ficheiros do Azure para utilizar zonas DNS privadas
Configurar uma política de implantação de ponto de extremidade privado
Para configurar uma política de implantação de ponto de extremidade privado, vá para o portal do Azure e procure Política. O Centro de políticas do Azure deve ser um resultado superior. Navegue até Definições de>Criação no sumário da Central de políticas. O painel Definições resultante contém as políticas predefinidas em todos os serviços do Azure. Para localizar a política específica, selecione a categoria Armazenamento no filtro de categoria ou procure Configurar a Sincronização de Arquivos do Azure com pontos de extremidade privados. Selecione ... e Atribuir para criar uma nova política a partir da definição.
A folha Noções básicas do assistente Atribuir política permite definir um escopo, uma lista de exclusão de recursos ou grupo de recursos e dar à sua política um nome amigável para ajudá-lo a distingui-la. Você não precisa modificá-los para que a política funcione, mas pode, se quiser fazer modificações. Selecione Avançar para avançar para a página Parâmetros .
Na folha Parâmetros, selecione o botão ... ao lado da lista suspensa privateEndpointSubnetId para selecionar a rede virtual e a sub-rede onde os pontos de extremidade privados para os recursos do Serviço de Sincronização de Armazenamento devem ser implantados. O assistente resultante pode levar vários segundos para carregar as redes virtuais disponíveis em sua assinatura. Selecione a rede/sub-rede virtual apropriada para seu ambiente e clique em Selecionar. Selecione Avançarpara avançar para a folha Correção.
Para que o ponto de extremidade privado seja implantado quando um Serviço de Sincronização de Armazenamento sem um ponto de extremidade privado é identificado, você deve selecionar a tarefa Criar uma correção na página Correção . Por fim, selecione Revisar + criar para revisar a atribuição de política e Criar para criá-la.
A atribuição de política resultante será executada periodicamente e pode não ser executada imediatamente após a criação.