Oefening: Toegang tot Azure Storage beperken met behulp van service-eindpunten

Voltooid

Als oplossingsarchitect bent u van plan gevoelige technische diagrambestanden naar Azure Storage te verplaatsen. De bestanden mogen alleen toegankelijk zijn vanaf computers binnen het bedrijfsnetwerk. U wilt een service-eindpunt voor virtueel netwerk maken voor Azure Storage om de verbinding met uw opslagaccounts te beveiligen.

In dit onderdeel maakt u een service-eindpunt en gebruikt u netwerkregels om de toegang tot Azure Storage te beperken. U maakt een service-eindpunt voor virtueel netwerk voor Azure Storage op het subnet Databases. U kunt vervolgens controleren of uw DataServer-VM toegang heeft tot Azure Storage. Ten slotte controleert u of de AppServer-VM, die zich op een ander subnet bevindt, geen toegang heeft tot Azure Storage.

Diagram of exercise scenario service endpoint and rules.

Hiermee worden regels aan de netwerkbeveiligingsgroep toegevoegd

Hier zorgt u ervoor dat de communicatie met Azure Storage het service-eindpunt passeert. U voegt uitgaande regels toe om toegang tot de Storage-service toe te staan, maar alle andere internetverkeer te weigeren.

  1. Als u een uitgaande regel wilt maken om toegang tot Storage toe te staan, voert u de volgende opdracht uit in 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. Als u een uitgaande regel wilt maken om alle internettoegang te weigeren, voert u de volgende opdracht uit in 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."
    

U hebt nu de volgende regels in ERP-SERVERS-NSG:

Naam van de regel Richting Prioriteit Doel
AllowSSHRule Inkomend 100 Inkomende SSH toestaan
httpRule Inkomend 150 DataServer aan AppServer op 80 weigeren
Allow_Storage Uitgaand 190 Toegang tot Azure Storage toestaan
Deny_Internet Uitgaand 200 Toegang tot Internet vanaf VNet weigeren

Op dit moment hebben AppServer en DataServer toegang tot de Azure Storage-service.

Een Azure-opslagaccount en een bestandsshare configureren

In deze stap maakt u een nieuw opslagaccount en voegt u vervolgens een Azure-bestandsshare toe aan dit account. Deze bestandsshare is de plek waar u uw technische diagrammen opslaat.

  1. Als u een opslagaccount voor technische documenten wilt maken, voert u de volgende opdracht uit in Cloud Shell:

    STORAGEACCT=$(az storage account create \
                    --resource-group $rg \
                    --name engineeringdocs$RANDOM \
                    --sku Standard_LRS \
                    --query "name" | tr -d '"')
    
  2. Als u de primaire sleutel van uw opslagaccount in een variabele wilt opslaan, voert u de volgende opdracht uit in Cloud Shell:

    STORAGEKEY=$(az storage account keys list \
                    --resource-group $rg \
                    --account-name $STORAGEACCT \
                    --query "[0].value" | tr -d '"')
    
  3. Als u een Azure-bestandsshare met de naam erp-data-share wilt maken, voert u de volgende opdracht uit in Cloud Shell:

    az storage share create \
        --account-name $STORAGEACCT \
        --account-key $STORAGEKEY \
        --name "erp-data-share"
    

Het service-eindpunt inschakelen

U moet nu configureren dat het opslagaccount alleen toegankelijk is vanaf databaseservers door het opslageindpunt toe te wijzen aan het subnet Databases . Vervolgens moet u een beveiligingsregel toevoegen aan het opslagaccount.

  1. Als u het Microsoft.Storage-eindpunt wilt toewijzen aan het subnet, voert u de volgende opdracht uit in Cloud Shell:

    az network vnet subnet update \
        --vnet-name ERP-servers \
        --resource-group $rg \
        --name Databases \
        --service-endpoints Microsoft.Storage
    
  2. Als u alle toegang wilt weigeren, wijzigt u de standaardactie Deny in door de volgende opdracht uit te voeren in Cloud Shell. Nadat de netwerktoegang is geweigerd, is het opslagaccount niet toegankelijk vanuit een netwerk.

    az storage account update \
        --resource-group $rg \
        --name $STORAGEACCT \
        --default-action Deny
    
  3. Als u de toegang tot het opslagaccount wilt beperken, voert u de volgende opdracht uit in Cloud Shell. Opslagaccounts zijn standaard geopend om al het verkeer te accepteren. U wilt dat alleen verkeer van het subnet Databases toegang heeft tot de opslag.

    az storage account network-rule add \
        --resource-group $rg \
        --account-name $STORAGEACCT \
        --vnet-name ERP-servers \
        --subnet Databases
    

Toegang tot storage-resources testen

In deze stap maakt u verbinding met beide servers en controleert u of alleen DataServer toegang heeft tot de Azure-bestandsshare in het opslagaccount.

  1. Als u de openbare IP-adressen van AppServer en DataServer wilt opslaan in variabelen, voert u de volgende opdracht uit in 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. Als u verbinding wilt maken met uw AppServer-VM en de Azure-bestandsshare wilt koppelen, voert u de volgende opdracht uit in 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. Voer het wachtwoord in dat u hebt gebruikt bij het maken van de VM.

  4. Het antwoord moet een bericht mount error bevatten. Deze verbinding is niet toegestaan omdat er geen service-eindpunt is voor het opslagaccount in het subnet Toepassingen .

  5. Als u verbinding wilt maken met uw DataServer-VM en de Azure-bestandsshare wilt koppelen, voert u de volgende opdracht uit in 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. Voer het wachtwoord in dat u hebt gebruikt bij het maken van de VM.

  7. De koppeling moet slagen en het antwoord moet details van het koppelpunt bevatten. Dit is toegestaan omdat u het service-eindpunt voor het opslagaccount hebt gemaakt op het Databases-subnet.

U hebt nu geverifieerd dat DataServer toegang heeft tot opslag, door het service-eindpunt van de opslag te gebruiken op het subnet Databases. U hebt ook gecontroleerd dat AppServer geen toegang heeft tot de opslag. Dit komt doordat deze server zich in een ander subnet bevindt en geen toegang heeft tot het service-eindpunt van het virtuele netwerk.