Exercício – configurar um ambiente sandbox

Concluído

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

  1. 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$RANDOM
    export RESOURCEGROUP=<rgn>[sandbox resource group name]</rgn>
    export LOCATION=$(az group show --name $RESOURCEGROUP | jq -r '.location')
    
  2. 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
    
  3. 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
    
  4. 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 no comando que você deseja substituir pelas ADMINLOGIN credenciais e [password]PASSWORD 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.

  1. 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": ""
    }
    
  2. 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 resultado publicIpAddress 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.

  3. Conclua as coisas instalando mssql-tools na VM Linux para que você possa se conectar ao seu banco de dados através 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.