Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel vous montre comment configurer et gérer le chiffrement des données pour le serveur flexible Azure Database pour MySQL à l’aide d’Azure CLI.
Dans ce tutoriel, vous allez apprendre à :
- Créer une instance de serveur flexible Azure Database pour MySQL avec chiffrement des données
- Mettre à jour une instance de serveur flexible Azure Database pour MySQL existante avec chiffrement des données
- Utilisation d’un modèle Azure Resource Manager pour activer le chiffrement des données
Prerequisites
Un compte Azure avec un abonnement actif.
Si vous n’en avez pas, créez un compte gratuit Azure avant de commencer.
Note
Avec un compte gratuit Azure, vous pouvez maintenant essayer le serveur flexible Azure Database pour MySQL gratuitement pendant 12 mois. Pour plus d’informations, consultez Utilisez un compte gratuit Azure pour essayer gratuitement le serveur flexible Azure Database pour MySQL.
Installez ou mettez à niveau Azure CLI vers la dernière version. Consultez Installer Azure CLI.
Connectez-vous au compte Azure à l’aide de la commande az login . Notez la propriété ID, qui fait référence à l’ID d’abonnement de votre compte Azure :
az login
- Si vous avez plusieurs abonnements, choisissez l’abonnement approprié dans lequel vous souhaitez créer le serveur à l’aide de la commande az account set :
az account set --subscription \<subscription id\>
- Dans Azure Key Vault, créez un coffre de clés ou un HSM managé et une clé. Le coffre de clés ou le HSM managé doit avoir les propriétés suivantes à utiliser en tant que clé gérée par le client :
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
Jours de rétention définis sur 90 jours :
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
La clé doit avoir les attributs suivants à utiliser comme clé gérée par le client :
- Aucune date d’expiration
- Non désactivé
- Effectuer
List,Get,Wrap,Unwrapopérations - Suppression douce activée
- Protection de vidage activée avec la période de rétention définie sur 90 jours
-
recoverylevelattribut défini surRecoverable
Vous pouvez vérifier les attributs ci-dessus de la clé à l’aide de la commande suivante :
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Mettre à jour une instance de serveur flexible Azure Database pour MySQL existante avec chiffrement des données
Définissez ou modifiez la clé et l’identité pour le chiffrement des données :
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Désactivez le chiffrement des données pour le serveur flexible Azure Database pour MySQL :
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Créer une instance de serveur flexible Azure Database pour MySQL avec la sauvegarde géoredondante et le chiffrement des données activés
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
Définissez ou modifiez la clé, l’identité, la clé de sauvegarde et l’identité de sauvegarde pour le chiffrement des données avec une sauvegarde géoredondante :
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
Utiliser un modèle Azure Resource Manager pour activer le chiffrement des données
Les paramètres identityUri et primaryKeyUri sont respectivement l’ID de ressource de l’identité managée par l’utilisateur et la clé gérée par l’utilisateur.
"$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"
}
]
}