Exercício – Restringir o acesso ao Armazenamento do Azure usando pontos de extremidade de serviço
Como o arquiteto de soluções, você pretende mover arquivos confidenciais de diagrama de engenharia para o Armazenamento do Azure. Os arquivos só precisam ser acessíveis em computadores da rede corporativa. Você deseja criar um ponto de extremidade de serviço de rede virtual para o Armazenamento do Azure a fim de proteger a conectividade com suas contas de armazenamento.
Nesta unidade, você criará um ponto de extremidade de serviço e usará regras de rede para restringir o acesso ao Armazenamento do Azure. Você criará um ponto de extremidade de serviço de rede virtual para o Armazenamento do Azure na sub-rede Bancos de Dados. Em seguida, você verificará se a VM DataServer pode acessar o Armazenamento do Azure. Por fim, você verificará se a VM AppServer, que está em outra sub-rede, não pode acessar o armazenamento.
Adicionar regras ao Grupo de Segurança de Rede
Aqui, você garantirá que as comunicações com o Armazenamento do Azure passe pelo ponto de extremidade de serviço. Adicionará as regras de saída para permitir o acesso ao serviço de Armazenamento, mas negará todos os tráfegos da internet.
Para criar uma regra de saída a fim de permitir o acesso ao Armazenamento, execute o seguinte comando no Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Allow_Storage \ --priority 190 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Storage" \ --destination-port-ranges '*' \ --access Allow \ --protocol '*' \ --description "Allow access to Azure Storage"
Para criar uma regra de saída a fim de negar todo o acesso à Internet, execute o seguinte comando no Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Deny_Internet \ --priority 200 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Internet" \ --destination-port-ranges '*' \ --access Deny \ --protocol '*' \ --description "Deny access to Internet."
Agora você deverá ter as seguintes regras em ERP-SERVERS-NSG:
Nome da regra | Direção | Prioridade | Finalidade |
---|---|---|---|
AllowSSHRule | Entrada | 100 | Permitir SSH de entrada |
httpRule | Entrada | 150 | Negar acesso do DataServer ao AppServer na porta 80 |
Allow_Storage | Saída | 190 | Permitir acesso ao Armazenamento do Azure |
Deny_Internet | Saída | 200 | Negar acesso à Internet na VNET |
Neste ponto, AppServer e DataServer têm acesso ao serviço de Armazenamento do Azure.
Configurar uma conta de armazenamento e um compartilhamento de arquivo
Nesta etapa, você criará uma conta de armazenamento e, em seguida, adicionará um compartilhamento de arquivo do Azure a ela. Esse compartilhamento de arquivo é o local em que você armazenará seus diagramas de engenharia.
Para criar uma conta de armazenamento para documentos de engenharia, execute o seguinte comando no Cloud Shell:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Para armazenar a chave primária da sua conta de armazenamento em uma variável, execute o seguinte comando no Cloud Shell:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
Para criar um compartilhamento de arquivo do Azure chamado erp-data-share, execute o seguinte comando no Cloud Shell:
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Habilitar o ponto de extremidade de serviço
Agora você precisa configurar a conta de armazenamento para que ela esteja acessível somente nos servidores de banco de dados, atribuindo o ponto de extremidade de armazenamento à sub-rede Bancos de Dados. Em seguida, você precisa adicionar uma regra de segurança à conta de armazenamento.
Para atribuir o ponto de extremidade Microsoft.Storage à sub-rede, execute o seguinte comando no Cloud Shell:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Para negar todo o acesso, altere a ação padrão para
Deny
executando o comando a seguir no Cloud Shell. Depois que o acesso à rede for negado, a conta de armazenamento não poderá ser acessada em nenhuma rede.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Para restringir o acesso à conta de armazenamento, execute o comando a seguir no Cloud Shell. Por padrão, as contas de armazenamento são abertas para aceitar todo o tráfego. Você deseja que apenas o tráfego da sub-rede Bancos de Dados possa acessar o armazenamento.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Testar o acesso aos recursos de armazenamento
Nesta etapa, você se conectará aos dois servidores e verificará se apenas o DataServer tem acesso ao compartilhamento de arquivos do Azure na conta de armazenamento.
Para salvar os endereços IP públicos de AppServer e DataServer em variáveis, execute o seguinte comando no Cloud Shell:
APPSERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name AppServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" DATASERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name DataServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Para se conectar à VM AppServer e tentar montar o compartilhamento de arquivos do Azure, execute o seguinte comando no Cloud Shell:
ssh -t azureuser@$APPSERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp; findmnt \ -t cifs; exit; bash"
Insira a senha que você usou quando criou a VM.
A resposta deverá incluir uma mensagem
mount error
. Essa conexão não é permitida porque não há nenhum ponto de extremidade de serviço para a conta de armazenamento na sub-rede Aplicativos.Para se conectar à VM DataServer e tentar montar o compartilhamento de arquivo do Azure, execute o seguinte comando no Cloud Shell:
ssh -t azureuser@$DATASERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp;findmnt \ -t cifs; exit; bash"
Insira a senha que você usou quando criou a VM.
A montagem deve ser bem-sucedida e a resposta deverá incluir detalhes do ponto de montagem. Isso é permitido, pois você criou o ponto de extremidade de serviço para a conta de armazenamento na sub-rede Bancos de Dados.
Usando o ponto de extremidade de serviço de armazenamento na sub-rede Databases, você já verificou que DataServer pode acessar o armazenamento. Você também verificou que AppServer não é capaz de acessar o armazenamento. Isso ocorre porque esse servidor está em outra sub-rede e não tem acesso ao ponto de extremidade de serviço de rede virtual.