Condividi tramite


Impedire e ripristinare un'eliminazione accidentale di un server flessibile di Database di Azure per MySQL

L'eliminazione accidentale di risorse critiche di Azure, ad esempio i server flessibili di Database di Azure per MySQL, può compromettere le operazioni e compromettere la continuità aziendale. Questo articolo illustra come evitare eliminazioni accidentali usando i blocchi delle risorse di Azure e Criteri di Azure e come ripristinare i server eliminati usando l'interfaccia della riga di comando di Azure.

Azure offre meccanismi predefiniti per proteggere le risorse dall'eliminazione imprevista. Questi meccanismi includono:

  • Blocchi delle risorse di Azure: impedisce l'eliminazione di risorse o gruppi di risorse.
  • Criteri di Azure: applicare gli standard aziendali e proteggere l'infrastruttura critica.
  • Comandi di ripristino dell'Azure CLI: quando possibile, ripristinare i server eliminati.

Impedire un'eliminazione accidentale

È possibile applicare blocchi delle risorse sia a livello di risorsa che di gruppo di risorse. Questi blocchi sostituiscono le autorizzazioni utente per impedire l'eliminazione.

Bloccare un server flessibile MySQL

az lock create \
 --name "PreventDeleteLock" \
  --resource-group <RESOURCE_GROUP_NAME> \
 --resource-name <MYSQL_SERVER_NAME> \
  --resource-type "Microsoft.DBforMySQL/flexibleServers" \
 --lock-type CanNotDelete

Verificare i blocchi

az lock list \
 --resource-group <RESOURCE_GROUP_NAME> \
  --resource-name <MYSQL_SERVER_NAME> \
 --resource-type "Microsoft.DBforMySQL/flexibleServers" \
  -o table

Rimuovere i blocchi

az lock delete \
 --name "PreventDeleteLock" \
  --resource-group <RESOURCE_GROUP_NAME> \
 --resource-name <MYSQL_SERVER_NAME> \
  --resource-type "Microsoft.DBforMySQL/flexibleServers"

Bloccare l'intero gruppo di risorse

az lock create \
 --name "PreventDeleteGroupLock" \
  --resource-group <RESOURCE_GROUP_NAME> \
 --lock-type CanNotDelete

Ripristinare un server eliminato

Se si elimina accidentalmente un server, è possibile recuperarlo usando l'interfaccia della riga di comando di Azure e il ripristino temporizzato (PITR), se sono disponibili backup.

Eseguire il ripristino con l'interfaccia della riga di comando di Azure

az mysql flexible-server restore \
 --resource-group <RESOURCE_GROUP_NAME> \
  --name <NEW_SERVER_NAME> \
 --source-server <DELETED_SERVER_NAME> \
  --restore-time <TIMESTAMP>

Annotazioni

Assicurarsi di sostituire <TIMESTAMP> con l’orario appena prima dell'eliminazione.

Procedure consigliate

  • Applicare CanNotDelete blocchi a risorse e gruppi di risorse critici.
  • Usare i Criteri di Azure per applicare l'uso dei blocchi nelle sottoscrizioni.
  • Testare regolarmente le procedure di ripristino per garantire la prontezza al recupero.
  • Monitorare le configurazioni di blocco e controllare le modifiche usando i log attività di Azure.