Exercício – Restringir o acesso ao Armazenamento do Microsoft Azure com pontos finais de serviço
Como arquiteto de soluções, está a planear mover ficheiros dos diagramas de engenharia confidenciais para o Armazenamento do Microsoft Azure. Os ficheiros têm de ser acessíveis apenas a partir dos computadores dentro da rede empresarial. Quer criar um ponto final de serviço de rede virtual para o Armazenamento do Microsoft Azure para proteger a conectividade com as suas contas de armazenamento.
Nesta unidade, irá criar um ponto final de serviço e utilizar regras de rede para restringir o acesso ao Armazenamento do Azure. Vai criar um ponto final de serviço de rede virtual para o Armazenamento do Microsoft Azure na sub-rede Bases de dados. Em seguida, irá verificar se a VM DataServer consegue aceder ao Armazenamento do Azure. Por fim, irá confirmar que a VM AppServer, que está numa sub-rede diferente, não consegue aceder ao armazenamento.
Adicionar regras ao grupo de segurança de rede
Aqui, você garantirá que as comunicações com o Armazenamento do Azure passem pelo ponto de extremidade do serviço. Você adicionará regras de saída para permitir o acesso ao serviço de armazenamento, mas negará todo o restante tráfego da Internet.
Para criar uma regra de saída para 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 para 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."
Deverá ter as seguintes regras em ERP-SERVERS-NSG:
Nome da regra | Direção | Prioridade | Objetivo |
---|---|---|---|
AllowSSHRule | Interna | 100 | Permitir SSH de entrada |
httpRule | Interna | 150 | Negar de DataServer para AppServer na porta 80 |
Allow_Storage | De Saída | 185 | Permitir o acesso ao Armazenamento do Azure |
Deny_Internet | De Saída | 200 | Negar o acesso à Internet a partir da VNet |
Neste momento, AppServer e DataServer têm acesso ao serviço de Armazenamento do Azure.
Configurar a conta de armazenamento e a partilha de ficheiros
Nesta etapa, você criará uma nova conta de armazenamento e adicionará um compartilhamento de arquivos do Azure a essa conta. Esse compartilhamento de arquivos é onde 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 arquivos 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"
Ativar o ponto final de serviço
Agora você precisa configurar a conta de armazenamento para ser acessível somente a partir de 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 seguinte comando no Cloud Shell. Depois que o acesso à rede é negado, a conta de armazenamento não é acessível a partir de nenhuma rede.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Para restringir o acesso à conta de armazenamento, execute o seguinte comando no Cloud Shell. Por predefinição, as contas de armazenamento estão abertas para aceitar todo o tráfego. Pretende que apenas o tráfego da sub-rede Bases de dados consiga aceder ao 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á a ambos os 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 à sua VM do 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"
Introduza a palavra-passe que utilizou quando criou a VM.
A resposta deve 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 à sua VM DataServer e tentar montar o compartilhamento de arquivos 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"
Introduza a palavra-passe que utilizou quando criou a VM.
A montagem deve ser bem-sucedida e a resposta deve incluir detalhes do ponto de montagem. Tal é permitido porque criou o ponto final de serviço para a conta de armazenamento na sub-rede Bases de dados.
Ao utilizar o ponto final de serviço de armazenamento na sub-rede Bases de dados, confirmou que o DataServer pode aceder ao armazenamento. Também confirmou que o AppServer não consegue aceder ao armazenamento. Isso ocorre porque esse servidor está em uma sub-rede diferente e não tem acesso ao ponto de extremidade do serviço de rede virtual.