Ejercicio: Configuración de un entorno de espacio aislado
En esta unidad, configurará los recursos que se usan en este módulo. Cree una arquitectura básica que conste de un servidor que hospede una aplicación que usen los clientes. El servidor se conecta a una base de datos para el almacenamiento de sus datos. La aplicación se ejecuta en una máquina virtual (VM). La base de datos migrada recientemente de una base de datos SQL Server se ejecuta en una máquina virtual para una base de datos del servicio Azure SQL Database. Para mostrar cómo proteger la base de datos, configure los siguientes recursos para su uso a lo largo de este módulo:
- Una VM de Linux denominada appServer. Este servidor actúa como el servidor de aplicaciones al que se conectarían los usuarios. Debe conectarse a la base de datos. Instale
sqlcmd
en la máquina virtual para simular una aplicación que se ejecuta en appServer estableciendo conexiones con la base de datos. - Un servidor lógico de Azure SQL Database. Este servidor lógico es necesario para hospedar una o varias bases de datos.
- Una base de datos en el servidor lógico denominada marketplaceDb. Créela mediante la base de datos de demostración AdventureWorksLT, de forma que tenga algunas tablas y datos con los que trabajar. Estos datos incluyen algunos datos confidenciales, como direcciones de correo electrónico y números de teléfono, que querrá proteger correctamente.
Creación de una instancia de Azure SQL Database
En primer lugar, configure algunas variables Reemplace los siguientes valores que se muestran en
[]
por valores de su elección.[password]
debe tener un mínimo de ocho caracteres y contener caracteres de, al menos, tres de las siguientes categorías: caracteres en mayúsculas, caracteres en minúsculas, números y caracteres no alfanuméricos. Guarde el valor para su uso posterior.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')
Ejecute el siguiente comando para crear un nuevo servidor lógico en Azure SQL Database.
az sql server create \ --name $SERVERNAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --admin-user $ADMINLOGIN \ --admin-password $PASSWORD
Ejecute el comando siguiente para crear la base de datos denominada marketplaceDb en el servidor lógico que creó. Este comando usa la base de datos AdventureWorksLT como una plantilla, por lo que habrá algunas tablas rellenadas previamente con las que trabajar.
az sql db create --resource-group $RESOURCEGROUP \ --server $SERVERNAME \ --name marketplaceDb \ --sample-name AdventureWorksLT \ --service-objective Basic
Ejecute el siguiente comando para obtener la cadena de conexión de esta base de datos.
az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
La salida debería ser similar al ejemplo siguiente. Mantenga este comando a mano porque será necesario para conectarse a la base de datos posteriormente en este módulo. Observe los marcadores de posición
[username]
y[password]
en el comando, que le interesa reemplazar por las credencialesADMINLOGIN
yPASSWORD
que especificó anteriormente en variables.sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
Creación y configuración de una máquina virtual Linux
Cree la máquina virtual Linux que se usará a través de algunos ejemplos.
Ejecute el siguiente comando para crear la VM. Este comando puede tardar varios minutos en completarse.
az vm create \ --resource-group $RESOURCEGROUP \ --name appServer \ --image Ubuntu2204 \ --size Standard_DS2_v2 \ --public-ip-sku Standard \ --generate-ssh-keys
Cuando se complete este comando, debería ver una salida similar a la del ejemplo siguiente.
{ "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": "" }
Una vez que se haya creado correctamente la máquina virtual, conéctese a su dirección IP pública mediante SSH.
ssh nnn.nnn.nnn.nnn
Donde
nnn.nnn.nnn.nnn
es el valor de la salida depublicIpAddress
en el paso anterior.Nota:
Tenga en cuenta dos cosas. En primer lugar, no se necesita una contraseña porque se generó un par de claves SSH como parte de la creación de la máquina virtual. En segundo lugar, en la primera conexión del shell a la máquina virtual, se le preguntará sobre la autenticidad del host. Esto ocurre porque la conexión se realiza a una dirección IP en lugar de un nombre de host. Al contestar sí, se guarda la dirección IP como un host válido para la conexión y se permite que continúe la conexión.
Para finalizar, instale mssql-tools en la máquina virtual Linux para que pueda conectarse a la base de datos a través de 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
Nota:
Para algunos de estos comandos, se mostrará una gran cantidad de texto, por lo que asegúrese de seleccionar Entrar después del último comando para garantizar que se ejecute.
Se creó un servidor lógico de Azure SQL Database, una base de datos en el servidor lógico y una máquina virtual denominada appServer, que se usará para simular la conectividad de red desde un servidor de aplicaciones. A continuación, eche un vistazo a cómo proteger correctamente la base de datos.