Oefening: Sandboxomgeving instellen
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
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')
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
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
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 deADMINLOGIN
referenties diePASSWORD
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.
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": "" }
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 depublicIpAddress
-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.
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.