Os pontos finais de serviço de rede virtual permitem-lhe limitar o acesso de rede a alguns recursos de serviços do Azure a uma sub-rede de rede virtual. Também pode remover o acesso à Internet aos recursos. Os pontos finais de serviço proporcionam uma ligação direta a partir da sua rede virtual a serviços do Azure suportados, o que lhe permite utilizar o espaço de endereços privados da sua rede virtual para aceder aos serviços do Azure. O tráfego destinado aos recursos do Azure através de pontos finais de serviço permanece sempre na rede backbone do Microsoft Azure.
Neste tutorial, irá aprender a:
- Criar uma rede virtual com uma sub-rede
- Adicionar uma sub-rede e ativar um ponto final de serviço
- Criar um recurso do Azure e permitir o acesso de rede ao mesmo apenas a partir de uma sub-rede
- Implementar uma máquina virtual (VM) em cada sub-rede
- Confirmar o acesso a um recurso a partir de uma sub-rede
- Confirmar que o acesso é negado a um recurso da sub-rede e da Internet
Pré-requisitos
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção |
Exemplo/Ligação |
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. |
|
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. |
|
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
|
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando + no macOS.
Selecione Enter para executar o código ou comando.
Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az
para localizar a versão instalada. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar Connect-AzAccount
para criar uma conexão com o Azure.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Use o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.0.28 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
Ativar um ponto final de serviço
Criar uma rede virtual e um host do Azure Bastion
O procedimento a seguir cria uma rede virtual com uma sub-rede de recurso, uma sub-rede do Azure Bastion e um host Bastion:
No portal, pesquise e selecione Redes virtuais.
Na página Redes virtuais, selecione + Criar.
Na guia Noções básicas de Criar rede virtual, insira ou selecione as seguintes informações:
Configurações |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione Criar novo.
Digite test-rg para o nome.
Selecione OK. |
Detalhes da instância |
|
Nome |
Insira vnet-1. |
Região |
Selecione E.U.A. Leste 2. |
Selecione Avançar para prosseguir para a guia Segurança .
Na seção Azure Bastion, selecione Habilitar Azure Bastion.
Bastion usa seu navegador para se conectar a VMs em sua rede virtual através de Secure Shell (SSH) ou Remote Desktop Protocol (RDP) usando seus endereços IP privados. As VMs não precisam de endereços IP públicos, software cliente ou configuração especial. Para obter mais informações, consulte O que é o Azure Bastion?.
Nota
A faturação horária inicia-se no momento em que o Bastion é implantado, independentemente do uso de dados enviados. Para obter mais informações, consulte Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos excluir esse recurso depois de terminar de usá-lo.
No Azure Bastion, insira ou selecione as seguintes informações:
Configurações |
Valor |
Nome do host do Azure Bastion |
Entre bastião. |
Endereço IP público do Azure Bastion |
Selecione Criar um endereço IP público.
Digite public-ip-bastion em Name.
Selecione OK. |
Selecione Avançar para ir para o separador Endereços IP.
Na caixa de espaço de endereço em Sub-redes, selecione a sub-rede padrão .
Em Editar sub-rede, insira ou selecione as seguintes informações:
Configurações |
Valor |
Finalidade da sub-rede |
Mantenha o valor predefinido Default. |
Nome |
Introduza subnet-1. |
IPv4 |
|
Intervalo de endereços IPv4 |
Deixe o padrão de 10.0.0.0/16. |
Endereço inicial |
Deixe o padrão de 10.0.0.0. |
Tamanho |
Deixe o padrão de /24 (256 endereços). |
Selecione Guardar.
Selecione Revisão + criar na parte inferior da janela. Quando a validação for aprovada, selecione Criar.
Os pontos finais de serviço são ativados por serviço, por sub-rede.
Na caixa de pesquisa na parte superior da página do portal, procure por Rede virtual. Selecione Redes virtuais nos resultados da pesquisa.
Em Redes virtuais, selecione vnet-1.
Na seção Configurações do vnet-1, selecione Sub-redes.
Selecione + Subnet.
Na página Adicionar sub-rede, insira ou selecione as seguintes informações:
Configurações |
Valor |
Nome |
sub-rede privada |
Gama de endereços de sub-rede |
Deixe o padrão de 10.0.2.0/24. |
PONTOS DE EXTREMIDADE DE SERVIÇO |
|
Serviços |
Selecione Microsoft.Storage |
Selecione Guardar.
Criar uma rede virtual
Antes de criar uma rede virtual, você precisa criar um grupo de recursos para a rede virtual e todos os outros recursos criados neste artigo. Crie um grupo de recursos com New-AzResourceGroup. O exemplo a seguir cria um grupo de recursos chamado test-rg:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Crie uma rede virtual com New-AzVirtualNetwork. O exemplo a seguir cria uma rede virtual chamada vnet-1 com o prefixo de endereço 10.0.0.0/16.
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Crie uma configuração de sub-rede com New-AzVirtualNetworkSubnetConfig. O exemplo a seguir cria uma configuração de sub-rede para uma sub-rede chamada subnet-public:
$subpub = @{
Name = "subnet-public"
AddressPrefix = "10.0.0.0/24"
VirtualNetwork = $virtualNetwork
}
$subnetConfigPublic = Add-AzVirtualNetworkSubnetConfig @subpub
Crie a sub-rede na rede virtual gravando a configuração da sub-rede na rede virtual com Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
Crie outra sub-rede na rede virtual. Neste exemplo, uma subnet chamada subnet-private é criada com um endpoint de serviço para Microsoft.Storage:
$subpriv = @{
Name = "subnet-private"
AddressPrefix = "10.0.2.0/24"
VirtualNetwork = $virtualNetwork
ServiceEndpoint = "Microsoft.Storage"
}
$subnetConfigPrivate = Add-AzVirtualNetworkSubnetConfig @subpriv
$virtualNetwork | Set-AzVirtualNetwork
Implementar o Azure Bastion
O Azure Bastion usa seu navegador para se conectar a VMs em sua rede virtual por meio de Secure Shell (SSH) ou RDP (Remote Desktop Protocol) usando seus endereços IP privados. As VMs não precisam de endereços IP públicos, software cliente ou configuração especial. Para obter mais informações sobre Bastion, consulte O que é o Azure Bastion?.
A faturação horária inicia-se no momento em que o Bastion é implantado, independentemente do uso de dados enviados. Para obter mais informações, consulte Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos excluir esse recurso depois de terminar de usá-lo.
Configure uma sub-rede Bastion para sua rede virtual. Esta sub-rede é reservada exclusivamente para recursos Bastion e deve ser chamada AzureBastionSubnet.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Defina a configuração:
$virtualNetwork | Set-AzVirtualNetwork
Crie um endereço IP público para Bastion. O host Bastion usa o IP público para acessar SSH e RDP pela porta 443.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'westus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
Use o comando New-AzBastion para criar um novo host Bastion padrão no AzureBastionSubnet:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion -AsJob
Leva cerca de 10 minutos para implantar os recursos do Bastion. Você pode criar VMs na próxima seção enquanto o Bastion é implementado na sua rede virtual.
Criar uma rede virtual
Antes de criar uma rede virtual, você precisa criar um grupo de recursos para a rede virtual e todos os outros recursos criados neste artigo. Crie um grupo de recursos com az group create. O seguinte exemplo cria um grupo de recursos chamado test-rg na localização westus2.
az group create \
--name test-rg \
--location westus2
Crie uma rede virtual com uma sub-rede com az network vnet create.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-public \
--subnet-prefix 10.0.0.0/24
Você pode habilitar pontos de extremidade de serviço somente para serviços que oferecem suporte a pontos de extremidade de serviço. Exiba os serviços com suporte a ponto de extremidade de serviço disponíveis numa localização do Azure com az network vnet list-endpoint-services. O exemplo a seguir retorna uma lista de serviços habilitados para ponto de extremidade de serviço disponíveis na região westus2 . A lista de serviços retornados crescerá com o tempo, à medida que mais serviços do Azure se tornarem ponto de extremidade de serviço habilitados.
az network vnet list-endpoint-services \
--location westus2 \
--out table
Crie outra sub-rede na rede virtual com az network vnet subnet create. Neste exemplo, um ponto de extremidade de serviço para Microsoft.Storage
é criado para a sub-rede:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-private \
--address-prefix 10.0.1.0/24 \
--service-endpoints Microsoft.Storage
Restringir o acesso de rede a uma sub-rede
Por padrão, todas as instâncias de máquina virtual em uma sub-rede podem se comunicar com quaisquer recursos. Pode limitar a comunicação de e para todos os recursos numa sub-rede através da criação de um grupo de segurança de rede e associá-lo à sub-rede.
Na caixa de pesquisa na parte superior da página do portal, procure por Grupo de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Em Grupos de segurança de rede, selecione + Criar.
Na guia Noções básicas de Criar grupo de segurança de rede, insira ou selecione as seguintes informações:
Configurações |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome |
Digite nsg-storage. |
Região |
Selecione E.U.A. Leste 2. |
Selecione Rever + criar e, em seguida, selecione Criar.
Crie um grupo de segurança de rede com New-AzNetworkSecurityGroup. O exemplo a seguir cria um grupo de segurança de rede chamado nsg-private.
$nsgpriv = @{
ResourceGroupName = 'test-rg'
Location = 'westus2'
Name = 'nsg-private'
}
$nsg = New-AzNetworkSecurityGroup @nsgpriv
Crie um grupo de segurança de rede com az network nsg create. O exemplo a seguir cria um grupo de segurança de rede chamado nsg-private.
az network nsg create \
--resource-group test-rg \
--name nsg-private
Criar regras do Grupo de Segurança de Rede (NSG) de saída
Na caixa de pesquisa na parte superior da página do portal, procure por Grupo de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Selecione nsg-storage.
Selecione Regras de segurança de saída em Configurações.
Selecione + Adicionar.
Crie uma regra que permita comunicações de saída para o serviço de Armazenamento do Azure. Insira ou selecione as seguintes informações em Adicionar regra de segurança de saída:
Configurações |
Valor |
Fonte |
Selecione Etiqueta de serviço. |
Etiqueta de serviço de origem |
Selecione VirtualNetwork. |
Intervalos de portas de origem |
Mantenha o padrão de *. |
Destino |
Selecione Etiqueta de serviço. |
Etiqueta do serviço de destino |
Selecione Armazenamento. |
Serviço |
Deixe como padrão o Personalizado. |
Intervalos de portas de destino |
Digite 445. |
Protocolo |
Selecione Todos. |
Ação |
Selecione Permitir. |
Prioridade |
Deixe o padrão de 100. |
Nome |
Insira allow-storage-all. |
Selecione + Adicionar.
Crie outra regra de segurança de saída que bloqueie a comunicação com a Internet. Esta regra substitui a regra predefinida em todos os grupos de segurança de rede que permite a comunicação de saída para a Internet. Conclua as etapas anteriores com os seguintes valores em Adicionar regra de segurança de saída:
Configurações |
Valor |
Fonte |
Selecione Etiqueta de serviço. |
Etiqueta de serviço de origem |
Selecione VirtualNetwork. |
Intervalos de portas de origem |
Mantenha o padrão de *. |
Destino |
Selecione Etiqueta de serviço. |
Etiqueta do serviço de destino |
Selecione Internet. |
Serviço |
Deixe como padrão o Personalizado. |
Intervalos de portas de destino |
Introduza *. |
Protocolo |
Selecione Todos. |
Ação |
Selecione Negar. |
Prioridade |
Deixe o padrão 110. |
Nome |
Digite deny-internet-all. |
Selecione Adicionar.
Na caixa de pesquisa na parte superior da página do portal, procure por Grupo de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Selecione nsg-storage.
Selecione Sub-redes em Configurações.
Selecione + Associado.
Em Sub-rede associada, selecione vnet-1 em Rede virtual. Selecione sub-rede-privada em Sub-rede.
Selecione OK.
Crie regras de segurança para grupos de rede com New-AzNetworkSecurityRuleConfig. A regra a seguir permite acesso de saída aos endereços IP públicos atribuídos ao serviço de Armazenamento do Azure:
$r1 = @{
Name = "Allow-Storage-All"
Access = "Allow"
DestinationAddressPrefix = "Storage"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 100
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule1 = New-AzNetworkSecurityRuleConfig @r1
A regra a seguir nega acesso a todos os endereços IP públicos. A regra anterior substitui essa regra, devido à sua prioridade mais alta, que permite o acesso aos endereços IP públicos do Armazenamento do Azure.
$r2 = @{
Name = "Deny-Internet-All"
Access = "Deny"
DestinationAddressPrefix = "Internet"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 110
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule2 = New-AzNetworkSecurityRuleConfig @r2
Use Get-AzNetworkSecurityGroup para recuperar o objeto do grupo de segurança de rede em uma variável. Use Set-AzNetworkSecurityRuleConfig para adicionar as regras ao grupo de segurança de rede.
# Retrieve the existing network security group
$nsgpriv = @{
ResourceGroupName = 'test-rg'
Name = 'nsg-private'
}
$nsg = Get-AzNetworkSecurityGroup @nsgpriv
# Add the new rules to the security group
$nsg.SecurityRules += $rule1
$nsg.SecurityRules += $rule2
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Associe o grupo de segurança de rede à sub-rede privada com Set-AzVirtualNetworkSubnetConfig e, em seguida, escreva a configuração da sub-rede na rede virtual. O exemplo a seguir associa o grupo de segurança de rede nsg-private à sub-rede privada :
$subnet = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-private"
AddressPrefix = "10.0.2.0/24"
ServiceEndpoint = "Microsoft.Storage"
NetworkSecurityGroup = $nsg
}
Set-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Crie regras de segurança com az network nsg rule create. A regra a seguir permite acesso de saída aos endereços IP públicos atribuídos ao serviço de Armazenamento do Azure:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Allow-Storage-All \
--access Allow \
--protocol "*" \
--direction Outbound \
--priority 100 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Storage" \
--destination-port-range "*"
Cada grupo de segurança de rede contém várias regras de segurança padrão. A regra a seguir substitui uma regra de segurança padrão que permite acesso de saída a todos os endereços IP públicos. A destination-address-prefix "Internet"
opção nega acesso de saída a todos os endereços IP públicos. A regra anterior substitui essa regra, devido à sua prioridade mais alta, que permite o acesso aos endereços IP públicos do Armazenamento do Azure.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Deny-Internet-All \
--access Deny \
--protocol "*" \
--direction Outbound \
--priority 110 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Internet" \
--destination-port-range "*"
A regra a seguir permite a entrada de tráfego SSH na sub-rede de qualquer lugar. A regra substitui uma regra de segurança predefinida que nega todo o tráfego de entrada a partir da Internet. SSH é permitido para a sub-rede para que a conectividade possa ser testada em uma etapa posterior.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-private \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 120 \
--source-address-prefix "*" \
--source-port-range "*" \
--destination-address-prefix "VirtualNetwork" \
--destination-port-range "22"
Associe o grupo de segurança de rede à sub-rede subnet-private com az network vnet subnet update. O exemplo a seguir associa o grupo de segurança de rede nsg-private à sub-rede privada :
az network vnet subnet update \
--vnet-name vnet-1 \
--name subnet-private \
--resource-group test-rg \
--network-security-group nsg-private
Restringir o acesso de rede a um recurso
As etapas necessárias para restringir o acesso à rede a recursos criados por meio dos serviços do Azure, que são habilitados para pontos de extremidade de serviço, variam entre os serviços. Veja a documentação relativa aos serviços individuais para obter os passos específicos dos mesmos. O restante deste tutorial inclui etapas para restringir o acesso à rede para uma conta de Armazenamento do Azure, como exemplo.
Criar uma conta de armazenamento
Crie uma conta de Armazenamento do Azure para as etapas neste artigo. Se você já tiver uma conta de armazenamento, poderá usá-la.
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione + Criar.
Na guia Noções básicas de Criar uma conta de armazenamento, insira ou selecione as seguintes informações:
Configurações |
Valor |
Detalhes do Projeto |
|
Subscrição |
Selecione a subscrição do Azure. |
Grupo de Recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome da conta de armazenamento |
Aceda storage1. Se o nome não estiver disponível, insira um nome exclusivo. |
Localização |
Selecione (EUA) Leste dos EUA 2. |
Desempenho |
Deixe o padrão padrão. |
Redundância |
Selecione Armazenamento com redundância local (LRS). |
Selecione Revisão.
Selecione Criar.
Crie uma conta de armazenamento do Azure com New-AzStorageAccount. Substitua <replace-with-your-unique-storage-account-name>
por um nome exclusivo em todos os locais do Azure, entre 3 e 24 caracteres de comprimento, usando apenas números e letras minúsculas.
$storageAcctName = '<replace-with-your-unique-storage-account-name>'
$storage = @{
Location = 'westus2'
Name = $storageAcctName
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storage
Depois que a conta de armazenamento for criada, recupere a chave da conta de armazenamento em uma variável com Get-AzStorageAccountKey:
$storagekey = @{
ResourceGroupName = 'test-rg'
AccountName = $storageAcctName
}
$storageAcctKey = (Get-AzStorageAccountKey @storagekey).Value[0]
A chave é usada para criar um compartilhamento de arquivos em uma etapa posterior. Insira $storageAcctKey
e anote o valor. Você insere-o manualmente num passo posterior quando mapear o compartilhamento de arquivos para uma unidade numa máquina virtual.
Os passos necessários para restringir o acesso de rede a recursos criados através de serviços do Azure ativados para pontos finais de serviço varia de serviço para serviço. Veja a documentação relativa aos serviços individuais para obter os passos específicos dos mesmos. O restante deste artigo inclui etapas para restringir o acesso à rede para uma conta de Armazenamento do Azure, como exemplo.
Criar uma conta de armazenamento
Crie uma conta de armazenamento do Azure com az storage account create. Substitua <replace-with-your-unique-storage-account-name>
por um nome exclusivo em todos os locais do Azure, entre 3 e 24 caracteres de comprimento, usando apenas números e letras minúsculas.
storageAcctName="<replace-with-your-unique-storage-account-name>"
az storage account create \
--name $storageAcctName \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
Depois que a conta de armazenamento for criada, recupere a cadeia de conexão da conta de armazenamento em uma variável com az storage account show-connection-string. A cadeia de conexão é usada para criar um compartilhamento de arquivos em uma etapa posterior.
saConnectionString=$(az storage account show-connection-string \
--name $storageAcctName \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
Para obter mais informações sobre como se conectar a uma conta de armazenamento usando uma identidade gerenciada, consulte Usar uma identidade gerenciada para acessar o Armazenamento do Azure.
Criar uma partilha de ficheiros na conta de Armazenamento
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Em Contas de armazenamento, selecione a conta de armazenamento criada na etapa anterior.
Em Armazenamento de dados, selecione Compartilhamentos de arquivos.
Selecione + Partilha de ficheiros.
Insira ou selecione as seguintes informações em Novo compartilhamento de arquivos:
Configurações |
Valor |
Nome |
Insira partilha de ficheiros. |
Escalão de serviço |
Deixe o padrão de Transação otimizada. |
Selecione Next: Backup.
Desmarque Ativar cópia de segurança.
Selecione Rever + criar e, em seguida, selecione Criar.
Crie um contexto para sua conta de armazenamento e chave com New-AzStorageContext. O contexto encapsula o nome da conta de armazenamento e a chave da conta:
$storagecontext = @{
StorageAccountName = $storageAcctName
StorageAccountKey = $storageAcctKey
}
$storageContext = New-AzStorageContext @storagecontext
Crie um compartilhamento de arquivos com New-AzStorageShare:
$fs = @{
Name = "file-share"
Context = $storageContext
}
$share = New-AzStorageShare @fs
Crie um compartilhamento de arquivos na conta de armazenamento com az storage share create. Numa etapa posterior, esta partilha de ficheiros é montada para confirmar o acesso da rede a ela.
az storage share create \
--name file-share \
--quota 2048 \
--connection-string $saConnectionString > /dev/null
Restringir o acesso de rede a uma sub-rede
Por predefinição, as contas de armazenamento aceitam ligações de rede de clientes em qualquer rede, incluindo a Internet. Você pode restringir o acesso à rede a partir da Internet e de todas as outras sub-redes em todas as redes virtuais (exceto a sub-rede privada na rede virtual vnet-1 .)
Para restringir o acesso à rede a uma sub-rede:
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione a sua conta de armazenamento.
Em Segurança + rede, selecione Rede.
Na guia Firewalls e redes virtuais, selecione Habilitado a partir de redes virtuais e endereços IP selecionados em Acesso à rede pública.
Em Redes virtuais, selecione + Adicionar rede virtual existente.
Em Adicionar redes, insira ou selecione as seguintes informações:
Configurações |
Valor |
Subscrição |
Selecione a sua subscrição. |
Redes virtuais |
Selecione vnet-1. |
Subredes |
Selecione subnet-private. |
Selecione Adicionar.
Selecione Salvar para salvar as configurações de rede virtual.
Por predefinição, as contas de Armazenamento aceitam ligações de rede de clientes em qualquer rede. Para limitar o acesso a redes selecionadas, altere a ação padrão para Negar com Update-AzStorageAccountNetworkRuleSet. Quando o acesso à rede é negado, a conta de armazenamento não é acessível a partir de nenhuma rede.
$storagerule = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storagerule
Recupere a rede virtual criada com Get-AzVirtualNetwork e, em seguida, recupere o objeto de sub-rede privada em uma variável com Get-AzVirtualNetworkSubnetConfig:
$subnetpriv = @{
ResourceGroupName = "test-rg"
Name = "vnet-1"
}
$privateSubnet = Get-AzVirtualNetwork @subnetpriv | Get-AzVirtualNetworkSubnetConfig -Name "subnet-private"
Permita o acesso de rede à conta de armazenamento a partir da sub-rede privada com Add-AzStorageAccountNetworkRule.
$storagenetrule = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @storagenetrule
Por predefinição, as contas de Armazenamento aceitam ligações de rede de clientes em qualquer rede. Para limitar o acesso às redes selecionadas, utilize az storage account update para alterar a ação padrão para Negar. Quando o acesso à rede é negado, a conta de armazenamento não é acessível a partir de nenhuma rede.
az storage account update \
--name $storageAcctName \
--resource-group test-rg \
--default-action Deny
Permita o acesso de rede à conta de armazenamento a partir da sub-rede subnet-private com az storage account network-rule add.
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName \
--vnet-name vnet-1 \
--subnet subnet-private
Implantar máquinas virtuais em sub-redes
Para testar o acesso à rede a uma conta de armazenamento, implante uma máquina virtual em cada sub-rede.
Criar máquina virtual de teste
O procedimento a seguir cria uma máquina virtual (VM) de teste chamada vm-1 na rede virtual.
No portal, procure e selecione Máquinas virtuais.
Em Máquinas virtuais, selecione + Criar e, em seguida , Máquina virtual do Azure.
Na guia Noções básicas de Criar uma máquina virtual, insira ou selecione as seguintes informações:
Configurações |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome da máquina virtual |
Introduza vm-1. |
Região |
Selecione E.U.A. Leste 2. |
Opções de disponibilidade |
Selecione Sem necessidade de redundância de infraestrutura. |
Tipo de segurança |
Deixe o valor predefinido de Padrão. |
Imagem |
Selecione Windows Server 2022 Datacenter - x64 Gen2. |
Arquitetura VM |
Deixe o padrão de x64. |
Tamanho |
Selecione um tamanho. |
Conta de administrador |
|
Tipo de autenticação |
Selecione Senha. |
Nome de utilizador |
Insira azureuser. |
Palavra-passe |
Introduza uma palavra-passe. |
Confirme a palavra-passe |
Reintroduza a palavra-passe. |
Regras de porta de entrada |
|
Portas de entrada públicas |
Selecione Nenhuma. |
Selecione o separador Networking na parte superior da página.
Insira ou selecione as seguintes informações no separador Rede:
Configurações |
Valor |
Interface de Rede |
|
Rede virtual |
Selecione vnet-1. |
sub-rede |
Seleccione subnet-1 (10.0.0.0/24). |
IP público |
Selecione Nenhuma. |
Grupo de segurança de rede NIC |
Selecione Avançadas. |
Configurar grupo de segurança de rede |
Selecione Criar novo.
Digite nsg-1 para o nome.
Deixe o restante nos padrões e selecione OK. |
Deixe o restante das configurações nos padrões e selecione Revisar + criar.
Revise as configurações e selecione Criar.
Nota
As máquinas virtuais em uma rede virtual com um host bastion não precisam de endereços IP públicos. Bastion fornece o IP público, e as VMs usam IPs privados para se comunicar dentro da rede. Você pode remover os IPs públicos de qualquer VM em redes virtuais hospedadas por bastion. Para obter mais informações, consulte Dissociar um endereço IP público de uma VM do Azure.
Nota
O Azure fornece um IP de acesso de saída padrão para VMs que não recebem um endereço IP público ou estão no pool de back-end de um balanceador de carga básico interno do Azure. O mecanismo IP de acesso de saída padrão fornece um endereço IP de saída que não é configurável.
O IP de acesso de saída padrão é desativado quando um dos seguintes eventos acontece:
- Um endereço IP público é atribuído à VM.
- A VM é colocada no pool de back-end de um balanceador de carga padrão, com ou sem regras de saída.
- O recurso Azure NAT Gateway é atribuído à sub-rede da VM.
As VMs que você cria usando conjuntos de dimensionamento de máquina virtual no modo de orquestração flexível não têm acesso de saída padrão.
Para obter mais informações sobre conexões de saída no Azure, consulte Acesso de saída padrão no Azure e Usar SNAT (Conversão de Endereço de Rede de Origem) para conexões de saída.
Criar a segunda máquina virtual
Crie uma segunda máquina virtual repetindo as etapas na seção anterior. Substitua os seguintes valores em Criar uma máquina virtual:
Configurações |
Valor |
Nome da máquina virtual |
Digite vm-private. |
sub-rede |
Selecione subnet-private. |
IP público |
Selecione Nenhuma. |
Grupo de segurança de rede NIC |
Selecione Nenhuma. |
Aviso
Não continue para a próxima etapa até que a implantação seja concluída.
Criar a primeira máquina virtual
Crie uma máquina virtual na sub-rede pública com New-AzVM. Ao executar o comando a seguir, você será solicitado a fornecer credenciais. Os valores que introduzir são configurados, como o nome de utilizador e a palavra-passe para a VM.
$vm1 = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-public"
Name = "vm-public"
PublicIpAddressName = $null
}
New-AzVm @vm1
Criar a segunda máquina virtual
Crie uma máquina virtual na sub-rede subnet-private.
$vm2 = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-private"
Name = "vm-private"
PublicIpAddressName = $null
}
New-AzVm @vm2
Leva alguns minutos para o Azure criar a VM. Não continue para a próxima etapa até que o Azure termine de criar a VM e retorne a saída para o PowerShell.
Para testar o acesso de rede a uma conta de Armazenamento, implemente uma VM em cada sub-rede.
Criar a primeira máquina virtual
Crie uma VM na sub-rede pública com az vm create. Se as chaves SSH ainda não existirem em um local de chave padrão, o comando as cria. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value
.
az vm create \
--resource-group test-rg \
--name vm-public \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-public \
--admin-username azureuser \
--generate-ssh-keys
A criação da VM demora alguns minutos. Depois que a VM é criada, a CLI do Azure mostra informações semelhantes ao exemplo a seguir:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-public",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Criar a segunda máquina virtual
az vm create \
--resource-group test-rg \
--name vm-private \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-private \
--admin-username azureuser \
--generate-ssh-keys
A criação da VM demora alguns minutos.
Confirmar o acesso à conta de Armazenamento
A máquina virtual que foi criada anteriormente e atribuída à sub-rede privada é usada para confirmar o acesso à conta de armazenamento. A máquina virtual, que foi criada na seção anterior e atribuída à subnet-1, é utilizada para confirmar que o acesso à conta de armazenamento está bloqueado.
Obter chave de acesso à conta de armazenamento
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Em Contas de armazenamento, selecione sua conta de armazenamento.
Em Segurança + rede, selecione Chaves de acesso.
Copie o valor de key1. Talvez seja necessário selecionar o botão Mostrar para exibir a chave.
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-private.
Selecione Bastião em Operações.
Digite o nome de usuário e a senha que você especificou ao criar a máquina virtual. Selecione Ligar.
Abra o Windows PowerShell. Use o script a seguir para mapear o compartilhamento de arquivos do Azure para a unidade Z.
Substitua <storage-account-key>
pela chave copiada na etapa anterior.
Substitua <storage-account-name>
pelo nome de sua conta de armazenamento. Neste exemplo, é storage8675.
$key = @{
String = "<storage-account-key>"
}
$acctKey = ConvertTo-SecureString @key -AsPlainText -Force
$cred = @{
ArgumentList = "Azure\<storage-account-name>", $acctKey
}
$credential = New-Object System.Management.Automation.PSCredential @cred
$map = @{
Name = "Z"
PSProvider = "FileSystem"
Root = "\\<storage-account-name>.file.core.windows.net\file-share"
Credential = $credential
}
New-PSDrive @map
O PowerShell devolve resultados semelhantes à saída de exemplo seguinte:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Z FileSystem \\storage8675.file.core.windows.net\f...
A partilha de ficheiros do Azure foi mapeada com êxito para a unidade Z.
Feche a conexão Bastion para vm-private.
A máquina virtual que foi criada anteriormente e atribuída à sub-rede privada é usada para confirmar o acesso à conta de armazenamento. A máquina virtual, que foi criada na seção anterior e atribuída à subnet-1, é utilizada para confirmar que o acesso à conta de armazenamento está bloqueado.
Obter chave de acesso à conta de armazenamento
Inicie sessão no portal do Azure.
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Em Contas de armazenamento, selecione sua conta de armazenamento.
Em Segurança + rede, selecione Chaves de acesso.
Copie o valor de key1. Talvez seja necessário selecionar o botão Mostrar para exibir a chave.
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-private.
Selecione Conectar e, em seguida, Conectar via Bastion em Resumo.
Digite o nome de usuário e a senha que você especificou ao criar a máquina virtual. Selecione Ligar.
Abra o Windows PowerShell. Use o script a seguir para mapear o compartilhamento de arquivos do Azure para a unidade Z.
Substitua <storage-account-key>
pela chave copiada na etapa anterior.
Substitua <storage-account-name>
pelo nome de sua conta de armazenamento. Neste exemplo, é storage8675.
$key = @{
String = "<storage-account-key>"
}
$acctKey = ConvertTo-SecureString @key -AsPlainText -Force
$cred = @{
ArgumentList = "Azure\<storage-account-name>", $acctKey
}
$credential = New-Object System.Management.Automation.PSCredential @cred
$map = @{
Name = "Z"
PSProvider = "FileSystem"
Root = "\\<storage-account-name>.file.core.windows.net\file-share"
Credential = $credential
}
New-PSDrive @map
O PowerShell devolve resultados semelhantes à saída de exemplo seguinte:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Z FileSystem \\storage8675.file.core.windows.net\f...
A partilha de ficheiros do Azure foi mapeada com êxito para a unidade Z.
Confirme se a VM não tem conectividade de saída com outros endereços IP públicos:
ping bing.com
Você não recebe respostas, porque o grupo de segurança de rede associado à sub-rede Privada não permite acesso de saída a endereços IP públicos diferentes dos endereços atribuídos ao serviço de Armazenamento do Azure.
Feche a conexão Bastion para vm-private.
Acede à vm-private usando SSH.
Execute o seguinte comando para armazenar o endereço IP da VM como uma variável de ambiente:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-private --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Crie uma pasta para um ponto de montagem:
sudo mkdir /mnt/file-share
Monte o compartilhamento de arquivos do Azure no diretório que você criou. Antes de executar o comando a seguir, substitua <storage-account-name>
pelo nome da conta e <storage-account-key>
pela chave recuperada em Criar uma conta de armazenamento.
sudo mount --types cifs //<storage-account-name>.file.core.windows.net/my-file-share /mnt/file-share --options vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
Você recebe a user@vm-private:~$
solicitação. O compartilhamento de arquivos do Azure foi montado com êxito em /mnt/file-share.
Confirme se a VM não tem conectividade de saída com outros endereços IP públicos:
ping bing.com -c 4
Você não recebe respostas, porque o grupo de segurança de rede associado à sub-rede privada não permite acesso de saída a endereços IP públicos diferentes dos endereços atribuídos ao serviço de Armazenamento do Azure.
Saia da sessão SSH para a VM vm-private .
Confirmar que o acesso à conta de armazenamento está negado
De vm-1
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-1.
Selecione Bastião em Operações.
Digite o nome de usuário e a senha que você especificou ao criar a máquina virtual. Selecione Ligar.
Repita o comando anterior para tentar mapear a unidade para a partilha de ficheiros na conta de armazenamento. Talvez seja necessário copiar a chave de acesso da conta de armazenamento novamente para este procedimento:
$key = @{
String = "<storage-account-key>"
}
$acctKey = ConvertTo-SecureString @key -AsPlainText -Force
$cred = @{
ArgumentList = "Azure\<storage-account-name>", $acctKey
}
$credential = New-Object System.Management.Automation.PSCredential @cred
$map = @{
Name = "Z"
PSProvider = "FileSystem"
Root = "\\<storage-account-name>.file.core.windows.net\file-share"
Credential = $credential
}
New-PSDrive @map
Deverá receber a seguinte mensagem de erro:
New-PSDrive : Access is denied
At line:1 char:5
+ New-PSDrive @map
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
Feche a conexão Bastion para vm-1.
A partir de uma máquina local
Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Em Contas de armazenamento, selecione sua conta de armazenamento.
Em Armazenamento de dados, selecione Compartilhamentos de arquivos.
Selecione compartilhamento de arquivos.
Selecione Procurar no menu à esquerda.
Deverá receber a seguinte mensagem de erro:
Nota
O acesso é negado porque o computador não está na sub-rede privada da rede virtual vnet-1 .
De vm-1
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-1.
Selecione Bastião em Operações.
Digite o nome de usuário e a senha que você especificou ao criar a máquina virtual. Selecione Ligar.
Repita o comando anterior para tentar mapear a unidade para a partilha de ficheiros na conta de armazenamento. Talvez seja necessário copiar a chave de acesso da conta de armazenamento novamente para este procedimento:
$key = @{
String = "<storage-account-key>"
}
$acctKey = ConvertTo-SecureString @key -AsPlainText -Force
$cred = @{
ArgumentList = "Azure\<storage-account-name>", $acctKey
}
$credential = New-Object System.Management.Automation.PSCredential @cred
$map = @{
Name = "Z"
PSProvider = "FileSystem"
Root = "\\<storage-account-name>.file.core.windows.net\file-share"
Credential = $credential
}
New-PSDrive @map
Deverá receber a seguinte mensagem de erro:
New-PSDrive : Access is denied
At line:1 char:5
+ New-PSDrive @map
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
Feche a conexão Bastion para vm-1.
No seu computador, tente visualizar os compartilhamentos de arquivos na conta de armazenamento com o seguinte comando:
$storage = @{
ShareName = "file-share"
Context = $storageContext
}
Get-AzStorageFile @storage
O acesso é negado. Você recebe uma saída semelhante ao exemplo a seguir.
Get-AzStorageFile : The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: This request isn't authorized to perform this operation
Seu computador não está na sub-rede privada da rede virtual vnet-1 .
Aceder à VM vm-public por SSH.
Execute o seguinte comando para armazenar o endereço IP da VM como uma variável de ambiente:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-public --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Crie um diretório para um ponto de montagem:
sudo mkdir /mnt/file-share
Tente montar o compartilhamento de arquivos do Azure no diretório que você criou. Este artigo pressupõe que você implantou a versão mais recente do Ubuntu. Se você estiver usando versões anteriores do Ubuntu, consulte Montar no Linux para obter mais instruções sobre como montar compartilhamentos de arquivos. Antes de executar o seguinte comando, substitua <storage-account-name>
pelo nome da conta e <storage-account-key>
pela chave recuperada em Criar uma conta de armazenamento:
sudo mount --types cifs //storage-account-name>.file.core.windows.net/file-share /mnt/file-share --options vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino
O acesso é negado e você recebe um mount error(13): Permission denied
erro, porque a VM vm-public é implantada dentro da sub-rede pública . A sub-rede pública não tem um ponto de extremidade de serviço ativado para o Armazenamento do Azure, e a conta de armazenamento permite apenas o acesso à rede a partir da sub-rede privada, não da sub-rede pública.
Termine a sessão SSH na VM vm-public.
Tente visualizar, a partir do seu computador, as partilhas na sua conta de armazenamento com az storage share list. Substitua <account-name>
e <account-key>
pelo nome e chave da conta de armazenamento obtidos em Criar uma conta de armazenamento.
az storage share list \
--account-name <account-name> \
--account-key <account-key>
O acesso é negado e você recebe um erro Esta solicitação não está autorizada a executar essa operação , porque seu computador não está na sub-rede privada da rede virtual vnet-1 .
Quando terminar de usar os recursos que criou, você poderá excluir o grupo de recursos e todos os seus recursos.
No portal do Azure, procure e selecione Grupos de recursos.
Na página Grupos de recursos, selecione o grupo de recursos test-rg.
Na página test-rg, selecione Excluir grupo de recursos.
Digite test-rg em Digite o nome do grupo de recursos para confirmar a exclusão e selecione Excluir.
Quando não for mais necessário, você pode usar Remove-AzResourceGroup para remover o grupo de recursos e todos os recursos que ele contém:
$cleanup = @{
Name = "test-rg"
}
Remove-AzResourceGroup @cleanup -Force
Limpar recursos
Quando não for mais necessário, use az group delete para remover o grupo de recursos e todos os recursos que ele contém.
az group delete \
--name test-rg \
--yes \
--no-wait
Próximos passos
Neste tutorial:
Você ativou um ponto de extremidade de serviço para uma sub-rede de uma rede virtual.
Aprendeu que pode ativar os pontos finais de serviço para os recursos implementados a partir de vários serviços do Azure.
Você criou uma conta de Armazenamento do Azure e restringiu o acesso à rede à conta de armazenamento apenas para recursos dentro de uma sub-rede de rede virtual.
Para saber mais sobre os pontos finais de serviço, veja Descrição geral dos pontos finais de serviço e Manage subnets (Gerir sub-redes).
Se você tiver várias redes virtuais em sua conta, convém estabelecer conectividade entre elas para que os recursos possam se comunicar entre si. Para saber como ligar redes virtuais, avance para o próximo tutorial.