Configurar recursos de rede e segurança

Concluído

Os principais recursos de rede e segurança do Banco de Dados do Azure para MySQL - Servidor Flexível incluem controle de acesso, conectividade e suporte para o Microsoft Entra ID, uma plataforma centralizada para gerenciar identidades, funções e permissões. O servidor flexível do MySQL também criptografam todos os dados em trânsito por padrão e permitem a criptografia de dados inativos com chaves gerenciadas pelo Azure ou pelo cliente.

Rede

Configurar o acesso à rede

Ao criar um servidor flexível MySQL, você pode selecionar o acesso privado por meio de uma Rede Virtual do Azure ou o acesso público para endereços IP listados como permitidos com um ponto de extremidade privado opcional. Após concluir a seção Noções Básicas, selecione Avançar: Rede e, em seguida, selecione Acesso público e ponto de extremidade privado ou Acesso privado:

Captura de tela da opção de conectividade de rede entre acesso público e privado.

Se você selecionar Acesso público e ponto de extremidade privado, poderá escolher se deseja expor o banco de dados à Internet. Se Permitir acesso público não estiver selecionado, o banco de dados poderá ser acessado somente por pontos de extremidade privados e não por meio de um endereço IP público. Para manter o acesso público à Internet, selecione Permitir acesso público e, na seção Regras de firewall, adicione endereços IP ou intervalos à lista de permissões. Para adicionar todos os serviços do Azure na rede do Azure à lista de permissões, selecione Permitir acesso público de qualquer serviço do Azure dentro do Azure a este servidor.

Captura de tela da seleção de conectividade de rede para acesso público e uma lista de regras de firewall.

Além do acesso público ou em vez dele, você pode configurar um ponto de extremidade privado. Como a Wingtip Toys planeja operar uma VPN entre sua rede local e o Azure, ignoraremos o ponto de extremidade privado. Para obter mais informações sobre como configurar um link privado, consulte a documentação de referência.

Para permitir apenas conexões da Rede Virtual, selecione Acesso privado e, em seguida, selecione Assinatura, Rede virtual e Sub-rede apropriadas. Se você não selecionar uma rede virtual e uma sub-rede, serão criadas uma rede e uma nova sub-rede.

Captura de tela das configurações da rede virtual, incluindo assinatura, rede virtual e sub-rede.

Por fim, você precisa configurar a integração DNS Privado para se conectar com um nome de domínio totalmente qualificado em vez de um endereço IP, que pode ser alterado. Selecione uma zona DNS existente ou deixe o Azure criar outra para você.

Captura de tela da configuração de integração de DNS privado.

Configurar a criptografia em trânsito

Por padrão, os servidores flexíveis MySQL só aceitam conexões criptografadas usando TLS (Transport Layer Security) versão 1.2. Se você estiver desenvolvendo novos aplicativos que suportam TLS 1.3, é recomendável oferecer suporte ou até mesmo aplicar a versão mais recente. Para isso, execute as seguintes etapas:

  1. No portal do Azure, selecione o servidor flexível MySQL ao qual você deseja se conectar com o TLS 1.3.
  2. Na seção Parâmetros do servidor, insira tls_version na barra de pesquisa, em qualquer um dos filtros Topo ou Todos.
  3. Na lista suspensa VALOR, selecione TLSv1.2 e/ou TLSv1.3 e, em seguida, selecione Salvar. Captura de tela de server-parameters-tls-version.

Você também pode permitir conexões não criptografadas definindo o valor do parâmetro require_secure_transport como desativado, embora isso não seja recomendado, a menos que seja estritamente necessário.

Microsoft Defender para Nuvem

O Microsoft Defender para Nuvem é uma maneira econômica de detectar e alertar sobre atividades anômalas ou suspeitas no banco de dados. Para habilitá-lo, execute estas etapas:

  1. No portal do Azure, selecione o servidor flexível MySQL que você deseja proteger com o Defender.

  2. Na seção Microsoft Defender para Nuvem, selecione Habilitar.

Captura de tela da seleção para habilitar o Microsoft Defender para Nuvem.

Para saber mais sobre o Defender, inclusive como configurar alertas, consulte a documentação de referência.

Habilitar e conectar usando a autenticação do Microsoft Entra ID

Antes de começar, você precisa de uma identidade gerenciada pelo usuário (UMI) configurada adequadamente. A identidade precisa da função Leitores de Diretório ou destas permissões individuais: User.Read.All, GroupMember.Read.All e Application.Read.ALL. Para obter mais informações sobre como adicionar essas permissões, consulte este tutorial.

