Gegevensversleuteling voor Azure Database for MySQL - Flexibele server met Azure CLI
VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server
In deze zelfstudie leert u hoe u gegevensversleuteling instelt en beheert voor een flexibele Azure Database for MySQL-server met behulp van Azure CLI.
In deze zelfstudie leert u het volgende:
- Een exemplaar van een flexibele Azure Database for MySQL-server maken met gegevensversleuteling
- Een bestaand exemplaar van een flexibele Azure Database for MySQL-server bijwerken met gegevensversleuteling
- Een Azure Resource Manager-sjabloon gebruiken om gegevensversleuteling in te schakelen
Vereisten
Een Azure-account met een actief abonnement.
Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.
Notitie
Met een gratis Azure-account kunt u azure Database for MySQL flexibele server nu 12 maanden gratis proberen. Zie Azure Database for MySQL Flexibele server gratis uitproberen voor meer informatie.
Azure CLI installeren of upgraden naar de nieuwste versie. Zie Azure CLI installeren.
Meld u aan bij het Azure-account met behulp van de opdracht az login . Noteer de id-eigenschap, die verwijst naar de abonnements-id voor uw Azure-account:
az login
- Als u meerdere abonnementen hebt, kiest u het juiste abonnement waarin u de server wilt maken met behulp van de opdracht az account set:
az account set --subscription \<subscription id\>
- Maak in Azure Key Vault een sleutelkluis of beheerde HSM en een sleutel. De sleutelkluis of beheerde HSM moet de volgende eigenschappen hebben die moeten worden gebruikt als een door de klant beheerde sleutel:
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
Retentiedagen ingesteld op 90 dagen:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
De sleutel moet de volgende kenmerken hebben om te kunnen worden gebruikt als een door de klant beheerde sleutel:
- Geen vervaldatums
- Niet uitgeschakeld
- Lijst uitvoeren, Ophalen, Teruglopen, Uitpakken
- het kenmerk recoverylevel is ingesteld op Herstelbaar (hiervoor is voorlopig verwijderen ingeschakeld met retentieperiode ingesteld op 90 dagen)
- Beveiliging opschonen ingeschakeld
U kunt de bovenstaande kenmerken van de sleutel controleren met behulp van de volgende opdracht:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Een bestaand exemplaar van een flexibele Azure Database for MySQL-server bijwerken met gegevensversleuteling
Sleutel en identiteit instellen of wijzigen voor gegevensversleuteling:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Gegevensversleuteling uitschakelen voor flexibele Azure Database for MySQL-server:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Een azure Database for MySQL Flexible Server-exemplaar maken met geografisch redundante back-up en gegevensversleuteling ingeschakeld
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
Sleutel, identiteit, back-upsleutel en back-upidentiteit instellen of wijzigen voor gegevensversleuteling met geografisch redundante back-up:
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
Een Azure Resource Manager-sjabloon gebruiken om gegevensversleuteling in te schakelen
De params identityUri en primaryKeyUri zijn respectievelijk de resource-id van de door de gebruiker beheerde identiteit en de door de gebruiker beheerde sleutel.
"$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"
}
]
}