Oefening: Sandboxomgeving instellen

Voltooid

In deze les stelt u de resources in die u in deze module gebruikt. Stel een basisarchitectuur voor die bestaat uit een server die als host fungeert voor een toepassing die uw klanten gebruiken. De server maakt verbinding met een database voor de opslag van de gegevens. De toepassing wordt uitgevoerd op een virtuele machine (VM). De database is onlangs gemigreerd van een SQL Server-database die op een VIRTUELE machine wordt uitgevoerd naar een database in de Azure SQL Database-service. Als u wilt zien hoe u uw database kunt beveiligen, stelt u de volgende resources in voor gebruik in deze module:

  • Een Linux-VM met de naam appServer. Deze server fungeert als de toepassingsserver waarmee gebruikers verbinding maken. Er moet verbinding worden gemaakt met de database. Installeer sqlcmd op de VIRTUELE machine om een toepassing te simuleren die wordt uitgevoerd op appServer die verbindingen maakt met de database.
  • Een logische server met Azure SQL Database. Deze logische server is nodig voor het hosten van een of meer databases.
  • Een database op uw logische server met de naam marketplaceDb. U maakt deze met behulp van de AdventureWorksLT-demodatabase , zodat u enkele tabellen en gegevens hebt waarmee u kunt werken. Deze gegevens omvatten enkele gevoelige gegevens, zoals e-mailadressen en telefoonnummers die u op de juiste manier wilt beveiligen.

Een Azure SQL-database maken

  1. Stel eerst enkele variabelen in. Vervang de volgende waarden die worden weergegeven door [] de waarden van uw keuze. De [password] tekens moeten ten minste acht tekens bevatten en tekens bevatten uit ten minste drie van deze categorieën: hoofdletters, kleine letters, cijfers en niet-phanumerische tekens. Sla de waarde op voor later gebruik.

    export ADMINLOGIN='[ServerAdmin]'
    export PASSWORD='[password]'
    export SERVERNAME=[server-name]
    export RESOURCEGROUP=<rgn>[sandbox resource group name]</rgn>
    export LOCATION=$(az group show --name $RESOURCEGROUP | jq -r '.location')
    
  2. Voer de volgende opdracht uit om een nieuwe logische server met Azure SQL Database te maken.

    az sql server create \
        --name $SERVERNAME \
        --resource-group $RESOURCEGROUP \
        --location $LOCATION \
        --admin-user $ADMINLOGIN \
        --admin-password $PASSWORD
    
  3. Voer de volgende opdracht uit om de database marketplaceDb te maken op de logische server die u hebt gemaakt. Met deze opdracht wordt de AdventureWorksLT-database als sjabloon gebruikt, zodat u een aantal vooraf ingevulde tabellen hebt om mee te werken.

    az sql db create --resource-group $RESOURCEGROUP \
        --server $SERVERNAME \
        --name marketplaceDb \
        --sample-name AdventureWorksLT \
        --service-objective Basic
    
  4. Voer de volgende opdracht uit om de verbindingsreeks voor deze database op te halen.

    az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
    

    De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld. Houd deze opdracht handig omdat u deze opdracht nodig hebt om later in deze module verbinding te maken met uw database. Noteer de [username] tijdelijke [password] aanduidingen in de opdracht die u wilt vervangen door de ADMINLOGIN referenties die PASSWORD u eerder hebt opgegeven in variabelen.

    sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
    

Een virtuele Linux-machine maken en configureren

Maak de Virtuele Linux-machine die moet worden gebruikt via enkele voorbeelden.

  1. Voer de volgende opdracht uit om de VM te maken. Het uitvoeren van deze opdracht kan enkele minuten in beslag nemen.

    az vm create \
      --resource-group $RESOURCEGROUP \
      --name appServer \
      --image Ubuntu2204 \
      --size Standard_DS2_v2 \
      --public-ip-sku Standard \
      --generate-ssh-keys
    

    Wanneer deze opdracht is voltooid, ziet u uitvoer die lijkt op het volgende voorbeeld.

    {
      "fqdns": "",
      "id": "/subscriptions/nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/resourceGroups/learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/providers/Microsoft.Compute/virtualMachines/appServer",
      "location": "westus",
      "macAddress": "nn-nn-nn-nn-nn-nn",
      "powerState": "VM running",
      "privateIpAddress": "nn.nn.nn.nn",
      "publicIpAddress": "nnn.nnn.nnn.nnn",
      "resourceGroup": "learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn",
      "zones": ""
    }
    
  2. Nadat uw VIRTUELE machine is gemaakt, maakt u verbinding met het openbare IP-adres met behulp van SSH.

    ssh nnn.nnn.nnn.nnn
    

    Hierbij is nnn.nnn.nnn.nnn de waarde van de publicIpAddress-uitvoer in de vorige stap.

    Notitie

    Er vallen twee zaken op. U hebt eerst geen wachtwoord nodig omdat u een SSH-sleutelpaar hebt gegenereerd als onderdeel van het maken van de virtuele machine. Ten tweede wordt u bij de eerste shellverbinding met de VIRTUELE machine gevraagd om de echtheid van de host. Dit komt doordat u verbinding maakt met een IP-adres in plaats van een hostnaam. Als u ja beantwoordt, wordt het IP-adres opgeslagen als een geldige host voor de verbinding en kan de verbinding worden voortgezet.

  3. Voltooi alles door mssql-tools te installeren op de Virtuele Linux-machine, zodat u via sqlcmd verbinding kunt maken met uw database.

    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
    source ~/.bashrc
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    sudo apt-get update
    sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18 unixodbc-dev
    

    Notitie

    Voor sommige van deze opdrachten schuift u veel tekst door, dus zorg ervoor dat u Enter selecteert na de laatste opdracht om ervoor te zorgen dat deze wordt uitgevoerd.

U hebt een logische Azure SQL Database-server, een database op die logische server en een virtuele machine met de naam appServer gemaakt die netwerkconnectiviteit van een toepassingsserver simuleert. Bekijk vervolgens hoe u uw database op de juiste manier kunt beveiligen.