S'applique à :
Azure SQL Database
Note
Le niveau de base de données TDE CMK est disponible pour Azure SQL Database (toutes les éditions SQL Database). Il n’est pas disponible pour Azure SQL Managed Instance, SQL Server local, machines virtuelles Azure et Azure Synapse Analytics (pools SQL dédiés (anciennement SQL DW)).
Dans ce guide, nous suivons les étapes de configuration de la géoréplication et de la restauration des sauvegardes sur une base de données Azure SQL Database. Azure SQL Database est configuré avec le chiffrement transparent des données (TDE) et les clés gérées par le client (CMK) au niveau de la base de données, en utilisant une identité managée affectée par l’utilisateur pour accéder à Azure Key Vault. Dans ce guide, Azure Key Vault et le serveur logique pour Azure SQL se trouvent tous deux dans le même locataire Microsoft Entra, mais ils peuvent se trouver dans des locataires différents.
Note
Microsoft Entra ID était précédemment connu sous le nom d'Azure Active Directory (Azure AD).
Prerequisites
Importante
Une fois la base de données créée ou restaurée, le menu Chiffrement transparent des données dans le portail Azure affiche la nouvelle base de données avec les mêmes paramètres que la base de données source, mais peut avoir des clés manquantes. Dans tous les cas où une nouvelle base de données est créée à partir d’une base de données source, le nombre de clés affichées pour une base de données cible dans la liste des clés de base de données supplémentaires du portail Azure peut être inférieur au nombre de clés affichées pour une base de données source. Ceci est dû au fait que le nombre de clés affichées dépend des exigences spécifiques des fonctionnalités utilisées pour créer la base de données cible. Pour répertorier toutes les clés disponibles pour une nouvelle base de données, utilisez les API disponibles dans Afficher les paramètres de clé gérées par le client au niveau de la base de données dans une base de données Azure SQL.
Créer une base de données Azure SQL avec des clés gérées par le client au niveau de la base de données en tant que réplica secondaire ou en tant que copie
Utilisez les instructions ou les commandes suivantes pour créer un réplica secondaire ou une cible de copie d’une base de données Azure SQL configurée avec des clés gérées par le client au niveau de la base de données. Une identité managée affectée par l’utilisateur est nécessaire pour configurer une clé gérée par le client pour Transparent Data Encryption lors de la phase de création de la base de données.
Création d’une base de données Azure SQL avec des clés gérées par le client au niveau de la base de données
Pour créer une base de données dans Azure SQL Database en tant que copie avec des clés gérées par le client au niveau de la base de données, procédez comme suit :
Accédez au portail Azure, puis accédez à la base de données Azure SQL configurée avec des clés gérées par le client au niveau de la base de données. Accédez à l’onglet Chiffrement transparent des données du menu Chiffrement des données et vérifiez la liste des clés actuelles utilisées par la base de données.
Créez une copie de la base de données en sélectionnant Copier dans le menu Vue d’ensemble de la base de données.
Le menu Créer une base de données SQL – Copier la base de données s’affiche. Utilisez un autre serveur pour créer cette base de données, tout en utilisant les mêmes paramètres que ceux de la base de données que vous tentez de copier. Dans la section Gestion des clés de chiffrement transparent des données, sélectionnez Configurer le chiffrement transparent des données.
Lorsque le menu Chiffrement transparent des données s’affiche, passez en revue les paramètres CMK de cette base de données de copie. Les paramètres et les clés doivent être identiques à ceux utilisés dans la base de données source.
Sélectionnez Appliquer pour continuer, puis sélectionnez Vérifier + créer et Créer pour créer la base de données copiée.
Création d’un réplica secondaire avec des clés gérées par le client au niveau de la base de données
Accédez au portail Azure, puis accédez à la base de données Azure SQL configurée avec des clés gérées par le client au niveau de la base de données. Accédez au menu Chiffrement transparent des données et vérifiez la liste des clés actuelles utilisées par la base de données.
Dans les paramètres Gestion des données de la base de données, sélectionnez Réplicas. Sélectionnez Créer un réplica pour créer un réplica secondaire de la base de données.
Le menu Créer une base de données SQL – Géoréplica s’affiche. Utilisez un serveur secondaire pour créer cette base de données, tout en utilisant les mêmes paramètres que ceux de la base de données que vous tentez de répliquer. Dans la section Gestion des clés de chiffrement transparent des données, sélectionnez Configurer le chiffrement transparent des données.
Lorsque le menu Chiffrement transparent des données s’affiche, passez en revue les paramètres CMK de ce réplica de base de données. Les paramètres et les clés doivent être identiques à ceux utilisés dans la base de données primaire.
Sélectionnez Appliquer pour continuer, puis sélectionnez Vérifier + créer et Créer pour créer la base de données copiée.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Préremplissez la liste des clés actuellement utilisées par la base de données primaire en utilisant le paramètre expand-keys avec current comme valeur keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données en tant que réplica secondaire, et fournissez la liste préremplie des clés obtenues auprès de la base de données source et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Importante
$keys est une liste de clés séparées par un espace, récupérées auprès de la base de données source.
Pour créer une copie de la base de données, az sql db copy peut être utilisé avec les mêmes paramètres.
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Préremplissez la liste des clés actuelles utilisées par la base de données primaire en utilisant la commande Get-AzSqlDatabase et les paramètres -ExpandKeyList et -KeysFilter "current". Excluez -KeysFilter si vous souhaitez récupérer toutes les clés.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données secondaire en utilisant la commande New-AzSqlDatabaseSecondary, et fournissez la liste préremplie des clés obtenues auprès de la base de données source et l’identité ci-dessus (et l’ID de client fédéré en cas de configuration de l’accès interlocataire) dans l’appel d’API en utilisant les paramètres -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (et si nécessaire, -FederatedClientId).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
$database | New-AzSqlDatabaseSecondary -PartnerResourceGroupName <SecondaryResourceGroupName> -PartnerServerName <SecondaryServerName> -AllowConnections "All" -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
Pour créer une copie de la base de données, New-AzSqlDatabaseCopy peut être utilisé avec les mêmes paramètres.
# Create a copy of a database configured with database level customer-managed keys
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
New-AzSqlDatabaseCopy -CopyDatabaseName <CopyDatabaseName> -CopyResourceGroupName <CopyResourceGroupName> -CopyServerName <CopyServerName> -DatabaseName <DatabaseName> -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
Voici un exemple de modèle ARM qui crée une réplica secondaire et une copie d’une base de données Azure SQL configurée avec une identité managée affectée par l’utilisateur et TDE géré par le client au niveau de la base de données.
Pour en savoir plus, ainsi que sur les modèles ARM, consultez Modèles Azure Resource Manager pour Azure SQL Database.
Utilisez un déploiement personnalisé dans le portail Azure et créez votre propre modèle dans l’éditeur. Ensuite, enregistrez la configuration une fois que vous avez collé l’exemple.
Préremplissez la liste des clés actuelles utilisées par la base de données primaire en utilisant la requête d’API REST suivante :
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données en tant que réplica secondaire, et fournissez la liste préremplie des clés obtenues auprès de la base de données source et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire) dans le modèle ARM comme paramètre keys_to_add.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Secondary",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
Voici un exemple de paramètre encryption_protector et keys_to_add :
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Pour créer une copie de la base de données, le modèle suivant peut être utilisé avec les mêmes paramètres.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Copy",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
Restaurer une base de données Azure SQL avec des clés gérées par le client au niveau de la base de données
Cette section vous guide tout au long des étapes de restauration d’une base de données Azure SQL configurée avec des clés gérées par le client au niveau de la base de données. Une identité managée affectée par l’utilisateur est nécessaire pour configurer une clé gérée par le client pour Transparent Data Encryption lors de la phase de création de la base de données.
Restauration dans le temps
La section suivante explique comment restaurer une base de données configurée avec des clés gérées par le client au niveau de la base de données à un point donné dans le temps. Pour en savoir plus sur la récupération de sauvegarde pour SQL Database, consultez Restaurer une base de données à partir d’une sauvegarde dans Azure SQL Database.
Accédez au portail Azure, puis accédez à la base de données Azure SQL configurée avec des clés gérées par le client au niveau de la base de données que vous souhaitez restaurer.
Pour restaurer la base de données à un point dans le temps, sélectionnez Restaurer dans le menu Vue d’ensemble de la base de données.
Le menu Créer une base de données SQL – Restaurer la base de données s’affiche. Remplissez les détails nécessaires de la source et de la base de données. Dans la section Gestion des clés de chiffrement transparent des données, sélectionnez Configurer le chiffrement transparent des données.
Lorsque le menu Chiffrement transparent des données s’affiche, passez en revue les paramètres CMK de la base de données. Les paramètres et les clés doivent être identiques à ceux utilisés dans la base de données que vous tentez de restaurer.
Sélectionnez Appliquer pour continuer, puis sélectionnez Vérifier + créer et Créer pour créer la base de données copiée.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Préremplissez la liste des clés utilisées par la base de données primaire en utilisant le paramètre expand-keys avec votre point de restauration dans le temps comme keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données en tant que cible de restauration, et fournissez la liste préremplie des clés obtenues auprès de la base de données source et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Importante
$keys est une liste de clés séparées par un espace, récupérées auprès de la base de données source.
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Préremplissez la liste des clés utilisées par la base de données primaire en utilisant la commande Get-AzSqlDatabase et les paramètres -ExpandKeyList et -KeysFilter "2023-01-01" (2023-01-01 est un exemple du point dans le temps auquel vous souhaitez restaurer la base de données). Excluez -KeysFilter si vous souhaitez récupérer toutes les clés.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Utilisez la commande Restore-AzSqlDatabase avec le paramètre -FromPointInTimeBackup, et fournissez la liste préremplie des clés obtenues à partir des étapes ci-dessus et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire) dans l’appel d’API en utilisant les paramètres -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (et si nécessaire, -FederatedClientId).
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
# Create a restored database
Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
Restauration d’une base de données qui a été supprimée
La section suivante explique comment restaurer une base de données supprimée qui a été configurée avec des clés gérées par le client au niveau de la base de données. Pour en savoir plus sur la récupération de sauvegarde pour SQL Database, consultez Restaurer une base de données à partir d’une sauvegarde dans Azure SQL Database.
Accédez au portail Azure, puis accédez au serveur logique de la base de données supprimée que vous souhaitez restaurer. Dans le menu Gestion des données, sélectionnez Bases de données.
Sélectionnez la base de données supprimée que vous souhaitez restaurer.
Le menu Créer une base de données SQL – Restaurer la base de données s’affiche. Remplissez les détails nécessaires de la source et de la base de données. Dans la section Gestion des clés de chiffrement transparent des données, sélectionnez Configurer le chiffrement transparent des données.
Lorsque le menu Chiffrement transparent des données s’affiche, configurez l’identité managée affectée par l’utilisateur, la clé gérée par le client et la section Clés de base de données supplémentaires pour votre base de données.
Sélectionnez Appliquer pour continuer, puis sélectionnez Vérifier + créer et Créer pour créer la base de données copiée.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Préremplissez la liste des clés utilisées par la base de données supprimée en utilisant le paramètre expand-keys. Il est recommandé de passer toutes les clés que la base de données source utilisait. Vous pouvez aussi tenter une restauration avec les clés fournies au moment de la suppression en utilisant le paramètre keys-filter.
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Importante
restorable-dropped-database-id peut être récupéré en listant toutes les bases de données supprimées restaurables dans le serveur et est au format databaseName,deletedTimestamp.
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données en tant que cible de restauration, et fournissez la liste préremplie des clés obtenues auprès de la base de données source supprimée et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
Importante
$keys est une liste de clés séparées par un espace, récupérées auprès de la base de données source.
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Préremplissez la liste des clés utilisées par la base de données primaire en utilisant la commande Get-AzSqlDeletedDatabaseBackup et le paramètre -ExpandKeyList. Il est recommandé de passer toutes les clés que la base de données source utilisait. Vous pouvez aussi tenter une restauration avec les clés fournies au moment de la suppression en utilisant le paramètre -KeysFilter.
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate "2/6/2023" -DatabaseName <databaseName>
Importante
DatabaseId peut être récupéré en listant toutes les bases de données supprimées restaurables dans le serveur et est au format databaseName,deletedTimestamp.
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Utilisez la commande Restore-AzSqlDatabase avec le paramètre -FromDeletedDatabaseBackup, et fournissez la liste préremplie des clés obtenues à partir des étapes ci-dessus et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire) dans l’appel d’API en utilisant les paramètres -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (et si nécessaire, -FederatedClientId).
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate <DeletionDate> -DatabaseName <databaseName>
# Create a restored database
Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/restorableDroppedDatabases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
Restauration géographique
La section suivante explique comment restaurer une sauvegarde géorépliquée d’une base de données qui a été configurée avec des clés gérées par le client au niveau de la base de données. Pour en savoir plus sur la récupération de sauvegarde pour SQL Database, consultez Restaurer une base de données à partir d’une sauvegarde dans Azure SQL Database.
Accédez au portail Azure, puis accédez au serveur logique où vous souhaitez restaurer la base de données.
Dans le menu Vue d’ensemble, sélectionnez Créer une base de données.
Le menu Créer une base de données SQL Database s’affiche. Remplissez les onglets De base and Réseaux de votre nouvelle base de données. Dans Paramètres supplémentaires, sélectionnez Sauvegarde dans la section Utiliser les données existantes, puis sélectionnez une sauvegarde géorépliquée.
Accédez à l’onglet Sécurité . Dans la section Gestion des clés de chiffrement transparent des données, sélectionnez Configurer le chiffrement transparent des données.
Lorsque le menu Chiffrement transparent des données s’affiche, sélectionnez Clé gérée par le client (CMK) au niveau de la base de données.
L’identité managée affectée par l’utilisateur, la clé gérée par le client et les clés de base de données supplémentaires doivent correspondre à la base de données source que vous souhaitez restaurer. Vérifiez que l’identité managée affectée par l’utilisateur a accès à Azure Key Vault qui contient la clé gérée par le client utilisée dans la sauvegarde.
Sélectionnez Appliquer pour continuer, puis sélectionnez Vérifier + créer et Créer pour créer la base de données de sauvegarde.
Pour plus d’informations sur l’installation de la version actuelle d’Azure CLI, consultez Installer Azure CLI.
Préremplissez la liste des clés utilisées par la géosauvegarde de la base de données configurée avec des clés gérées par le client au niveau de la base de données en utilisant le paramètre expand-keys.
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Créez une base de données en tant que cible de géorestauration, et fournissez la liste préremplie des clés obtenues auprès de la base de données source supprimée et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire).
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Importante
$keys est une liste de clés séparées par un espace, récupérées auprès de la base de données source.
Pour des instructions d’installation du module Az PowerShell, consultez Installer Azure PowerShell.
Préremplissez la liste des clés utilisées par la base de données primaire en utilisant la commande Get-AzSqlDatabaseGeoBackup et -ExpandKeyList pour récupérer toutes les clés.
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
Importante
DatabaseId peut être récupéré en listant toutes les bases de données supprimées restaurables dans le serveur et est au format databaseName,deletedTimestamp.
Sélectionnez l’identité managée affectée par l’utilisateur (et l’ID de client fédéré si vous configurez l’accès interlocataire).
Utilisez la commande Restore-AzSqlDatabase avec le paramètre -FromGeoBackup, et fournissez la liste préremplie des clés obtenues à partir des étapes ci-dessus et l’identité ci-dessus (et l’ID de client fédéré si vous configurez l’accès interlocataire) dans l’appel d’API en utilisant les paramètres -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (et si nécessaire, -FederatedClientId).
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
# Create a restored database
Restore-AzSqlDatabase -FromGeoBackup -ResourceId "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
Importante
Les sauvegardes avec conservation à long terme (LTR, Long Term Retention) ne fournissent pas la liste des clés utilisées par la sauvegarde. Pour restaurer une sauvegarde LTR, toutes les clés utilisées par la base de données source doivent être passées à la cible de restauration LTR.
Option de rotation automatique des clés pour les bases de données copiées ou restaurées
Les bases de données nouvellement copiées ou restaurées peuvent être configurées pour effectuer automatiquement la rotation de la clé gérée par le client utilisée pour Transparent Data Encryption. Pour savoir comment activer la rotation automatique des clés dans le portail Azure ou à l'aide des API, consultez Rotation automatique des clés au niveau de la base de données.
Contenu connexe