Exercício – Configurar o ambiente de área restrita
Nesta unidade, você configurará os recursos usados 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 VM (máquina virtual). 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 denominada 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 do Banco de Dados SQL do Azure. Esse servidor lógico é necessário para hospedar um ou mais bancos de dados.
- Um banco de dados em seu servidor lógico chamado marketplaceDb. Crie-o usando o banco de dados de demonstração AdventureWorksLT para que você tenha algumas tabelas e dados para trabalhar. Esses dados incluem alguns dados confidenciais, como endereços de email e números de telefone que você deseja proteger corretamente.
Criar um Banco de Dados SQL do Azure
Primeiro, configure algumas variáveis. Substitua os valores a seguir que são mostrados em
[]
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, caracteres minúsculos, números e caracteres não numéricos. Salve o valor para uso posteriormente.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 seguinte comando para criar um novo servidor lógico do Banco de Dados SQL do Azure.
az sql server create \ --name $SERVERNAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --admin-user $ADMINLOGIN \ --admin-password $PASSWORD
Execute o comando a seguir para criar o banco de dados chamado marketplaceDb no servidor lógico que você criou. Esse 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 comando a seguir para obter a cadeia de conexão deste banco de dados.
az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
A saída deverá ser parecida com o exemplo a seguir. Mantenha esse comando à mão porque você precisa desse comando para se conectar ao banco de dados mais adiante neste módulo. Observe os espaços reservados
[username]
e[password]
no comando que você deseja substituir pelas credenciaisADMINLOGIN
ePASSWORD
especificadas em variáveis anteriormente.sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
Criar e configurar uma máquina virtual Linux
Crie a VM do Linux que será usada por meio de alguns exemplos.
Execute o comando a seguir 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ê deverá 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 a VM for criada com êxito, conecte-se ao endereço IP público dela usando o SSH.
ssh nnn.nnn.nnn.nnn
Em que
nnn.nnn.nnn.nnn
é o valor da saídapublicIpAddress
na etapa anterior.Observação
Dois pontos a serem observados. 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 do shell com a VM, você será avisado 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 mssql-tools na VM do Linux para que você possa se conectar ao 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
Observação
Muito texto será rolado para alguns desses comandos, portanto, selecione 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 corretamente seu banco de dados.