Övning – Begränsa åtkomst till Azure Storage med hjälp av tjänstslutpunkter
Som lösningsarkitekt planerar du att flytta känsliga filer med tekniska diagram till Azure Storage. Filerna får endast vara tillgängliga från datorer i företagsnätverket. Du vill skapa en tjänstslutpunkt för virtuellt nätverk för Azure Storage i syfte att skydda anslutningen till dina lagringskonton.
I den här enheten skapar du en tjänstslutpunkt och använder nätverksregler för att begränsa åtkomsten till Azure Storage. Du skapar en tjänstslutpunkt för virtuellt nätverk för Azure Storage på undernätet Databaser. Sedan verifierar du att den virtuella datorn DataServer kan komma åt Azure Storage. Slutligen kontrollerar du att den virtuella datorn AppServer, som finns i ett annat undernät, inte har åtkomst till lagringen.
Lägga till regler i nätverkssäkerhetsgruppen
Här ser du till att kommunikationen med Azure Storage passerar via tjänstslutpunkten. Du lägger till regler för utgående trafik för att tillåta åtkomst till lagringstjänsten, men neka all annan Internettrafik.
Om du vill skapa en regel för utgående trafik för att tillåta åtkomst till Lagring kör du följande kommando i 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"
Om du vill skapa en regel för utgående trafik för att neka all internetåtkomst kör du följande kommando i 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."
Du bör nu ha följande regler i ERP-SERVERS-NSG:
Regelnamn | Riktning | Prioritet | Syfte |
---|---|---|---|
AllowSSHRule | Inkommande | 100 | Tillåt inkommande SSH |
httpRule | Inkommande | 150 | Neka från DataServer till AppServer på 80 |
Allow_Storage | Utgående | 190 | Tillåt åtkomst till Azure Storage |
Deny_Internet | Utgående | 200 | Neka åtkomst till Internet från virtuellt nätverk |
Nu har både AppServer och DataServer åtkomst till Azure Storage-tjänsten.
Konfigurera lagringskonto och filresurs
I det här steget skapar du ett nytt lagringskonto och lägger sedan till en Azure-filresurs i det här kontot. I den här filresursen lagras dina tekniska diagram.
Om du vill skapa ett lagringskonto för tekniska dokument kör du följande kommando i Cloud Shell:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Om du vill lagra lagringskontots primära nyckel i en variabel kör du följande kommando i Cloud Shell:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
Om du vill skapa en Azure-filresurs med namnet erp-data-share kör du följande kommando i Cloud Shell:
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Aktivera tjänstslutpunkten
Nu måste du konfigurera lagringskontot så att det endast är tillgängligt från databasservrar genom att tilldela lagringsslutpunkten till undernätet Databaser. Sedan måste du lägga till en säkerhetsregel i lagringskontot.
Om du vill tilldela Microsoft.Storage-slutpunkten till undernätet kör du följande kommando i Cloud Shell:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Om du vill neka all åtkomst ändrar du standardåtgärden till genom att
Deny
köra följande kommando i Cloud Shell. När nätverksåtkomst nekas är lagringskontot inte tillgängligt från något nätverk.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Om du vill begränsa åtkomsten till lagringskontot kör du följande kommando i Cloud Shell. Som standard är lagringskonton öppna för att acceptera all trafik. Du vill att endast trafik från undernätet Databases ska kunna komma åt lagringen.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Testa åtkomsten till lagringsresurser
I det här steget ansluter du till båda servrarna och kontrollerar att endast DataServer har åtkomst till Azure-filresursen på lagringskontot.
Om du vill spara de offentliga IP-adresserna för AppServer och DataServer i variabler kör du följande kommando i 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)"
Om du vill ansluta till din virtuella AppServer-dator och försöka montera Azure-filresursen kör du följande kommando i 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"
Ange det lösenord som du använde när du skapade den virtuella datorn.
Svaret bör innehålla ett
mount error
-meddelande. Den här anslutningen är inte tillåten eftersom det inte finns någon tjänstslutpunkt för lagringskontot i undernätet Program .Om du vill ansluta till den virtuella datorn DataServer och försöka montera Azure-filresursen kör du följande kommando i 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"
Ange det lösenord som du använde när du skapade den virtuella datorn.
Monteringen bör lyckas och svaret bör innehålla information om monteringspunkten. Det här tillåts eftersom du skapade tjänstslutpunkten för lagringskontot på undernätet Databases.
Du har nu verifierat att DataServer kan komma åt lagringen med hjälp av tjänstslutpunkten för undernätet Databases. Du har också har verifierat att AppServer inte har åtkomst till lagring. Det beror på att den här servern finns i ett annat undernät och inte har åtkomst till tjänstslutpunkten för det virtuella nätverket.