Para habilitar a autenticação do Microsoft Entra ID para um servidor flexível do Banco de Dados do Azure para MySQL, execute as seguintes etapas:

  1. No portal do Azure, selecione o servidor flexível MySQL ao qual você deseja se conectar usando o Microsoft Entra ID.

  2. Na seção Segurança, selecione Autenticação.

    Captura de tela da configuração do Microsoft Entra ID.

  3. Sob o título Atribuir acesso a, selecione: Somente autenticação Microsoft Entra (desabilita login de usuário/senha nativo do MySQL) ou autenticação MySQL e Microsoft Entra (permite logins nativos do MySQL e Microsoft Entra).

  4. Sob o título Selecionar Identidade, selecione a UMI mencionada anteriormente nesta unidade.

  5. Selecione um usuário ou grupo do Microsoft Entra para ser o Administrador do Microsoft Entra. Se você selecionar um grupo, todos os membros do grupo serão administradores. Só é possível ter um usuário ou grupo de administradores, e a seleção de outro substituirá o administrador anterior.

    Com o Microsoft Entra ID habilitado, agora você pode se conectar ao servidor flexível MySQL usando a autenticação do Microsoft Entra ID, executando as seguintes etapas.

  6. Autenticar um shell com o Azure. Se você usa o Azure Cloud Shell, sua identidade já está configurada na sessão, então não há necessidade de entrar. Se estiver usando um terminal não autenticado, execute os seguintes comandos:

    az login
    az account set --subscription <subscription_id>
    
  7. Em um shell autenticado, execute o seguinte comando para recuperar um token de acesso:

    az account get-access-token --resource-type oss-rdbms

  8. Para fazer login, copie o token de acesso apresentado e use-o como senha. Para passar o token de acesso diretamente para o cliente mysql, no Linux, execute o seguinte comando:

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
    

    Se estiver usando o PowerShell, execute o seguinte comando:

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)
    

    Ao usar outros clientes, como o MySQL Workbench, basta colar o token de acesso no campo de senha.

Criptografar dados inativos com chaves gerenciadas pelo cliente

Você pode configurar a criptografia de dados inativos usando o portal do Azure ou a CLI do Azure. No entanto, antes de habilitar a criptografia com chaves gerenciadas pelo cliente, você precisa verificar se os seguintes pré-requisitos estão em vigor:

  • Identidade gerenciada pelo usuário (UMI). É necessária uma UMI para que o banco de dados acesse o cofre de chaves.

  • Permissões. Configure o acesso baseado em função (IAM) ou uma política de acesso ao cofre e conceda as seguintes permissões à UMI: Get, List, Wrap key e Unwrap key.

  • Habilitar [exclusão temporária](/azure/key-vault/general/soft-delete-overview" /l "soft-delete-behavior). Perder acidentalmente o acesso a uma chave de criptografia pode resultar em perda permanente de dados. Habilite a exclusão temporária como uma camada de proteção. Quando você usa o portal do Azure para criar um cofre de chaves, a exclusão temporária é habilitada por padrão.

    Se você souber o nome do cofre, mas não a ID, poderá procurá-lo executando:

    az keyvault show --name $KEY_VAULT_NAME
    

    Para habilitar a exclusão temporária em um cofre existente, execute:

    az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=true
    
  • Habilitar proteção contra limpeza. Uma chave com exclusão temporária ainda pode ser limpa incorretamente antes do fim do período de retenção devido a erro do usuário ou do código. Usar a proteção contra limpeza define um período de retenção para objetos excluídos antes que eles sejam removidos permanentemente.

Agora você pode usar o portal do Azure ou a CLI do Azure para configurar a chave gerenciada pelo cliente para criptografar dados inativos.

Se você estiver usando o portal do Azure:

  1. Navegue até sua instância de servidor flexível e, em Segurança, selecione Criptografia de dados.

    Captura de tela da página de configurações para selecionar uma chave gerenciada pelo cliente.

  2. Em Criptografia de dados, selecione + Selecionar. Na caixa de diálogo Selecionar identidade gerenciada atribuída pelo usuário, selecione a identidade gerenciada atribuída pelo usuário identificada nos pré-requisitos, selecione a identidade e, em seguida, Adicionar.

    Captura de tela da caixa de diálogo para selecionar uma identidade gerenciada atribuída pelo usuário.

  3. Em seguida, selecione insira um identificador de chave e insira o ID ou, na caixa de diálogo Selecionar chave, selecione a chave especificando o identificador ou selecionando um cofre de chaves e uma chave.

  4. Selecione Salvar.

Se você estiver usando a CLI do Azure, execute o seguinte comando:

az mysql flexible-server update --resource-group $RESOURCE_GROUP --name $TEST_SERVER --key $KEY_IDENTIFIER --identity $IDENTITY