Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come configurare e gestire la crittografia dei dati per il server flessibile di Database di Azure per MySQL usando l'interfaccia della riga di comando di Azure.
In questa esercitazione si apprenderà come:
- Creare un'istanza del server flessibile di Database di Azure per MySQL con crittografia dei dati
- Aggiornare un'istanza esistente di Database di Azure per MySQL a server flessibile con la crittografia dei dati
- Uso di un modello di Azure Resource Manager per abilitare la crittografia dei dati
Prerequisiti
Un account Azure con una sottoscrizione attiva.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Annotazioni
Con un account gratuito di Azure, è ora possibile provare il server flessibile di Database di Azure per MySQL gratuitamente per 12 mesi. Per altre informazioni, vedere Usare un account gratuito di Azure per provare gratuitamente Database di Azure per MySQL - Server flessibile.
Installare o aggiornare l'interfaccia della riga di comando di Azure alla versione più recente. Vedere Installare l'interfaccia della riga di comando di Azure.
Accedere all'account Azure usando il comando az login . Si noti la proprietà ID, che fa riferimento all'ID della sottoscrizione per l'account Azure.
az login
- Se si hanno più sottoscrizioni, scegliere la sottoscrizione appropriata in cui si vuole creare il server usando il comando az account set:
az account set --subscription \<subscription id\>
- In Azure Key Vault creare un insieme di credenziali delle chiavi o un HSM gestito e una chiave. L'insieme di credenziali delle chiavi o l'HSM gestito deve avere le seguenti proprietà per l'uso come chiave gestita dal cliente:
az resource update --id $(az keyvault show --name \ \<key\_vault\_name\> -o tsv | awk '{print $1}') --set \ properties.enableSoftDelete=true
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --enable-purge-protection true
Giorni di conservazione impostati su 90 giorni:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
La chiave deve avere gli attributi seguenti da usare come chiave gestita dal cliente:
- Nessuna data di scadenza
- Non disattivato
- Eseguire
List,Get,Wrap,Unwrapoperazioni - Eliminazione temporanea abilitata
- Protezione da eliminazione abilitata con il periodo di conservazione impostato su 90 giorni.
-
recoverylevelattributo impostato suRecoverable
È possibile verificare gli attributi precedenti della chiave usando il comando seguente:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Aggiornare un'istanza flessibile del server Database di Azure per MySQL esistente con la crittografia dei dati
Impostare o modificare la chiave e l'identità per la crittografia dei dati:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Disabilitare la crittografia dei dati per il server flessibile di Database di Azure per MySQL:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Creare un'istanza del server flessibile di Database di Azure per MySQL con backup con ridondanza geografica e crittografia dei dati abilitata
az mysql flexible-server create -g testGroup -n testServer --location testLocation \\
--geo-redundant-backup Enabled \\
--key <key identifier of testKey> --identity testIdentity \\
--backup-key <key identifier of testBackupKey> --backup-identity testBackupIdentity
Impostare o modificare la chiave, l'identità, la chiave di backup e l'identità di backup per la crittografia dei dati con backup con ridondanza geografica:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity \\ --backup-key \<key identifier of newBackupKey\> --backup-identity newBackupIdentity
Usare un modello di Azure Resource Manager per abilitare la crittografia dei dati
I parametri identityUri e primaryKeyUri sono rispettivamente l'ID risorsa dell'identità gestita dall'utente e la chiave gestita dall'utente.
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"administratorLogin": {
"type": "string"
},
"administratorLoginPassword": {
"type": "securestring"
},
"location": {
"type": "string"
},
"serverName": {
"type": "string"
},
"serverEdition": {
"type": "string"
},
"vCores": {
"type": "int",
"defaultValue": 4
},
"storageSizeGB": {
"type": "int"
},
"haEnabled": {
"type": "string",
"defaultValue": "Disabled"
},
"availabilityZone": {
"type": "string"
},
"standbyAvailabilityZone": {
"type": "string"
},
"version": {
"type": "string"
},
"tags": {
"type": "object",
"defaultValue": {}
},
"backupRetentionDays": {
"type": "int"
},
"geoRedundantBackup": {
"type": "string"
},
"vmName": {
"type": "string",
"defaultValue": "Standard_B1ms"
},
"storageIops": {
"type": "int"
},
"storageAutogrow": {
"type": "string",
"defaultValue": "Enabled"
},
"autoIoScaling": {
"type": "string",
"defaultValue": "Disabled"
},
"vnetData": {
"type": "object",
"metadata": {
"description": "Vnet data is an object which contains all parameters pertaining to vnet and subnet"
},
"defaultValue": {
"virtualNetworkName": "testVnet",
"subnetName": "testSubnet",
"virtualNetworkAddressPrefix": "10.0.0.0/16",
"virtualNetworkResourceGroupName": "[resourceGroup().name]",
"location": "eastus2",
"subscriptionId": "[subscription().subscriptionId]",
"subnetProperties": {},
"isNewVnet": false,
"subnetNeedsUpdate": false,
"Network": {}
}
},
"identityUri": {
"type": "string",
"metadata": {
"description": "The resource ID of the identity used for data encryption"
}
},
"primaryKeyUri": {
"type": "string",
"metadata": {
"description": "The resource ID of the key used for data encryption"
}
}
},
"variables": {
"api": "2021-05-01",
"identityData": "[if(empty(parameters('identityUri')), json('null'), createObject('type', 'UserAssigned', 'UserAssignedIdentities', createObject(parameters('identityUri'), createObject())))]",
"dataEncryptionData": "[if(or(empty(parameters('identityUri')), empty(parameters('primaryKeyUri'))), json('null'), createObject('type', 'AzureKeyVault', 'primaryUserAssignedIdentityId', parameters('identityUri'), 'primaryKeyUri', parameters('primaryKeyUri')))]"
},
"resources": [
{
"apiVersion": "[variables('api')]",
"location": "[parameters('location')]",
"name": "[parameters('serverName')]",
"identity": "[variables('identityData')]",
"properties": {
"version": "[parameters('version')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"Network": "[if(empty(parameters('vnetData').Network), json('null'), parameters('vnetData').Network)]",
"Storage": {
"StorageSizeGB": "[parameters('storageSizeGB')]",
"Iops": "[parameters('storageIops')]",
"Autogrow": "[parameters('storageAutogrow')]",
"AutoIoScaling": "[parameters('autoIoScaling')]"
},
"Backup": {
"backupRetentionDays": "[parameters('backupRetentionDays')]",
"geoRedundantBackup": "[parameters('geoRedundantBackup')]"
},
"availabilityZone": "[parameters('availabilityZone')]",
"highAvailability": {
"mode": "[parameters('haEnabled')]",
"standbyAvailabilityZone": "[parameters('standbyAvailabilityZone')]"
},
"dataEncryption": "[variables('dataEncryptionData')]"
},
"sku": {
"name": "[parameters('vmName')]",
"tier": "[parameters('serverEdition')]",
"capacity": "[parameters('vCores')]"
},
"tags": "[parameters('tags')]",
"type": "Microsoft.DBforMySQL/flexibleServers"
}
]
}