Övning – Begränsa åtkomst till Azure Storage med hjälp av tjänstslutpunkter

Slutförd

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.

Diagram över tjänstslutpunkten och reglerna för övningsscenariot.

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.

  1. 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"
    
  2. 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.

  1. 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 '"')
    
  2. 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 '"')
    
  3. 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.

  1. 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
    
  2. 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
    
  3. 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.

  1. 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)"
    
  2. 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"
    
  3. Ange det lösenord som du använde när du skapade den virtuella datorn.

  4. 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 .

  5. 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"
    
  6. Ange det lösenord som du använde när du skapade den virtuella datorn.

  7. 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.