Configurar o acesso à rede para o Azure Elastic SAN
Artigo
Você pode controlar o acesso aos volumes da SAN (rede de área de armazenamento) do Azure Elastic. Controlar o acesso permite que você proteja seus dados e atenda às necessidades de seus aplicativos e ambientes empresariais.
Este artigo descreve como configurar o Elastic SAN para permitir o acesso da infraestrutura de rede virtual do Azure.
Para configurar o acesso à rede para sua SAN Elástica:
Depois de instalar a versão mais recente, execute az extension add -n elastic-san para instalar a extensão do Elastic SAN.
Não há etapas de registro adicionais necessárias.
Limitações
A lista a seguir contém as regiões em que o Elastic SAN está disponível no momento e quais regiões dão suporte ao armazenamento com redundância de zona (ZRS) e ao armazenamento com redundância local (LRS) ou apenas LRS:
Norte da África do Sul: LRS
Leste da Ásia: LRS
Sudeste da Ásia – LRS
Sul do Brasil: LRS
Canadá Central: LRS
França Central – LRS e ZRS
Centro-Oeste da Alemanha: LRS
Leste da Austrália – LRS
Norte da Europa – LRS e ZRS
Oeste da Europa – LRS e ZRS
Sul do Reino Unido – LRS
Leste do Japão: LRS
Coreia Central: LRS
EUA Central – LRS
Leste dos EUA – LRS
Centro-Sul dos EUA – LRS
Leste dos EUA 2 – LRS
Oeste dos EUA 2 – LRS e ZRS
Oeste dos EUA 3 – LRS
Suécia Central – LRS
Norte da Suíça: LRS
Leste da Noruega — LRS
Norte dos EAU — LRS
Índia Central — LRS
A Elastic SAN também está disponível nas seguintes regiões, mas sem suporte à Zona de Disponibilidade:
Leste do Canadá – LRS
Centro-Norte dos EUA – LRS
Oeste do Japão – LRS
A fim de habilitar essas regiões, execute o seguinte comando para registrar o sinalizador de recurso necessário:
Habilite o acesso público à Internet para seus pontos de extremidade do Elastic SAN no nível da SAN. Habilitar o acesso à rede pública para um Elastic SAN permite que você configure o acesso público a grupos de volume individuais por pontos de extremidade do serviço de armazenamento. Por padrão, o acesso público a grupos de volumes individuais é negado mesmo se você permitir no nível de SAN. Você deve configurar explicitamente seus grupos de volumes para permitir o acesso de intervalos de endereços IP específicos e sub-redes de rede virtual.
Você pode habilitar o acesso à rede pública quando criar um Elastic SAN ou habilitá-lo para uma rede SAN existente usando o Azure PowerShell ou a CLI do Azure.
Use o módulo do Azure PowerShell ou a CLI do Azure para habilitar o acesso à rede pública.
Use este código de exemplo para criar um Elastic SAN com acesso à rede pública habilitado usando o PowerShell. Substitua os valores da variável antes de executar o exemplo.
# Set the variable values.
# The name of the resource group where the Elastic San is deployed.
$RgName = "<ResourceGroupName>"
# The name of the Elastic SAN.
$EsanName = "<ElasticSanName>"
# The region where the new Elastic San will be created.
$Location = "<Location>"
# The SKU of the new Elastic SAN - `Premium_LRS` or `Premium_ZRS`.
$SkuName = "<SkuName>"
# The base size of the new Elastic SAN.
$BaseSize = "<BaseSize>"
# The extended size of the new Elastic SAN.
$ExtendedSize = "<ExtendedSize>"
# Setup the parameters to create an Elastic San with public network access enabled.
$NewEsanArguments = @{
Name = $EsanName
ResourceGroupName = $RgName
BaseSizeTiB = $BaseSize
ExtendedCapacitySizeTiB = $ExtendedSize
Location = $Location
SkuName = $SkuName
PublicNetworkAccess = "Enabled"
}
# Create the Elastic San.
New-AzElasticSan @NewEsanArguments
Use este código de exemplo para atualizar um Elastic SAN para habilitar o acesso à rede pública usando o PowerShell. Substitua os valores de RgName e EsanName por seus próprios e execute o exemplo:
# Set the variable values.
$RgName = "<ResourceGroupName>"
$EsanName = "<ElasticSanName>"
# Update the Elastic San.
Update-AzElasticSan -Name $EsanName -ResourceGroupName $RgName -PublicNetworkAccess Enabled
Use este código de exemplo para criar um Elastic SAN com acesso à rede pública habilitado usando a CLI do Azure. Substitua os valores da variável antes de executar o exemplo.
# Set the variable values.
# The name of the resource group where the Elastic San is deployed.
$RgName="<ResourceGroupName>"
# The name of the Elastic SAN.
$EsanName="<ElasticSanName>"
# The region where the new Elastic San will be created.
$Location="<Location>"
# The SKU of the new Elastic SAN - `Premium_LRS` or `Premium_ZRS`.
$SkuName="<SkuName>"
# The base size of the new Elastic SAN.
$BaseSize="<BaseSize>"
# The extended size of the new Elastic SAN.
$ExtendedSize="<ExtendedSize>"
# Create the Elastic San.
az elastic-san create \
--elastic-san-name $EsanName \
--resource-group $RgName \
--location $Location \
--base-size-tib $BaseSize \
--extended-capacity-size-tib $ExtendedSize \
--sku $SkuName \
--public-network-access enabled
Use este código de exemplo para atualizar um Elastic SAN para habilitar o acesso à rede pública usando a CLI do Azure. Substitua os valores de RgName e EsanName por seus próprios valores:
# Set the variable values.
$RgName="<ResourceGroupName>"
$EsanName="<ElasticSanName>"
# Update the Elastic San.
az elastic-san update \
--elastic-san-name $EsanName \
--resource-group $RgName \
--public-network-access enabled
Configurar um ponto de extremidade de rede virtual
Você pode configurar seus grupos de volumes do Elastic SAN para permitir o acesso somente de pontos de extremidade em sub-redes de rede virtual específicas. As sub-redes permitidas podem pertencer a redes virtuais na mesma assinatura ou em uma assinatura diferente, incluindo uma assinatura que pertença a um locatário diferente do Microsoft Entra.
Você pode permitir o acesso aos grupos de volumes do Elastic SAN de dois tipos de pontos de extremidade de rede virtual do Azure:
Um ponto de extremidade privado usa um ou mais endereços IP privados da sua sub-rede de rede virtual para acessar um grupo de volumes do Elastic SAN pela rede de backbone da Microsoft. Com um ponto de extremidade privado, o tráfego entre sua rede virtual e a conta de armazenamento é protegido por um link privado.
Os pontos de extremidade de serviço de rede virtual são públicos e acessíveis pela Internet. Você pode Configurar regras de rede virtual para controlar o acesso ao seu grupo de volumes ao usar pontos de extremidade de serviço de armazenamento.
As regras de rede só se aplicam aos pontos de extremidade públicos de um grupo de volumes, não a pontos de extremidade privados. O processo de aprovar a criação de um ponto de extremidade privado concede acesso implícito ao tráfego da sub-rede que hospeda o ponto de extremidade privado. Você pode usar as Políticas de Rede para controlar o tráfego em pontos de extremidade privados se quiser refinar as regras de acesso. Se você quiser usar pontos de extremidade privados exclusivamente, não habilite os pontos de extremidade de serviço para o grupo de volumes.
Para Elastic SANs que usam LRS (armazenamento com redundância local) como opção de redundância, há suporte para pontos de extremidade privados em todas as regiões onde a Elastic SAN está disponível. Atualmente, os pontos de extremidade privados não são compatíveis com SANs elásticos implantados usando o armazenamento com redundância de zona (ZRS) como sua opção de redundância.
Há duas etapas envolvidas na configuração de uma conexão de ponto de extremidade privado:
Criação do ponto de extremidade e a conexão associada.
Aprovação da conexão.
Você também pode usar Políticas de rede para refinar o controle de acesso sobre pontos de extremidade privados.
Para criar um ponto de extremidade privado para um grupo de volumes do Elastic SAN, você deve ter a função Proprietário do grupo de volumes do Elastic SAN. Para aprovar uma nova conexão de ponto de extremidade privado, você deve ter permissão para a operação de provedor de recursos do AzureMicrosoft.ElasticSan/elasticSans/PrivateEndpointConnectionsApproval/action. A permissão para essa operação está incluída na função Administrador de rede do Elastic SAN, mas também pode ser concedida por meio de uma função personalizada do Azure.
Se você criar o ponto de extremidade de uma conta de usuário que tenha todas as funções e permissões necessárias para criação e aprovação, o processo poderá ser concluído em uma etapa. Caso contrário, ele exigirá duas etapas separadas por dois usuários diferentes.
O Elastic SAN e a rede virtual podem estar em diferentes grupos de recursos, regiões e assinaturas, incluindo assinaturas que pertencem a diferentes locatários do Microsoft Entra. Nestes exemplos, estamos criando o ponto de extremidade privado no mesmo grupo de recursos que a rede virtual.
Você pode criar uma conexão de ponto de extremidade privado com seu grupo de volumes no portal do Azure ao criar um grupo de volumes ou ao modificar um grupo de volumes existente. Você precisa de uma rede virtual existente na qual criar um ponto de extremidade privado.
Ao criar ou modificar um grupo de volumes, selecione Rede e, em seguida, selecione + Criar um ponto de extremidade privado em Conexões de ponto de extremidade privado.
Preencha os valores no menu que aparece, selecione a rede virtual e a sub-rede que seus aplicativos usarão para se conectar. Quando terminar, selecione Adicionar e Salvar.
A implantação de um ponto de extremidade privado para um grupo de volumes do Elastic SAN usando o PowerShell envolve estas etapas:
Obtenha a sub-rede dos aplicativos que se conectarão.
Obtenha o grupo de volumes do Elastic SAN.
Crie uma conexão de serviço de link privado usando o grupo de volumes como entrada.
Crie o ponto de extremidade privado usando a sub-rede e a conexão de serviço de link privado como entrada.
(Opcional) se estiver usando o processo de duas etapas (criação e depois aprovação)): O administrador da rede Elastic SAN aprova a conexão.
Use este código de exemplo para criar um ponto de extremidade privado para o grupo de volumes do Elastic SAN com o PowerShell. Substitua os valores de RgName, VnetName, SubnetName, EsanName, EsanVgName, PLSvcConnectionName, EndpointName, e Location(Região) pelos seus próprios valores:
# Set the resource group name.
$RgName = "<ResourceGroupName>"
# Set the virtual network and subnet, which is used when creating the private endpoint.
$VnetName = "<VnetName>"
$SubnetName = "<SubnetName>"
$Vnet = Get-AzVirtualNetwork -Name $VnetName -ResourceGroupName $RgName
$Subnet = $Vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq $SubnetName}
# Set the Elastic SAN, which is used when creating the private endpoint service connection.
$EsanName = "<ElasticSanName>"
$EsanVgName = "<ElasticSanVolumeGroupName>"
$Esan = Get-AzElasticSan -Name $EsanName -ResourceGroupName $RgName
# Create the private link service connection, which is input to creating the private endpoint.
$PLSvcConnectionName = "<PrivateLinkSvcConnectionName>"
$EsanPlSvcConn = New-AzPrivateLinkServiceConnection -Name $PLSvcConnectionName -PrivateLinkServiceId $Esan.Id -GroupId $EsanVgName
# Create the private endpoint.
$EndpointName = '<PrivateEndpointName>'
$Location = '<Location>'
$PeArguments = @{
Name = $EndpointName
ResourceGroupName = $RgName
Location = $Location
Subnet = $Subnet
PrivateLinkServiceConnection = $EsanPlSvcConn
}
New-AzPrivateEndpoint @PeArguments # -ByManualRequest # (Uncomment the `-ByManualRequest` parameter if you are using the two-step process).
Use este código de exemplo para aprovar a conexão de serviço de link privado se você estiver usando o processo de duas etapas. Use as mesmas variáveis do exemplo de código anterior:
# Get the private endpoint and associated connection.
$PrivateEndpoint = Get-AzPrivateEndpoint -Name $EndpointName -ResourceGroupName $RgName
$PeConnArguments = @{
ServiceName = $EsanName
ResourceGroupName = $RgName
PrivateLinkResourceType = "Microsoft.ElasticSan/elasticSans"
}
$EndpointConnection = Get-AzPrivateEndpointConnection @PeConnArguments |
Where-Object {($_.PrivateEndpoint.Id -eq $PrivateEndpoint.Id)}
# Approve the private link service connection.
$ApprovalDesc="<ApprovalDesc>"
Approve-AzPrivateEndpointConnection @PeConnArguments -Name $EndpointConnection.Name -Description $ApprovalDesc
# Get the private endpoint connection anew and verify the connection status.
$EndpointConnection = Get-AzPrivateEndpointConnection @PeConnArguments |
Where-Object {($_.PrivateEndpoint.Id -eq $PrivateEndpoint.Id)}
$EndpointConnection.PrivateLinkServiceConnectionState
A implantação de um ponto de extremidade privado para um grupo de volume o Elastic SAN usando a CLI do Azure envolve três etapas:
Obtenha a ID do recurso de conexão privada do Elastic SAN.
Crie o ponto de extremidade privado usando entradas:
ID do recurso de conexão privada
Nome do grupo de volumes
Nome do grupo de recursos
Nome da sub-rede
Nome da rede virtual
(Opcional se estiver usando o processo de duas etapas (criação e, em seguida, aprovação)): O administrador da rede Elastic SAN aprova a conexão.
Use este código de exemplo para criar um ponto de extremidade privado para o grupo de volumes do Elastic SAN com a CLI do Azure. Remova a marca de comentário do parâmetro --manual-request se você estiver usando o processo de duas etapas. Substitua todos os valores de variáveis de exemplo por seus próprios:
# Define some variables.
# The name of the resource group where the resources are deployed.
RgName="<ResourceGroupName>"
# The name of the subnet from which access to the volume group will be configured.
VnetName="<VnetName>"
# The name of the virtual network that includes the subnet.
SubnetName="<SubnetName>"
# The name of the Elastic SAN that the volume group belongs to.
EsanName="<ElasticSanName>"
# The name of the Elastic SAN Volume Group to which a connection is to be created.
EsanVgName="<ElasticSanVolumeGroupName>"
# The name of the new private endpoint
EndpointName="<PrivateEndpointName>"
# The name of the new private link service connection to the volume group.
PLSvcConnectionName="<PrivateLinkSvcConnectionName>"
# The region where the new private endpoint will be created.
Location="<Location>"
# The description provided for the approval of the private endpoint connection.
ApprovalDesc="<ApprovalDesc>"
# Get the id of the Elastic SAN.
id=$(az elastic-san show \
--elastic-san-name $EsanName \
--resource-group $RgName \
--query 'id' \
--output tsv)
# Create the private endpoint.
az network private-endpoint create \
--connection-name $PLSvcConnectionName \
--name $EndpointName \
--private-connection-resource-id $id \
--resource-group $RgName \
--vnet-name $VnetName \
--subnet $SubnetName \
--location $Location \
--group-id $EsanVgName # --manual-request
# Verify the status of the private endpoint connection.
PLConnectionName=$(az network private-endpoint-connection list \
--name $EsanName \
--resource-group $RgName \
--type Microsoft.ElasticSan/elasticSans \
--query "[?properties.groupIds[0]=='$EsanVgName'].name" -o tsv)
az network private-endpoint-connection show \
--resource-name $EsanName \
--resource-group $RgName \
--type Microsoft.ElasticSan/elasticSans \
--name $PLConnectionName
Use este código de exemplo para aprovar a conexão de serviço de link privado se você estiver usando o processo de duas etapas. Use as mesmas variáveis do exemplo de código anterior:
Configurar um ponto de extremidade de serviço do Armazenamento do Microsoft Azure
Para configurar um ponto de extremidade do serviço de Armazenamento do Azure a partir da rede virtual onde o acesso é necessário, você deve ter permissão para a Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/actionoperação de provedor de recursos do Azure via uma função personalizada do Azure para configurar um ponto de extremidade de serviço.
Os pontos de extremidade de serviço de rede virtual são públicos e acessíveis pela Internet. Você pode Configurar regras de rede virtual para controlar o acesso ao seu grupo de volumes ao usar pontos de extremidade de serviço de armazenamento.
Observação
A configuração de regras que concedem acesso a sub-redes em redes virtuais que fazem parte de um locatário diferente do Microsoft Entra atualmente só é compatível por meio do PowerShell, da CLI e de APIs REST. Essas regras não podem ser configuradas por meio do portal do Azure, embora possam ser exibidas no portal.
Você pode ver Microsoft.Storage listado como um ponto de extremidade de serviço de armazenamento disponível. Essa opção é para pontos de extremidade dentro da região que existem apenas para compatibilidade com versões anteriores. Sempre use pontos de extremidade entre regiões, a menos que você tenha um motivo específico para usar os da região.
Para Sub-redes, selecione todas as sub-redes em que você deseja permitir o acesso.
Selecione Adicionar.
Use este código de exemplo para criar um ponto de extremidade de serviço de armazenamento para o grupo de volumes do Elastic SAN com o PowerShell.
# Define some variables
$RgName = "<ResourceGroupName>"
$VnetName = "<VnetName>"
$SubnetName = "<SubnetName>"
# Get the virtual network and subnet
$Vnet = Get-AzVirtualNetwork -ResourceGroupName $RgName -Name $VnetName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $Vnet -Name $SubnetName
# Enable the storage service endpoint
$Vnet | Set-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $Subnet.AddressPrefix -ServiceEndpoint "Microsoft.Storage.Global" | Set-AzVirtualNetwork
Use este código de exemplo para criar um ponto de extremidade de serviço de armazenamento para o grupo de volumes do Elastic SAN com a CLI do Azure.
# Define some variables
RgName="<ResourceGroupName>"
VnetName="<VnetName>"
SubnetName="<SubnetName>"
# Enable the storage service endpoint
az network vnet subnet update --resource-group $RgName --vnet-name $VnetName --name $SubnetName --service-endpoints "Microsoft.Storage.Global"
Configurar regras de rede virtual
Todas as solicitações de entrada de dados em um ponto de extremidade de serviço são bloqueadas por padrão. Somente os aplicativos que solicitam dados de fontes permitidas que você configura nas regras de rede podem acessar seus dados.
Você pode gerenciar as regras da rede virtual para grupos de volumes através do portal do Azure, do PowerShell ou da CLI.
Importante
Se você quiser habilitar o acesso à sua conta de armazenamento a partir de uma rede ou sub-rede virtual em um locatário diferente do Microsoft Entra, deverá usar o PowerShell ou a CLI do Azure. O portal do Azure não mostra sub-redes em outros locatários do Microsoft Entra.
Se você excluir uma sub-rede que foi incluída em uma regra da rede, ela será removida das regras de rede do grupo de volumes. Se você criar uma sub-rede com o mesmo nome, ela não terá acesso ao grupo de volumes. Para permitir o acesso, você precisa autorizar explicitamente a nova sub-rede nas regras de rede do grupo de volumes.
Para adicionar uma regra da rede para uma sub-rede em uma rede virtual que pertence a outro locatário do Microsoft Entra, use um parâmetro VirtualNetworkResourceId totalmente qualificado no formato “/subscriptions/subscription-ID/resourceGroups/resourceGroup-Name/providers/Microsoft.Network/virtualNetworks/vNet-name/subnets/nome-da-sub-rede”.
Remover uma regra da rede virtual.
## You can remove a virtual network rule by object, by resource ID, or by removing all the rules in a volume group
### remove by networkRule object
Remove-AzElasticSanVolumeGroupNetworkRule -ResourceGroupName myRGName -ElasticSanName mySANName -VolumeGroupName myVolGroupName -NetworkAclsVirtualNetworkRule $virtualNetworkRule1,$virtualNetworkRule2
### remove by networkRuleResourceId
Remove-AzElasticSanVolumeGroupNetworkRule -ResourceGroupName myRGName -ElasticSanName mySANName -VolumeGroupName myVolGroupName -NetworkAclsVirtualNetworkResourceId "myResourceID"
### Remove all network rules in a volume group by pipeline
((Get-AzElasticSanVolumeGroup -ResourceGroupName myRGName -ElasticSanName mySANName -VolumeGroupName myVolGroupName).NetworkAclsVirtualNetworkRule) | Remove-AzElasticSanVolumeGroupNetworkRule -ResourceGroupName myRGName -ElasticSanName mySANName -VolumeGroupName myVolGroupName
Adicionar uma regra de rede para uma rede virtual e sub-rede.
Dica
Para adicionar uma regra para uma sub-rede em uma rede virtual pertencente a outro locatário do Microsoft Entra, use uma ID da sub-rede totalmente qualificada no formulário /subscriptions/\<subscription-ID\>/resourceGroups/\<resourceGroup-Name\>/providers/Microsoft.Network/virtualNetworks/\<vNet-name\>/subnets/\<subnet-name\>.
Você pode usar o parâmetro subscription para recuperar a ID de sub-rede de uma rede virtual que pertence a outro locatário do Microsoft Entra.
# First, get the current length of the list of virtual networks. This is needed to ensure you append a new network instead of replacing existing ones.
virtualNetworkListLength = az elastic-san volume-group show -e $sanName -n $volumeGroupName -g $RgName --query 'length(networkAcls.virtualNetworkRules)'
az elastic-san volume-group update -e $sanName -g $RgName --name $volumeGroupName --network-acls virtual-network-rules[$virtualNetworkListLength] "{virtualNetworkRules:[{id:/subscriptions/subscriptionID/resourceGroups/RGName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/default, action:Allow}]}"
Remover uma regra da rede. O comando a seguir remove a primeira regra da rede, modifique-a para remover a regra da rede desejada.
Depois de habilitar os pontos de extremidade desejados e conceder acesso em suas regras de rede, você estará pronto para configurar seus clientes para se conectarem aos volumes apropriados do Elastic SAN.
Observação
Se uma conexão entre uma VM (máquina virtual) e um volume Elastic SAN for perdida, a conexão tentará novamente por 90 segundos até o encerramento. Perder uma conexão com um volume Elastic SAN não fará com que a VM seja reiniciada.