As políticas de ponto de extremidade de serviço permitem filtrar o tráfego de rede virtual para recursos específicos do Azure, através de pontos de extremidade de serviço. Se você não estiver familiarizado com as políticas de ponto de extremidade de serviço, consulte Visão geral das políticas de ponto de extremidade de serviço para saber mais.
Neste tutorial, irá aprender a:
- Crie uma rede virtual.
- Adicione uma sub-rede e ative o endpoint de serviço para o Azure Storage.
- Crie duas contas de Armazenamento do Azure e permita o acesso à rede a partir da sub-rede na rede virtual.
- Crie uma política de ponto de extremidade do serviço para permitir acesso apenas a uma das contas de armazenamento.
- Implante uma máquina virtual (VM) na sub-rede.
- Confirme o acesso à conta de armazenamento permitida a partir da sub-rede.
- Confirme se o acesso foi negado à conta de armazenamento não permitida da sub-rede.
Pré-requisitos
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.
Criar uma rede virtual e ativar o ponto de extremidade de serviço
Crie uma rede virtual para conter os recursos criados neste tutorial.
Na caixa de pesquisa no portal, digite Redes virtuais. Selecione Redes virtuais nos resultados da pesquisa.
Selecione + Criar para criar uma nova rede virtual.
Insira ou selecione as seguintes informações na guia Noções básicas de Criar rede virtual.
Configuração |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione Criar novo.
Digite test-rg em Nome.
Selecione OK. |
Nome |
Digite vnet-1. |
Região |
Selecione E.U.A. Oeste 2. |
Selecione Seguinte.
Selecione Seguinte.
Na guia Endereços IP, em Sub-redes, selecione a sub-rede padrão.
Insira ou selecione as seguintes informações em Editar sub-rede.
Configuração |
Valor |
Nome |
Introduza subnet-1. |
Pontos Finais de Serviço |
|
Serviços |
|
No menu suspenso, selecione Microsoft.Storage. |
|
Selecione Guardar.
Selecione Rever + Criar.
Selecione Criar.
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 e, em seguida, escreva a configuração de sub-rede na rede virtual com Set-AzVirtualNetwork. O exemplo a seguir adiciona uma sub-rede chamada subnet-1 à rede virtual e cria o ponto de extremidade de serviço para Microsoft.Storage.
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
ServiceEndpoint = "Microsoft.Storage"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
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 exemplo seguinte 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-1 \
--subnet-prefix 10.0.0.0/24
Neste exemplo, um ponto de extremidade de serviço para Microsoft.Storage
é criado para a sub-rede sub-rede-1:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24 \
--service-endpoints Microsoft.Storage
Restringir o acesso à rede para a sub-rede
Crie um grupo de segurança de rede e regras que restrinjam o acesso à rede para a sub-rede.
Criar um grupo de segurança de rede
Na caixa de pesquisa no portal, insira Grupos de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Selecione + Criar para criar um novo grupo de segurança de rede.
Na guia Noções básicas de Criar grupo de segurança de rede, insira ou selecione as seguintes informações.
Configuração |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Nome |
Digite nsg-1. |
Região |
Selecione E.U.A. Oeste 2. |
Selecione Rever + Criar.
Selecione Criar.
Criar regras do grupo de segurança de rede
Na caixa de pesquisa no portal, insira Grupos de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Selecione nsg-1.
Expanda Definições. Selecione Regras de segurança de saída.
Selecione + Adicionar para adicionar uma nova regra de segurança de saída.
Em Adicionar regra de segurança de saída, insira ou selecione as seguintes informações.
Configuração |
Valor |
Fonte |
Selecione Etiqueta de serviço. |
Etiqueta de serviço de origem |
Selecione VirtualNetwork. |
Intervalo de portas de origem |
Introduza *. |
Destino |
Selecione Etiqueta de serviço. |
Etiqueta do serviço de destino |
Selecione Armazenamento. |
Serviço |
Selecione Personalizado. |
Intervalos de portas de destino |
Introduza *. |
Protocolo |
Selecione Qualquer. |
Ação |
Selecione Permitir. |
Prioridade |
Introduza 100. |
Nome |
Digite allow-storage-all. |
Selecione Adicionar.
Selecione + Adicionar para adicionar outra regra de segurança de saída.
Em Adicionar regra de segurança de saída, insira ou selecione as seguintes informações.
Configuração |
Valor |
Fonte |
Selecione Etiqueta de serviço. |
Etiqueta de serviço de origem |
Selecione VirtualNetwork. |
Intervalo de portas de origem |
Introduza *. |
Destino |
Selecione Etiqueta de serviço. |
Etiqueta do serviço de destino |
Selecione Internet. |
Serviço |
Selecione Personalizado. |
Intervalos de portas de destino |
Introduza *. |
Protocolo |
Selecione Qualquer. |
Ação |
Selecione Negar. |
Prioridade |
Digite 110. |
Nome |
Digite deny-internet-all. |
Selecione Adicionar.
Expanda Definições. Selecione Subnets.
Selecione Associar.
Em Associar subrede, insira ou selecione as seguintes informações.
Configuração |
Valor |
Rede virtual |
Selecione vnet-1 (test-rg). |
Sub-rede |
Selecione sub-rede-1. |
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
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-1.
$securityRules = @($rule1, $rule2)
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
SecurityRules = $securityRules
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Associe o grupo de segurança de rede à subnet-1 com Set-AzVirtualNetworkSubnetConfig e, em seguida, guarde a configuração da sub-rede na rede virtual. O exemplo a seguir associa o grupo de segurança de rede nsg-1 à sub-rede 1 :
$subnetConfig = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
ServiceEndpoint = "Microsoft.Storage"
NetworkSecurityGroup = $nsg
}
Set-AzVirtualNetworkSubnetConfig @subnetConfig
$virtualNetwork | Set-AzVirtualNetwork
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-1.
az network nsg create \
--resource-group test-rg \
--name nsg-1
Associe o grupo de segurança de rede à sub-rede subnet-1 com az network vnet subnet update. O exemplo a seguir associa o grupo de segurança de rede nsg-1 à sub-rede 1 :
az network vnet subnet update \
--vnet-name vnet-1 \
--name subnet-1 \
--resource-group test-rg \
--network-security-group nsg-1
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-1 \
--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-1 \
--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 "*"
Restringir o acesso à rede às contas de Armazenamento do Azure
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 duas contas de armazenamento
Na caixa de pesquisa no portal, insira Contas de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione + Criar para criar uma nova conta de armazenamento.
Em Criar uma conta de armazenamento, insira ou selecione as seguintes informações.
Configuração |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome da conta de armazenamento |
Insira allowedaccount(random-number). Nota: O nome da conta de armazenamento deve ser exclusivo. Adicione um número aleatório ao final do nome allowedaccount . |
Região |
Selecione E.U.A. Oeste 2. |
Desempenho |
selecione Standard. |
Redundância |
Selecione Armazenamento com redundância local (LRS). |
Selecione Avançar até chegar à guia Proteção de dados.
Em Recuperação, desmarque todas as opções.
Selecione Rever + Criar.
Selecione Criar.
Repita as etapas anteriores para criar outra conta de armazenamento com as seguintes informações.
Configuração |
Valor |
Nome da conta de armazenamento |
Digite deniedaccount(random-number). |
Crie a conta de armazenamento do Azure permitida com New-AzStorageAccount.
$storageAcctParams = @{
Location = 'westus2'
Name = 'allowedaccount'
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storageAcctParams
Use o mesmo comando para criar a conta de armazenamento do Azure negada, mas altere o nome para deniedaccount
.
$storageAcctParams = @{
Location = 'westus2'
Name = 'deniedaccount'
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storageAcctParams
Crie duas contas de armazenamento do Azure com az storage account create.
storageAcctName1="allowedaccount"
az storage account create \
--name $storageAcctName1 \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
Use o mesmo comando para criar a conta de armazenamento do Azure negada, mas altere o nome para deniedaccount
.
storageAcctName2="deniedaccount"
az storage account create \
--name $storageAcctName2 \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
Criar partilhas de ficheiros
Na caixa de pesquisa no portal, insira Contas de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione allowedaccount(random-number).
Expanda a seção Armazenamento de dados e selecione Compartilhamentos de arquivos.
Selecione + Partilha de ficheiros.
Em Novo compartilhamento de arquivos, insira ou selecione as seguintes informações.
Configuração |
Valor |
Nome |
Insira partilha de ficheiros. |
Deixe o restante das configurações como padrão e selecione Revisar + criar.
Selecione Criar.
Repita as etapas anteriores para criar um compartilhamento de arquivos em deniedaccount(random-number).
Criar partilha de ficheiros em conta de armazenamento permitida
Use Get-AzStorageAccountKey para obter a chave da conta de armazenamento autorizada. Você usará essa chave na próxima etapa para criar um compartilhamento de arquivos na conta de armazenamento permitida.
$storageAcctName1 = "allowedaccount"
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
AccountName = $storageAcctName1
}
$storageAcctKey1 = (Get-AzStorageAccountKey @storageAcctParams1).Value[0]
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 de conta.
$storageContext1 = New-AzStorageContext $storageAcctName1 $storageAcctKey1
Crie um compartilhamento de arquivos com New-AzStorageShare.
$share1 = New-AzStorageShare file-share -Context $storageContext1
Criar partilha de ficheiros em conta de armazenamento negada
Use Get-AzStorageAccountKey para obter a chave da conta de armazenamento autorizada. Você usará essa chave na próxima etapa para criar um compartilhamento de arquivos na conta de armazenamento negada.
$storageAcctName2 = "deniedaccount"
$storageAcctParams2 = @{
ResourceGroupName = "test-rg"
AccountName = $storageAcctName2
}
$storageAcctKey2 = (Get-AzStorageAccountKey @storageAcctParams2).Value[0]
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 de conta.
$storageContext2= New-AzStorageContext $storageAcctName2 $storageAcctKey2
Crie um compartilhamento de arquivos com New-AzStorageShare.
$share2 = New-AzStorageShare file-share -Context $storageContext2
Criar partilha de ficheiros em conta de armazenamento permitida
Recupere a cadeia de conexão para as contas 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.
saConnectionString1=$(az storage account show-connection-string \
--name $storageAcctName1 \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
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 $saConnectionString1 > /dev/null
Criar partilha de ficheiros em conta de armazenamento negada
Recupere a cadeia de conexão para as contas 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.
saConnectionString2=$(az storage account show-connection-string \
--name $storageAcctName2 \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
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 $saConnectionString2 > /dev/null
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.
Negar todo o acesso de rede a contas de armazenamento
Por predefinição, as contas de Armazenamento aceitam ligações de rede de clientes em qualquer rede. Para restringir o acesso à rede às contas de armazenamento, você pode configurar a conta de armazenamento para aceitar conexões somente de redes específicas. Neste exemplo, você configura a conta de armazenamento para aceitar conexões somente da sub-rede de rede virtual criada anteriormente.
Na caixa de pesquisa no portal, insira Contas de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione allowedaccount(random-number).
Expanda Segurança + rede e selecione Rede.
Em Firewalls e redes virtuais, em Acesso à rede pública, selecione Ativado a partir de redes virtuais e endereços IP selecionados.
Em Redes virtuais, selecione + Adicionar rede virtual existente.
Em Adicionar redes, insira ou selecione as seguintes informações.
Configuração |
Valor |
Subscrição |
Selecione a sua subscrição. |
Redes virtuais |
Selecione vnet-1. |
Sub-redes |
Selecione sub-rede-1. |
Selecione Adicionar.
Selecione Guardar.
Repita as etapas anteriores para negar o acesso à rede à conta negada (número aleatório).
Use Update-AzStorageAccountNetworkRuleSet para negar acesso às contas de armazenamento, exceto da rede virtual e da sub-rede criada anteriormente. Quando o acesso à rede é negado, a conta de armazenamento não é acessível a partir de nenhuma rede.
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storageAcctParams1
$storageAcctParams2 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName2
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storageAcctParams2
Habilitar o acesso à rede somente a partir da sub-rede de rede virtual
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:
$privateSubnetParams = @{
ResourceGroupName = "test-rg"
Name = "vnet-1"
}
$privateSubnet = Get-AzVirtualNetwork @privateSubnetParams | Get-AzVirtualNetworkSubnetConfig -Name "subnet-1"
Permita o acesso de rede à conta de armazenamento a partir da sub-rede 1 com Add-AzStorageAccountNetworkRule.
$networkRuleParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @networkRuleParams1
$networkRuleParams2 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName2
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @networkRuleParams2
Por predefinição, as contas de Armazenamento aceitam ligações de rede de clientes em qualquer rede. Para limitar o acesso às redes selecionadas, altere a ação padrão para Negar utilizando o comando az storage account update. Quando o acesso à rede é negado, a conta de armazenamento não é acessível a partir de nenhuma rede.
az storage account update \
--name $storageAcctName1 \
--resource-group test-rg \
--default-action Deny
az storage account update \
--name $storageAcctName2 \
--resource-group test-rg \
--default-action Deny
Habilitar o acesso à rede somente a partir da sub-rede de rede virtual
Permita o acesso de rede à conta de armazenamento a partir da sub-rede subnet-1 com az storage account network-rule add.
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName1 \
--vnet-name vnet-1 \
--subnet subnet-1
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName2 \
--vnet-name vnet-1 \
--subnet subnet-1
Aplicar política para permitir o acesso a uma conta de armazenamento válida
Você pode criar uma política de endpoint de serviço. A política garante que os usuários na rede virtual só possam acessar contas de Armazenamento do Azure seguras e permitidas. Esta política contém uma lista de contas de armazenamento permitidas aplicadas à sub-rede de rede virtual conectada ao armazenamento por meio de pontos de extremidade de serviço.
Criar uma política de ponto de extremidade de serviço
Esta seção cria a definição de política com a lista de recursos permitidos para acesso pelo endpoint de serviço.
Na caixa de pesquisa no portal, insira Política de ponto de extremidade do serviço. Selecione Políticas de Ponto de Extremidade de Serviço nos resultados da pesquisa.
Selecione + Criar para criar uma nova política de endpoint de serviço.
Insira ou selecione as seguintes informações no separador Noções Básicas de Criar uma política de ponto de extremidade de serviço.
Configuração |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome |
Insira service-endpoint-policy. |
Localização |
Selecione E.U.A. Oeste 2. |
Selecione Seguinte: definições de política.
Selecione + Adicionar um recurso em Recursos.
Em Adicionar um recurso, insira ou selecione as seguintes informações:
Configuração |
Valor |
Serviço |
Selecione Microsoft.Storage. |
Âmbito |
Selecione Conta única |
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Recurso |
Selecione allowedaccount(random-number) |
Selecione Adicionar.
Selecione Rever + Criar.
Selecione Criar.
Para recuperar a ID do recurso para a primeira conta de armazenamento (permitida), use Get-AzStorageAccount.
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
}
$resourceId = (Get-AzStorageAccount @storageAcctParams1).id
Para criar a definição de política para permitir o recurso anterior, use New-AzServiceEndpointPolicyDefinition .
$policyDefinitionParams = @{
Name = "policy-definition"
Description = "Service Endpoint Policy Definition"
Service = "Microsoft.Storage"
ServiceResource = $resourceId
}
$policyDefinition = New-AzServiceEndpointPolicyDefinition @policyDefinitionParams
Use New-AzServiceEndpointPolicy para criar a política de ponto de extremidade de serviço com a definição de política.
$sepolicyParams = @{
ResourceGroupName = "test-rg"
Name = "service-endpoint-policy"
Location = "westus2"
ServiceEndpointPolicyDefinition = $policyDefinition
}
$sepolicy = New-AzServiceEndpointPolicy @sepolicyParams
As políticas de ponto de extremidade de serviço são aplicadas sobre pontos de extremidade de serviço. Comece criando uma política de endpoint de serviço. Em seguida, crie as definições de política sob esta política para que as contas de Armazenamento do Azure sejam aprovadas para esta sub-rede
Use az storage account show para obter o ID de recurso para a conta de armazenamento que é permitida.
serviceResourceId=$(az storage account show --name allowedaccount --query id --output tsv)
Criar uma política de ponto de extremidade de serviço
az network service-endpoint policy create \
--resource-group test-rg \
--name service-endpoint-policy \
--location westus2
Criar e adicionar uma definição de política para permitir que a conta de Armazenamento do Azure anterior seja incluída na política de ponto de extremidade do serviço.
az network service-endpoint policy-definition create \
--resource-group test-rg \
--policy-name service-endpoint-policy \
--name policy-definition \
--service "Microsoft.Storage" \
--service-resources $serviceResourceId
Associar uma política de ponto de extremidade de serviço a uma sub-rede
Depois de criar a política de ponto de extremidade de serviço, irá associá-la à sub-rede de destino com a configuração de ponto de extremidade de serviço para Azure Storage.
Na caixa de pesquisa no portal, insira Política de ponto de extremidade do serviço. Selecione Políticas de Ponto de Extremidade de Serviço nos resultados da pesquisa.
Selecione service-endpoint-policy.
Expanda Configurações e selecione Sub-redes associadas.
Selecione + Editar associação de sub-rede.
Em Editar associação de sub-rede, selecione vnet-1 e subnet-1.
Selecione Aplicar.
Utilize Set-AzVirtualNetworkSubnetConfig para associar a política de ponto de extremidade de serviço à sub-rede.
$subnetConfigParams = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
NetworkSecurityGroup = $nsg
ServiceEndpoint = "Microsoft.Storage"
ServiceEndpointPolicy = $sepolicy
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
$virtualNetwork | Set-AzVirtualNetwork
Use az network vnet subnet update para associar a política de ponto de extremidade de serviço à sub-rede.
az network vnet subnet update \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--service-endpoints Microsoft.Storage \
--service-endpoint-policy service-endpoint-policy
Aviso
Certifique-se de que todos os recursos acessados a partir da sub-rede sejam adicionados à definição de política antes de associá-la à sub-rede fornecida. Depois de associar a política, será permitido apenas o acesso aos recursos na lista de permissões através dos pontos de extremidade de serviço.
Certifique-se de que não existem serviços gerenciados do Azure na sub-rede que está sendo associada à política de ponto de extremidade do serviço.
O acesso aos recursos do Armazenamento do Azure em todas as regiões será restrito de acordo com a Política de Ponto de Extremidade de Serviço desta sub-rede.
Validar a restrição de acesso às contas de Armazenamento do Azure
Para testar o acesso à rede a uma conta de armazenamento, implante uma VM na sub-rede.
Implementar a máquina virtual
Na caixa de pesquisa no portal, digite Máquinas virtuais. Selecione Máquinas virtuais nos resultados da pesquisa.
Na guia Noções básicas de Criar uma máquina virtual, insira ou selecione as seguintes informações:
Configuração |
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 |
Digite vm-1. |
Região |
Selecione (E.U.A.) E.U.A. Oeste 2. |
Opções de disponibilidade |
Selecione Sem necessidade de redundância de infraestrutura. |
Tipo de segurança |
selecione Standard. |
Imagem |
Selecione Windows Server 2022 Datacenter - x64 Gen2. |
Tamanho |
Selecione um tamanho. |
Conta de administrador |
|
Nome de utilizador |
Introduza um nome de utilizador. |
Palavra-passe |
Introduza uma palavra-passe. |
Confirme a palavra-passe |
Digite a senha novamente. |
Regras de porta de entrada |
|
Selecione Seguinte: Discos e, em seguida, selecione Seguinte: Rede.
Na guia Rede, insira ou selecione as seguintes informações.
Configuração |
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 Nenhuma. |
Deixe o restante das configurações como padrão e selecione Revisar + Criar.
Selecione Criar.
Crie uma máquina virtual na subnet-1 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.
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
Name = "vm-1"
}
New-AzVm @vmParams
Crie uma VM na sub-rede subnet-1 com az vm create.
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Win2022Datacenter \
--admin-username azureuser \
--vnet-name vnet-1 \
--subnet subnet-1
Aguarde até que a máquina virtual termine a implantação antes de continuar para as próximas etapas.
Confirmar o acesso à conta de armazenamento permitida
Inicie sessão no portal do Azure.
Na caixa de pesquisa no portal, insira Contas de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione allowedaccount(random-number).
Expanda Segurança + rede e selecione Teclas de acesso.
Copie o valor de key1. Use essa chave para mapear uma unidade para a conta de armazenamento da máquina virtual criada anteriormente.
Na caixa de pesquisa no portal, digite Máquinas virtuais. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-1.
Expanda as operações. Selecione Executar comando.
Selecione RunPowerShellScript.
Cole o seguinte script em Executar script de comando.
## Enter the storage account key for the allowed storage account that you recorded earlier.
$storageAcctKey1 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey1 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\allowedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\allowedaccount.file.core.windows.net\file-share" -Credential $credential
Selecione Executar.
Se o mapeamento da unidade for bem-sucedido, a saída na caixa Output será semelhante ao seguinte exemplo:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Z FileSystem \\allowedaccount.file.core.windows.net\fil..
Verifique se o acesso à conta de armazenamento negada é negado
Na caixa de pesquisa no portal, insira Contas de armazenamento. Selecione Contas de armazenamento nos resultados da pesquisa.
Selecione deniedaccount(random-number).
Expanda Segurança + rede e selecione Teclas de acesso.
Copie o valor de key1. Use essa chave para mapear uma unidade para a conta de armazenamento da máquina virtual criada anteriormente.
Na caixa de pesquisa no portal, digite Máquinas virtuais. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-1.
Expanda as operações. Selecione Executar comando.
Selecione RunPowerShellScript.
Cole o seguinte script em Executar script de comando.
## Enter the storage account key for the denied storage account that you recorded earlier.
$storageAcctKey2 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey2 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\deniedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount.file.core.windows.net\file-share" -Credential $credential
Selecione Executar.
Você recebe a seguinte mensagem de erro na caixa de saída :
New-PSDrive : Access is denied
At line:1 char:1
+ New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount8675 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
O mapa da unidade é negado devido à política de ponto de extremidade do serviço que restringe o acesso à conta de armazenamento.
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:
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
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ê criou uma política de ponto de extremidade de serviço e a associou a uma sub-rede. Para saber mais sobre as políticas de ponto de extremidade de serviço, consulte Visão geral das políticas de ponto de extremidade de serviço.