Cvičení – omezení přístupu k Azure Storage pomocí koncových bodů služby

Dokončeno

Jako architekt řešení máte v úmyslu přesunout citlivé soubory projektových diagramů do služby Azure Storage. Je nutné, aby se k souborům dalo přistupovat pouze z počítačů uvnitř podnikové sítě. Abyste zajistili připojení k účtům úložiště, chcete vytvořit koncový bod služby pro virtuální síť pro službu Azure Storage.

V této lekci vytvoříte koncový bod služby a použijete síťová pravidla k omezení přístupu ke službě Azure Storage. Vytvoříte koncový bod služby pro virtuální síť pro službu Azure Storage v podsíti Databases. Potom ověříte, že váš virtuální počítač DataServer může přistupovat ke službě Azure Storage. Nakonec zkontrolujete, že virtuální počítač AppServer, který se nachází v jiné podsíti, nemůže přistupovat k úložišti.

Diagram scénáře cvičení – koncový bod služby a pravidla

Přidání pravidel ke skupině zabezpečení sítě

Tady zajistíte, aby komunikace se službou Azure Storage prošla koncovým bodem služby. Přidáte odchozí pravidla, která povolí přístup ke službě Storage, ale zakážete veškerý ostatní internetový provoz.

  1. Pokud chcete vytvořit odchozí pravidlo pro povolení přístupu ke službě Storage, spusťte v Cloud Shellu následující příkaz:

    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. Pokud chcete vytvořit odchozí pravidlo pro odepření veškerého přístupu k internetu, spusťte v Cloud Shellu následující příkaz:

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

Nyní byste měli mít v ERP-SERVERS-NSG následující pravidla:

Název pravidla Směr Priorita Účel
AllowSSHRule Příchozí 100 Povolit příchozí SSH
httpRule Příchozí 150 Zakázat z DataServeru na AppServer na portu 80
Allow_Storage Odchozí 190 Povolit přístup ke službě Azure Storage
Deny_Internet Odchozí 200 Zakázat přístup k internetu ze sítě VNet

V tomto okamžiku mají oba počítače AppServer i DataServer přístup ke službě Azure Storage.

Konfigurace účtu úložiště a sdílené složky

V tomto kroku vytvoříte nový účet úložiště a pak do tohoto účtu přidáte sdílenou složku Azure. Tato sdílená složka je místo, kam budete ukládat své technické diagramy.

  1. Pokud chcete vytvořit účet úložiště pro technické dokumenty, spusťte v Cloud Shellu následující příkaz:

    STORAGEACCT=$(az storage account create \
                    --resource-group $rg \
                    --name engineeringdocs$RANDOM \
                    --sku Standard_LRS \
                    --query "name" | tr -d '"')
    
  2. Pokud chcete uložit primární klíč účtu úložiště do proměnné, spusťte v Cloud Shellu následující příkaz:

    STORAGEKEY=$(az storage account keys list \
                    --resource-group $rg \
                    --account-name $STORAGEACCT \
                    --query "[0].value" | tr -d '"')
    
  3. Pokud chcete vytvořit sdílenou složku Azure s názvem erp-data-share, spusťte v Cloud Shellu následující příkaz:

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

Povolení koncového bodu služby

Teď musíte nakonfigurovat účet úložiště tak, aby byl přístupný jenom z databázových serverů přiřazením koncového bodu úložiště k podsíti Databáze. Pak musíte do účtu úložiště přidat pravidlo zabezpečení.

  1. Pokud chcete k podsíti přiřadit koncový bod Microsoft.Storage , spusťte v Cloud Shellu následující příkaz:

    az network vnet subnet update \
        --vnet-name ERP-servers \
        --resource-group $rg \
        --name Databases \
        --service-endpoints Microsoft.Storage
    
  2. Pokud chcete odepřít veškerý přístup, změňte výchozí akci Deny spuštěním následujícího příkazu v Cloud Shellu. Po odepření síťového přístupu není účet úložiště přístupný z žádné sítě.

    az storage account update \
        --resource-group $rg \
        --name $STORAGEACCT \
        --default-action Deny
    
  3. Pokud chcete omezit přístup k účtu úložiště, spusťte v Cloud Shellu následující příkaz. Účty úložiště jsou ve výchozím nastavení otevřené pro přijímání veškerého provozu. Chcete, aby k úložišti mohl přistupovat pouze provoz z podsítě Databases.

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

Otestování přístupu k prostředkům úložiště

V tomto kroku se připojíte k oběma serverům a ověříte, že ke sdílené složce Azure v účtu úložiště má přístup jenom DataServer .

  1. Pokud chcete uložit veřejné IP adresy AppServeru a DataServeru do proměnných, spusťte v Cloud Shellu následující příkaz:

    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. Pokud se chcete připojit k virtuálnímu počítači AppServer a pokusíte se připojit sdílenou složku Azure, spusťte v Cloud Shellu následující příkaz:

    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. Zadejte heslo, které jste použili při vytvoření tohoto virtuálního počítače.

  4. Odpověď by měla obsahovat zprávu mount error. Toto připojení není povolené, protože pro účet úložiště v podsíti Aplikace neexistuje žádný koncový bod služby.

  5. Pokud se chcete připojit k virtuálnímu počítači DataServer a pokusit se připojit sdílenou složku Azure, spusťte v Cloud Shellu následující příkaz:

    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. Zadejte heslo, které jste použili při vytvoření tohoto virtuálního počítače.

  7. Připojení by mělo proběhnout úspěšně a odpověď by měla obsahovat podrobnosti o přípojné bodě. Je to povoleno, protože jste vytvořili koncový bod služby pro účet úložiště v podsíti Databases.

Teď jste ověřili, že počítač DataServer může přistupovat k úložišti, a to pomocí koncového bodu služby úložiště v podsíti Databases. Také jste ověřili, že AppServer k úložišti přistupovat nemůže. Důvodem je to, že tento server je v jiné podsíti a nemá přístup ke koncovému bodu služby virtuální sítě.