Configurare le funzionalità di rete e di sicurezza
Le principali funzionalità di rete e di sicurezza per il server flessibile di Database di Azure per MySQL includono il controllo di accesso, la connettività, il supporto per Microsoft Entra ID e una piattaforma centralizzata per la gestione di identità, ruoli e autorizzazioni. I server flessibili MySQL crittografano anche tutti i dati in transito per impostazione predefinita e abilitano la crittografia dei dati inattivi con chiavi gestite da Azure o dal cliente.
Rete
Configurare l'accesso alla rete
Quando si crea un server flessibile di MySQL, è possibile selezionare l'accesso privato tramite una rete virtuale di Azure o l'accesso pubblico per gli indirizzi IP elencati come consentiti con un endpoint privato facoltativo. Dopo aver completato la sezione Dati principali, selezionare Avanti: Rete e quindi selezionare Accesso pubblico ed endpoint privato o Accesso privato:
Se si seleziona Accesso pubblico ed endpoint privato, è possibile scegliere se esporre il database a Internet. Se l'opzione Consenti accesso pubblico non è selezionata, il database è accessibile solo da endpoint privati e non tramite un indirizzo IP pubblico. Per mantenere l'accesso a Internet pubblico, selezionare Consenti accesso pubblico, quindi, nella sezione Regole del firewall, aggiungere indirizzi IP o intervalli all'elenco elementi consentiti. Per aggiungere tutti i servizi di Azure nella rete di Azure all'elenco consenti, selezionare Consenti l'accesso pubblico a questo server da qualsiasi servizio di Azure in Azure.
In aggiunta o in alternativa all'accesso pubblico, è possibile configurare un endpoint privato. Poiché Wingtip Toys prevede di gestire una rete privata virtuale tra la rete locale e Azure, l'endpoint privato verrà ignorato. Per altre informazioni sulla configurazione di un collegamento privato, vedere la documentazione di riferimento.
Per consentire solo le connessioni da Rete virtuale, selezionare Accesso privato e quindi selezionare la sottoscrizione, la rete virtuale e la subnetappropriate. Se non si seleziona una rete virtuale e una subnet, verranno create una nuova rete e una nuova subnet.
Infine, è necessario configurare l’integrazione di DNS privato per connettersi con un nome di dominio completo anziché con un indirizzo IP, che potrebbe cambiare. Selezionare una zona DNS esistente o consentire ad Azure di crearne una nuova.
Configurare la crittografia in transito
Per impostazione predefinita, i server flessibili MySQL accettano solo connessioni crittografate tramite TLS (Transport Layer Security) versione 1.2. Se si sviluppano nuove applicazioni che supportano TLS 1.3, è consigliabile sostenere o addirittura imporre la versione più recente. A tale scopo, attenersi alla seguente procedura:
- Nel portale di Azure, selezionare il server flessibile MySQL a cui si vuole connettersi con TLS 1.3.
- Nella sezione Parametri del server, immettere tls_version nella barra di ricerca nei filtri Principali o Tutti.
- Nell'elenco a discesa VALUE, scegliere TLSv1.2 e/o TLSv1.3 e quindi selezionare Salva.
È inoltre possibile consentire connessioni non crittografate impostando il valore del parametro require_secure_transport su disattivato, anche se questa opzione non è consigliata, a meno che non sia strettamente necessaria.
Microsoft Defender per il cloud
Microsoft Defender per il cloud è un modo efficiente in termini di costi per rilevare e avvisare in caso di attività di database anomale o sospette. Per abilitarlo, seguire la procedura seguente:
Nel portale di Azure, selezionare il server flessibile MySQL da proteggere con Defender.
Nella sezione Microsoft Defender per il cloud, selezionare Abilita.
Per altre informazioni su Defender, inclusa la configurazione degli avvisi, vedere la documentazione di riferimento.
Abilitare e connettersi tramite l'autenticazione di Microsoft Entra ID
Prima di iniziare, è necessaria un'identità gestita dall'utente (UMI) configurata in modo appropriato. L'identità deve disporre del ruolo Lettore directory o delle autorizzazioni individuali seguenti: User.Read.All, GroupMember.Read.All e Application.Read.ALL. Per altre informazioni su come aggiungere queste autorizzazioni, vedere questa esercitazione.
Per abilitare l'autenticazione di Microsoft Entra ID per un server flessibile di Database di Azure per MySQL, seguire la procedura seguente:
Nel portale di Azure, selezionare il server flessibile MySQL a cui si vuole connettersi tramite Microsoft Entra ID.
Nella sezione Sicurezza, selezionare Autenticazione.
Nell'intestazione Assegna accesso a, selezionare una delle opzioni seguenti: Solo autenticazione di Microsoft Entra (disabilita l'accesso nativo a MySQL tramite utente/password nativo) o autenticazione di MySQL e Microsoft Entra (consente gli accessi a MySQL e Microsoft Entra nativi).
Nell’intestazione Seleziona identità, selezionare l'UMI menzionata in precedenza in questa unità.
Selezionare un utente o un gruppo di Microsoft Entra come amministratore di Microsoft Entra. Se si seleziona un gruppo, tutti i membri del gruppo sono amministratori. È possibile avere solo un utente o gruppo amministratore. Quindi, selezionandone un altro si sostituisce l'amministratore precedente.
Con Microsoft Entra ID abilitato, è ora possibile connettersi al server flessibile MySQL tramite l'autenticazione di Microsoft Entra ID eseguendo la procedura seguente.
Autenticare una shell con Azure. Se si usa Azure Cloud Shell, l'identità è già configurata nella sessione, quindi non è necessario eseguire l'accesso. Se si usa un terminale non autenticato, eseguire i comandi seguenti:
az login az account set --subscription <subscription_id>In una shell autenticata, eseguire il comando seguente per recuperare un token di accesso:
az account get-access-token --resource-type oss-rdbms
Per accedere, copiare il token di accesso presentato e usarlo come password. Per passare direttamente il token di accesso al client mysql, eseguire il comando seguente in Linux:
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 si usa PowerShell, eseguire questo 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)Quando si usano altri client, ad esempio MySQL Workbench, è sufficiente incollare il token di accesso nel campo della password.
Crittografare i dati inattivi con chiavi gestite dal cliente
È possibile configurare la crittografia di dati inattivi tramite il portale di Azure o l'interfaccia della riga di comando di Azure. Tuttavia, prima di abilitare la crittografia con chiavi gestite dal cliente, è necessario verificare che siano soddisfatti i prerequisiti seguenti:
Identità gestita dall'utente (UMI). Per accedere all'insieme di credenziali delle chiavi, è necessario una UMI per il database.
Autorizzazioni. Configurare l'accesso in base al ruolo (IAM) o un criterio di accesso all'insieme di credenziali e concedere le autorizzazioni seguenti alla UMI: Get, List, Wrap key, e Unwrap key.
Abilitare [soft-delete](/azure/key-vault/general/soft-delete-overview" /l "soft-delete-behavior). La perdita accidentale dell'accesso a una chiave di crittografia potrebbe causare la perdita permanente dei dati. Abilitare l'eliminazione temporanea come livello di protezione. Quando si usa il portale di Azure per creare un nuovo insieme di credenziali delle chiavi, l'eliminazione temporanea è abilitata per impostazione predefinita.
Se si conosce il nome dell'insieme di credenziali ma non l'ID, è possibile cercarlo eseguendo il comando seguente:
az keyvault show --name $KEY_VAULT_NAMEPer abilitare l'eliminazione temporanea in un insieme di credenziali esistente, eseguire il comando seguente:
az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=trueAbilita la protezione dalla rimozione definitiva. Una chiave eliminata in modo temporaneo può comunque essere eliminata in modo non corretto prima della fine del periodo di conservazione, a causa di un errore dell'utente o del codice. L'utilizzo della protezione dalla rimozione definitiva imposta un periodo di conservazione per gli oggetti eliminati, prima che vengano rimossi in modo definitivo.
A questo punto è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure per configurare la chiave gestita dal cliente in modo da crittografare i dati inattivi.
Se si usa il portale di Azure:
Passare all'istanza del server flessibile e quindi, in Sicurezza, selezionare Crittografia dei dati.
In Crittografia dei dati, selezionare + Seleziona. Nella finestra di dialogo Seleziona identità gestita assegnata dall'utente, selezionare l'identità gestita assegnata dall'utente identificata nei prerequisiti, selezionare l'identità e quindiAggiungi.
Quindi, selezionare Immetti un ID chiave e immettere l'ID; alternativamente, nella finestra di dialogo Selezionachiave, selezionare la chiave specificando l'identificatore o selezionando un insieme di credenziali delle chiavi e una chiave.
Selezionare Salva.
Se si usa l'interfaccia della riga di comando di Azure, eseguire invece il comando seguente:
az mysql flexible-server update --resource-group $RESOURCE_GROUP --name $TEST_SERVER --key $KEY_IDENTIFIER --identity $IDENTITY






