Configurar recursos de rede e segurança

Concluído

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

Rede

Configurar o acesso à rede

Ao criar um servidor flexível MySQL, você pode selecionar acesso privado por meio de uma Rede Virtual do Azure ou acesso público para endereços IP permitidos com um ponto de extremidade privado opcional. Depois de 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 ecrã 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 estiver desmarcado, o banco de dados será acessível somente por pontos de extremidade privados e não usando um endereço IP público. Para manter o acesso público à Internet, selecione Permitir acesso público e, em seguida, 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 no Azure para este servidor.

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

Além ou em vez de acesso público, 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 a Assinatura, Rede virtual e Sub-rede apropriadas. Se você não selecionar uma rede virtual e uma sub-rede, uma nova rede e sub-rede serão criadas.

Captura de ecrã das definições da rede virtual, incluindo subscrição, rede virtual e sub-rede.

Finalmente, você precisa configurar a integração de DNS privado para se conectar com um nome de domínio totalmente qualificado em vez de um endereço IP, que pode mudar. Selecione uma zona DNS existente ou deixe o Azure criar uma nova para você.

Captura de ecrã da configuração de integração DNS privada.

Configurar a criptografia em trânsito

Por padrão, os servidores flexíveis do 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 impor a versão mais recente. Para tal, efetue os seguintes passos:

  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, digite tls_version na barra de pesquisa nos filtros Superior ou Todos.
  3. Na lista suspensa VALOR, selecione TLSv1.2 e/ou TLSv1.3 e selecione Salvar. Screenshot de server-parameters-tls-version.

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

Microsoft Defender para a Cloud

O Microsoft Defender for Cloud é uma maneira econômica de detetar e alertar sobre atividades de banco de dados anômalas ou suspeitas. 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 for Cloud, selecione Ativar.

Captura de ecrã da seleção para ativar o Microsoft Defender for Cloud.

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

Habilitar e conectar-se 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 banco de dados do Azure para servidor flexível 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 ecrã da configuração do Microsoft Entra ID.

  3. Sob o título Atribuir acesso a, selecione: Somente autenticação do Microsoft Entra (desabilita o login de usuário/senha nativo do MySQL) ou a autenticação do MySQL e do Microsoft Entra (permite logins nativos do MySQL e do 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. Você só pode ter um usuário ou grupo administrador e selecionar outro substitui o administrador anterior.

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

  6. Autentique um shell com o Azure. Se você usa o Azure Cloud Shell, sua identidade já está configurada na sessão, portanto, não há necessidade de entrar. Se você 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 iniciar sessão, copie o token de acesso apresentado e utilize-o como palavra-passe. Para passar o token de acesso para o cliente mysql diretamente, 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 a utilizar 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.

Criptografe dados em repouso com chaves gerenciadas pelo cliente

Você pode configurar a criptografia em repouso usando o portal do Azure ou usando 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). Você precisa de uma UMI para o banco de dados para acessar 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 ao UMI: Get, List, Wrap key e Unwrap key.

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

    Se souber o nome do cofre, mas não o ID, pode procurá-lo executando:

    az keyvault show --name $KEY_VAULT_NAME
    

    Para habilitar a exclusão suave em um cofre existente, execute:

    az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=true
    
  • Habilite a proteção contra purga. Uma chave excluída suavemente ainda pode ser removida incorretamente antes do final do período de retenção devido a erro de usuário ou código. O uso da 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 em repouso.

Se estiver a utilizar o portal do Azure:

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

    Captura de ecrã da página de definições para selecionar uma chave gerida pelo cliente.

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

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

  3. Em seguida, selecione inserir 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 Guardar.

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