Configurar recursos de rede e segurança
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:
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.
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.
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ê.
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:
- No portal do Azure, selecione o servidor flexível MySQL ao qual você deseja se conectar com o TLS 1.3.
- Na seção Parâmetros do servidor, insira tls_version na barra de pesquisa, em qualquer um dos filtros Topo ou Todos.
- Na lista suspensa VALOR, selecione TLSv1.2 e/ou TLSv1.3 e, em seguida, selecione Salvar.
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:
No portal do Azure, selecione o servidor flexível MySQL que você deseja proteger com o Defender.
Na seção Microsoft Defender para Nuvem, selecione Habilitar.
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:
No portal do Azure, selecione o servidor flexível MySQL ao qual você deseja se conectar usando o Microsoft Entra ID.
Na seção Segurança, selecione Autenticação.
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).
Sob o título Selecionar Identidade, selecione a UMI mencionada anteriormente nesta unidade.
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.
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>
Em um shell autenticado, execute o seguinte comando para recuperar um token de acesso:
az account get-access-token --resource-type oss-rdbms
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:
Navegue até sua instância de servidor flexível e, em Segurança, selecione Criptografia de dados.
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.
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.
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