Exercício – configurar um ambiente sandbox
Nesta unidade, você configura os recursos que usa ao longo deste módulo. Imagine uma arquitetura básica que consiste em um servidor que hospeda um aplicativo que seus clientes usam. O servidor se conecta a um banco de dados para o armazenamento de seus dados. O aplicativo é executado em uma máquina virtual (VM). O banco de dados migrou recentemente de um banco de dados do SQL Server em execução em uma VM para um banco de dados no serviço Banco de Dados SQL do Azure. Para mostrar como você pode proteger seu banco de dados, configure os seguintes recursos para uso em todo este módulo:
- Uma VM do Linux com o nome appServer. Esse servidor atua como o servidor de aplicativos ao qual os usuários estariam se conectando. Ele precisa se conectar ao banco de dados. Instale
sqlcmd
na VM para simular um aplicativo em execução no appServer fazendo conexões com o banco de dados. - Um servidor lógico da Base de Dados SQL do Azure. Este servidor lógico é necessário para alojar uma ou mais bases de dados.
- Um banco de dados em seu servidor lógico chamado marketplaceDb. Você o cria usando o banco de dados de demonstração AdventureWorksLT para ter algumas tabelas e dados para trabalhar. Esses dados incluem alguns dados confidenciais, como endereços de e-mail e números de telefone que você deseja proteger corretamente.
Criar uma Base de Dados SQL do Azure
Primeiro, configure algumas variáveis. Substitua os seguintes valores mostrados por
[]
valores de sua escolha. O[password]
deve ter pelo menos oito caracteres e conter caracteres de pelo menos três dessas categorias: caracteres maiúsculos, minúsculos, números e caracteres não alfanuméricos. Salve o valor para 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')
Execute o comando seguinte para criar um novo servidor lógico da Base de Dados SQL do Azure.
az sql server create \ --name $SERVERNAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --admin-user $ADMINLOGIN \ --admin-password $PASSWORD
Execute o seguinte comando para criar o banco de dados chamado marketplaceDb no servidor lógico que você criou. Este comando usa o banco de dados AdventureWorksLT como um modelo para que você tenha algumas tabelas pré-preenchidas para trabalhar.
az sql db create --resource-group $RESOURCEGROUP \ --server $SERVERNAME \ --name marketplaceDb \ --sample-name AdventureWorksLT \ --service-objective Basic
Execute o seguinte comando para obter a cadeia de conexão para este banco de dados.
az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
Sua saída deve ser semelhante ao exemplo a seguir. Mantenha este comando à mão porque você precisa dele para se conectar ao seu banco de dados posteriormente neste módulo. Observe os
[username]
espaços reservados e[password]
no comando que você deseja substituir pelasADMINLOGIN
credenciais ePASSWORD
especificadas nas variáveis anteriores.sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
Criar e configurar uma máquina virtual do Linux
Crie a VM Linux para usar através de alguns exemplos.
Execute o comando seguinte para criar a VM. Esse comando pode levar vários minutos para ser concluído.
az vm create \ --resource-group $RESOURCEGROUP \ --name appServer \ --image Ubuntu2204 \ --size Standard_DS2_v2 \ --public-ip-sku Standard \ --generate-ssh-keys
Quando esse comando for concluído, você verá uma saída semelhante ao exemplo a seguir.
{ "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": "" }
Depois que sua VM for criada com êxito, conecte-se ao endereço IP público usando SSH.
ssh nnn.nnn.nnn.nnn
Onde
nnn.nnn.nnn.nnn
é o valor do resultadopublicIpAddress
no passo anterior.Nota
Tenha dois aspetos em consideração. Primeiro, você não precisa de uma senha porque gerou um par de chaves SSH como parte da criação da VM. Em segundo lugar, na primeira conexão de shell com a VM, você será solicitado sobre a autenticidade do host. Isso ocorre porque você está se conectando a um endereço IP em vez de um nome de host. Responder sim salva o endereço IP como um host válido para conexão e permite que a conexão prossiga.
Conclua as coisas instalando o mssql-tools na VM Linux para que você possa se conectar ao seu banco de dados por meio do 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
Um monte de texto irá rolar para alguns desses comandos, então certifique-se de selecionar Enter após o comando final para garantir que ele seja executado.
Você criou um servidor lógico do Banco de Dados SQL do Azure, um banco de dados nesse servidor lógico e uma máquina virtual chamada appServer que simula a conectividade de rede de um servidor de aplicativos. Em seguida, dê uma olhada em como proteger adequadamente seu banco de dados.