Exercício – Configurar o ambiente de área restrita

Concluído

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

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

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

  3. 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.