Ćwiczenie — Konfigurowanie środowiska piaskownicy
W tej lekcji skonfigurujesz zasoby używane w tym module. Zaiwizuj podstawową architekturę, która składa się z serwera obsługującego aplikację używaną przez klientów. Serwer łączy się z bazą danych na potrzeby przechowywania danych. Aplikacja działa na maszynie wirtualnej. Baza danych została niedawno zmigrowana z bazy danych programu SQL Server uruchomionej na maszynie wirtualnej do bazy danych w usłudze Azure SQL Database. Aby pokazać, jak można zabezpieczyć bazę danych, skonfiguruj następujące zasoby do użycia w tym module:
- Maszyna wirtualna z systemem Linux o nazwie appServer. Ten serwer działa jako serwer aplikacji, z którymi użytkownicy będą się łączyć. Musi nawiązać połączenie z bazą danych. Zainstaluj
sqlcmd
na maszynie wirtualnej, aby zasymulować aplikację działającą na maszynie appServer wykonującej połączenia z bazą danych. - Serwer logiczny usługi Azure SQL Database. Ten serwer logiczny jest potrzebny, aby hostować co najmniej jedną bazę danych.
- Baza danych na serwerze logicznym o nazwie marketplaceDb. Tworzysz ją przy użyciu demonstracyjnej bazy danych AdventureWorksLT , aby móc pracować z niektórymi tabelami i danymi. Te dane obejmują pewne poufne dane, takie jak adresy e-mail i numery telefonów, które mają być prawidłowo zabezpieczone.
Tworzenie bazy danych SQL platformy Azure
Najpierw skonfiguruj niektóre zmienne. Zastąp następujące wartości, które są wyświetlane w
[]
pliku z wybranymi wartościami. Musi[password]
zawierać co najmniej osiem znaków i zawierać znaki z co najmniej trzech z tych kategorii: wielkie litery, małe litery, cyfry i znaki niefanumeryczne. Zapisz wartość do użycia później.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')
Uruchom następujące polecenie, aby utworzyć nowy serwer logiczny usługi Azure SQL Database.
az sql server create \ --name $SERVERNAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --admin-user $ADMINLOGIN \ --admin-password $PASSWORD
Uruchom następujące polecenie, aby utworzyć bazę danych o nazwie marketplaceDb na utworzonym serwerze logicznym. To polecenie używa bazy danych AdventureWorksLT jako szablonu, więc niektóre wstępnie wypełnione tabele do pracy.
az sql db create --resource-group $RESOURCEGROUP \ --server $SERVERNAME \ --name marketplaceDb \ --sample-name AdventureWorksLT \ --service-objective Basic
Uruchom następujące polecenie, aby uzyskać parametry połączenia dla tej bazy danych.
az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
Dane wyjściowe powinny przypominać poniższy przykład. Zachowaj to polecenie przydatne, ponieważ to polecenie jest potrzebne do nawiązania połączenia z bazą danych w dalszej części tego modułu. Zanotuj
[username]
symbole zastępcze i[password]
w poleceniu, które chcesz zamienić naADMINLOGIN
poświadczenia iPASSWORD
określone wcześniej w zmiennych.sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
Tworzenie i konfigurowanie maszyny wirtualnej z systemem Linux
Utwórz maszynę wirtualną z systemem Linux, która będzie używana za pomocą niektórych przykładów.
Uruchom następujące polecenie, aby utworzyć bazę danych: Wykonanie tego polecenia może potrwać kilka minut.
az vm create \ --resource-group $RESOURCEGROUP \ --name appServer \ --image Ubuntu2204 \ --size Standard_DS2_v2 \ --public-ip-sku Standard \ --generate-ssh-keys
Po zakończeniu tego polecenia powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu.
{ "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": "" }
Po pomyślnym utworzeniu maszyny wirtualnej połącz się z publicznym adresem IP przy użyciu protokołu SSH.
ssh nnn.nnn.nnn.nnn
Gdzie
nnn.nnn.nnn.nnn
jest wartością z danych wyjściowych elementupublicIpAddress
w poprzednim kroku.Uwaga
Pamiętaj o dwóch rzeczach. Najpierw nie potrzebujesz hasła, ponieważ w ramach tworzenia maszyny wirtualnej wygenerowano parę kluczy SSH. Po drugie, podczas pierwszego połączenia powłoki z maszyną wirtualną zostanie wyświetlony monit o autentyczność hosta. Dzieje się tak, ponieważ nawiązujesz połączenie z adresem IP zamiast z nazwą hosta. Odpowiedź tak zapisuje adres IP jako prawidłowy host połączenia i umożliwia kontynuowanie połączenia.
Zakończ elementy, instalując narzędzia mssql-tools na maszynie wirtualnej z systemem Linux, aby można było nawiązać połączenie z bazą danych za pomocą narzędzia sqlcmd.
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
Uwaga
W przypadku niektórych z tych poleceń przewija się wiele tekstu, dlatego upewnij się, że po ostatnim poleceniu wybierzesz Enter , aby upewnić się, że jest on uruchamiany.
Utworzono serwer logiczny usługi Azure SQL Database, bazę danych na tym serwerze logicznym i maszynę wirtualną o nazwie appServer , która symuluje łączność sieciową z serwera aplikacji. Następnie przyjrzyj się, jak prawidłowo zabezpieczyć bazę danych.