Se aplica a:
Azure SQL Database
Nota
- TDE CMK de nivel de base de datos está disponible para Azure SQL Database (todas las ediciones de SQL Database). No está disponible para Azure SQL Managed Instance, SQL Server local, máquinas virtuales de Azure y Azure Synapse Analytics (grupos de SQL dedicados (anteriormente SQL DW)).
- La misma guía se puede aplicar para configurar claves administradas por el cliente en el nivel de base de datos en el mismo inquilino mediante la exclusión del parámetro de id. de cliente federado. Para obtener más información sobre las claves administradas por el cliente en el nivel de base de datos, consulte Cifrado de datos transparente (TDE) con claves administradas por el cliente en el nivel de base de datos.
En esta guía, se describen los pasos para crear, actualizar y recuperar una instancia de Azure SQL Database con cifrado de datos transparente (TDE) y claves administradas por el cliente (CMK) en el nivel de base de datos, utilizando una identidad administrada asignada por el usuario para acceder a Azure Key Vault. Azure Key Vault se encuentra en un inquilino de Microsoft Entra diferente al de Azure SQL Database. Para obtener más información, consulte Claves administradas por el cliente entre inquilinos con cifrado de datos transparente.
Nota
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
Requisitos previos
- En esta guía se da por supuesto que tiene dos inquilinos de Microsoft Entra.
- La primera consta del recurso de Azure SQL Database, una aplicación multitenant de Microsoft Entra y una identidad administrada asignada por el usuario.
- El segundo inquilino aloja la instancia de Azure Key Vault.
- Para obtener instrucciones completas sobre cómo configurar CMK entre inquilinos y los permisos de RBAC necesarios para configurar aplicaciones de Microsoft Entra y Azure Key Vault, consulte una de las siguientes guías:
- La versión 2.52.0 o superior de la CLI de Azure.
- Versión 10.3.0, o superior, del módulo Az PowerShell.
- Los permisos de RBAC necesarios para CMK de nivel de base de datos son los mismos necesarios para CMK de nivel de servidor. En concreto, los mismos permisos de RBAC que son aplicables al usar Azure Key Vault, identidades administradas y CMK entre inquilinos para TDE en el nivel de servidor se aplican en el nivel de base de datos. Para más información sobre la administración de claves y la directiva de acceso, vea Administración de claves.
Recursos necesarios en el primer inquilino
Para este tutorial, asumiremos que el primer inquilino pertenece a un proveedor de software independiente (ISV) y que el segundo inquilino procede de su cliente. Para más información sobre este escenario, consulte Claves administradas por el cliente entre inquilinos con cifrado de datos transparente.
Para poder configurar TDE para Azure SQL Database con una CMK entre inquilinos, es necesario tener una aplicación de Microsoft Entra multiinquilino configurada con una identidad administrada asignada por el usuario asignada como una credencial de identidad federada para la aplicación. Siga una de las guías de requisitos previos.
En el primer tenant de Azure en el que desea crear una base de datos de Azure SQL, cree y configure una aplicación Microsoft Entra multitenant.
Creación de una identidad administrada asignada por el usuario.
Configure la identidad administrada asignada por el usuario como una credencial de identidad federada para la aplicación multiinquilino.
Registre el nombre e id. de la aplicación. Esta información se puede encontrar en Azure Portal>Microsoft Entra ID>Aplicaciones empresariales y, después, buscar la aplicación creada.
Recursos necesarios en el segundo inquilino
Nota
Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para más información, lea la actualización de desuso. Desde esta fecha, el soporte de estos módulos se limita a la asistencia de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.
Se recomienda migrar a PowerShell de Microsoft Graph para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para preguntas comunes sobre la migración, consulte las Preguntas más frecuentes sobre migración.
Nota: las versiones 1.0.x de MSOnline pueden experimentar interrupciones a partir del 30 de junio de 2024.
En el segundo inquilino donde reside Azure Key Vault, crear una entidad de servicio (aplicación) mediante el identificador de aplicación de la aplicación registrada desde el primer inquilino. Estos son algunos ejemplos de cómo registrar la aplicación multiinquilino. Reemplace <TenantID> y <ApplicationID> por el Id. de inquilino del cliente de Microsoft Entra ID y el Id. de aplicación de la aplicación multiinquilino, respectivamente:
Vaya a Azure Portal>Microsoft Entra ID>Aplicaciones empresariales y busque la aplicación que se ha creado.
Cree una instancia de Azure Key Vault si no tiene una y cree una clave.
Cree o establezca la directiva de acceso.
- Seleccione los permisos Obtener, Encapsular clave, Desencapsular clave en Permisos de clave al crear la directiva de acceso.
- Seleccione la aplicación multitenant creada en el primer paso en la opción Principal al crear la directiva de acceso.
Una vez creada la directiva de acceso y la clave, recupere la clave de Azure Key Vault y registre el identificador de clave.
Creación de una base de datos Azure SQL con claves administradas por el cliente en el nivel de base de datos
A continuación se muestran ejemplos para crear una base de datos en Azure SQL Database con una identidad administrada asignada por el usuario y cómo establecer una clave administrada por el cliente entre inquilinos en el nivel de base de datos. La identidad administrada asignada por el usuario es necesaria para configurar una clave administrada por el cliente para el cifrado de datos transparente durante la fase de creación de la base de datos.
Vaya al centro de Azure SQL en aka.ms/azuresqlhub.
En el panel de Azure SQL Database, seleccione Mostrar opciones.
En la ventana de opciones de Azure SQL Database , seleccione Crear SQL Database.
En la pestaña Conceptos básicos del formulario Crear base de datos SQL, en Detalles del proyecto, seleccione la suscripción de Azure, el grupo de recursos y el servidor que desee para la base de datos. Luego, use un nombre único para el nombre de la base de datos. Si no ha creado un servidor lógico para Azure SQL Database, consulte Creación de un servidor configurado con TDE con una clave administrada por el cliente entre inquilinos (CMK) como referencia.
Cuando llegue a la pestaña Seguridad , seleccione Configurar cifrado de datos transparente para la clave de nivel de base de datos.
En el menú Cifrado de datos transparente, seleccione Clave administrada del cliente (CMK) de nivel de base de datos.
En Identidad administrada asignada por el usuario, seleccione Configurar para habilitar una identidad de base de datos y agregar una identidad administrada asignada por el usuario al recurso si una identidad deseada no aparece en el menú Identidad. Luego, seleccione Aplicar.
En el menú Cifrado de datos transparente, seleccione Cambiar clave. Seleccione la Subscription deseada, el Almacén de claves, la Clave y la Versión para la clave administrada por el cliente que se usará para TDE. Selecciona el botón Seleccionar. Tras seleccionar una clave, también puede agregar tantas claves de base de datos como sea necesario mediante el URI de Azure Key Vault (identificador de objeto) en el menú Cifrado de datos transparente.
La rotación automática de claves también se puede habilitar en el nivel de base de datos mediante la casilla Girar automáticamente la clave en el menú Cifrado de datos transparente.
Seleccione Aplicar para continuar con la creación de la base de datos.
Seleccione Siguiente: Configuración adicional.
Seleccione Siguiente: Etiquetas.
Considere la posibilidad de usar las etiquetas de Azure. Por ejemplo, la etiqueta "Propietario" o "CreatedBy" para identificar quién creó el recurso y la etiqueta Entorno para identificar si este recurso está en producción, desarrollo, etc. Para más información, consulte Desarrollo de la estrategia de nomenclatura y etiquetado para los recursos de Azure.
Selecciona Revisar + crear.
En la página Revisar y crear, después de revisar, seleccione Crear.
Para obtener información sobre cómo instalar la versión actual de la CLI de Azure, vea Instalación de la CLI de Azure.
Cree una base de datos configurada con una identidad administrada asignada por el usuario y un TDE administrado por el cliente entre inquilinos mediante el comando az sql db create. El valor de Identificador de clave del segundo inquilino se puede usar en el campo encryption-protector. El identificador de aplicación de la aplicación multitenant se puede usar en el campo federated-client-id. El parámetro --encryption-protector-auto-rotation se puede usar para habilitar la rotación automática de claves en el nivel de base de datos.
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
Cree una base de datos configurada con una identidad administrada asignada por el usuario y un TDE administrado por el cliente entre inquilinos en el nivel de base de datos mediante PowerShell.
Para obtener instrucciones sobre la instalación del módulo Azure PowerShell, consulte Instalación de Azure PowerShell.
Use el cmdlet New-AzSqlDatabase.
Reemplace los valores siguientes del ejemplo:
-
<ResourceGroupName>: nombre del grupo de recursos para el servidor lógico de Azure SQL
-
<DatabaseName>: use un nombre de base de datos de Azure SQL único.
-
<ServerName>: use un nombre del servidor lógico de Azure SQL
-
<UserAssignedIdentityId>: la lista de identidades administradas asignadas por el usuario que se asignarán al servidor (pueden ser una o varias).
-
<CustomerManagedKeyId>: el valor de Identificador de clave de la instancia Azure Key Vault del segundo inquilino
-
<FederatedClientId>: el identificador de aplicación de la aplicación multitenant.
-
-EncryptionProtectorAutoRotation: se puede usar para habilitar la rotación automática de claves en el nivel de base de datos
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Este es un ejemplo de una plantilla de ARM que crea una instancia de Azure SQL Database con una identidad administrada asignada por el usuario y un TDE administrado por el cliente en el nivel de base de datos. Para una CMK entre inquilinos, use el identificador de clave del Azure Key Vault del segundo inquilino y el identificador de aplicación de la aplicación multiinquilino.
Para más información y plantillas de ARM, consulte Plantillas de Azure Resource Manager para Azure SQL Database.
Use una implementación personalizada en Azure Portal y cree su propia plantilla en el editor. A continuación, guarde la configuración una vez pegada en el ejemplo.
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$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"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-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/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Actualización de una instancia de Azure SQL Database con claves administradas por el cliente en el nivel de base de datos
A continuación se muestran ejemplos para actualizar una base de datos existente en Azure SQL Database con una identidad administrada asignada por el usuario y cómo establecer una clave administrada por el cliente entre inquilinos en el nivel de base de datos. La identidad administrada asignada por el usuario es necesaria para configurar una clave administrada por el cliente para el cifrado de datos transparente durante la fase de creación de la base de datos.
En Azure portal, vaya al recurso de la base de datos de SQL que quiera actualizar con una clave administrada por el cliente de nivel de base de datos.
En Seguridad, seleccione Identidad. Agregue una identidad administrada asignada por el usuario a esta base de datos y seleccione Guardar.
Ahora vaya al menú Cifrado de datos transparente en Seguridad de la base de datos. Seleccione Clave administrada por el cliente (CMK) de nivel de base de datos. La identidad de la base de datos ya debe estar habilitada, porque se ha configurado en el último paso.
Seleccione Cambiar clave. Seleccione la Subscription deseada, el Almacén de claves, la Clave y la Versión para la clave administrada por el cliente que se usará para TDE. Selecciona el botón Seleccionar. Tras seleccionar una clave, también puede agregar tantas claves de base de datos como sea necesario mediante el URI de Azure Key Vault (identificador de objeto) en el menú Cifrado de datos.
Active la casilla Rotación automática de claves si quiere habilitar la rotación automática de claves en el nivel de base de datos.
Selecciona Guardar.
Para obtener información sobre cómo instalar la versión actual de la CLI de Azure, vea Instalación de la CLI de Azure.
Actualice una base de datos configurada con una identidad administrada asignada por el usuario y un TDE administrado por el cliente entre inquilinos mediante el comando az sql db update. El valor de Identificador de clave del segundo inquilino se puede usar en el campo encryption-protector. El identificador de aplicación de la aplicación multitenant se puede usar en el campo federated-client-id.
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. El parámetro --encryption-protector-auto-rotation se puede usar para habilitar la rotación automática de claves en el nivel de base de datos.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
La lista $keys es una lista de claves separadas por espacios que se van a agregar a la base de datos y $keysToRemove es una lista de claves separadas por espacios que se deben quitar de la base de datos.
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Actualice una base de datos configurada con una identidad administrada asignada por el usuario y un TDE administrado por el cliente entre inquilinos en el nivel de base de datos mediante PowerShell.
Para obtener instrucciones sobre la instalación del módulo Azure PowerShell, consulte Instalación de Azure PowerShell.
Use el cmdlet Set-AzSqlDatabase.
Reemplace los valores siguientes del ejemplo:
-
<ResourceGroupName>: nombre del grupo de recursos para el servidor lógico de Azure SQL
-
<DatabaseName>: use un nombre de base de datos de Azure SQL único.
-
<ServerName>: use un nombre del servidor lógico de Azure SQL
-
<UserAssignedIdentityId>: la lista de identidades administradas asignadas por el usuario que se asignarán al servidor (pueden ser una o varias).
-
<CustomerManagedKeyId>: el valor de Identificador de clave de la instancia Azure Key Vault del segundo inquilino
-
<FederatedClientId>: el identificador de aplicación de la aplicación multitenant.
-
<ListOfKeys>: lista de claves administradas por el cliente en el nivel de base de datos separadas por comas que se agregarán a la base de datos.
-
<ListOfKeysToRemove>: lista de claves administradas por el cliente en el nivel de base de datos separadas por comas que se quitarán de la base de datos.
-
-EncryptionProtectorAutoRotation: se puede usar para habilitar la rotación automática de claves en el nivel de base de datos
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Ejemplo de -KeyList y -KeysToRemove:
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Este es un ejemplo de una plantilla de ARM que actualiza una instancia de Azure SQL Database con una identidad administrada asignada por el usuario y un TDE administrado por el cliente en el nivel de base de datos. Para una CMK entre inquilinos, use el identificador de clave del Azure Key Vault del segundo inquilino y el identificador de aplicación de la aplicación multiinquilino.
Para más información y plantillas de ARM, consulte Plantillas de Azure Resource Manager para Azure SQL Database.
Use una implementación personalizada en Azure Portal y cree su propia plantilla en el editor. A continuación, guarde la configuración una vez pegada en el ejemplo.
Para obtener la identidad administrada asignada por el usuario Identificador de recurso, busque identidades administradas en Azure Portal. Busque su identidad administrada y vaya a Propiedades. Un ejemplo de Identificador de recurso para la UMI tiene un aspecto similar a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$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"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-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-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Ejemplo de los parámetros encryption_protector y 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"
}
Importante
Para quitar una clave de la base de datos, el valor del diccionario de claves de una clave determinada debe pasarse como null. Por ejemplo, "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Visualización de la configuración de clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database
A continuación se muestran ejemplos de recuperación de las claves administradas por el cliente de nivel de base de datos para una base de datos. El recurso Microsoft.Sql/servers/databases de ARM, de forma predeterminada, solo muestra el protector de TDE y la identidad administrada configurada en la base de datos. Para expandir la lista completa de claves, use el parámetro -ExpandKeyList. Además, se pueden usar filtros, como -KeysFilter "current", y un valor de un momento dado (por ejemplo, 2023-01-01) para recuperar las claves actuales usadas y las claves usadas en el pasado en un momento dado específico. Estos filtros solo se admiten para consultas de base de datos individuales y no para consultas de nivel de servidor.
Para ver las claves administradas por el cliente de nivel de base de datos en Azure Portal, vaya al menú Cifrado de datos del recurso de base de datos SQL.
Para obtener información sobre cómo instalar la versión actual de la CLI de Azure, vea Instalación de la CLI de Azure.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Para obtener instrucciones sobre la instalación del módulo Azure PowerShell, consulte Instalación de Azure PowerShell.
Use el cmdlet Get-AzSqlDatabase.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Use la API REST 2022-08-01-preview para Azure SQL Database.
Recupere la configuración básica de la clave administrada por el cliente en el nivel de base de datos de una base de datos.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Recupere la configuración básica de la clave administrada por el cliente en el nivel de base de datos de una base de datos y todas las claves agregadas.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Recupere la configuración básica de la clave administrada por el cliente en el nivel de base de datos de una base de datos y las claves actuales en uso.
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'))
Recupere la configuración básica de la clave administrada por el cliente en el nivel de base de datos de una base de datos y las claves en uso en un momento dado concreto.
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('2023-02-04T01:57:42.49Z'))
Enumeración de todas las claves de un servidor lógico
Para capturar la lista de todas las claves (y no solo el protector principal) usadas por cada base de datos en el servidor, debe consultarse individualmente con los filtros de clave. A continuación se muestra un ejemplo de una consulta de PowerShell para enumerar cada clave en el servidor lógico.
Use el cmdlet Get-AzSqlDatabase.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Revalidación de la clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database
En el caso de un protector de TDE inaccesible, tal como se describe en Cifrado de datos transparente de Azure SQL con clave administrada por el cliente, una vez corregido el acceso a la clave, se puede usar una operación de clave de revalidación para que la base de datos sea accesible. En las siguientes instrucciones encontrará ejemplos al respecto.
Utilice Azure Portal para busque el recurso de base de datos SQL. Una vez que haya seleccionado el recurso de base de datos SQL, vaya a la pestaña Cifrado de datos transparente del menú Cifrado de datos en la configuración de Seguridad. Si la base de datos ha perdido el acceso a Azure Key Vault, aparecerá un botón Volver a validar la clave y tendrá la opción de volver a validar la clave existente seleccionando Reintentar clave existente u otra clave, para lo que debería elegir Seleccionar la clave de copia de seguridad.
Para obtener información sobre cómo instalar la versión actual de la CLI de Azure, vea Instalación de la CLI de Azure.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Use la API REST 2022-08-01-preview para Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
Reversión de la clave administrada por el cliente de nivel de base de datos en una instancia de Azure SQL Database
Una base de datos configurada con CMK de nivel de base de datos se puede revertir al cifrado de nivel de servidor si el servidor está configurado con una clave administrada por el servicio mediante los siguientes comandos.
Para revertir el valor de la clave administrada por el cliente de nivel de base de datos a la clave de cifrado de nivel de servidor en Azure Portal, vaya a la pestaña Cifrado de datos transparente del menú Cifrado de datos del recurso de base de datos SQL. Seleccione Clave de cifrado de nivel de servidor y seleccione Guardar para guardar la configuración.
Nota
Para usar el valor Clave de cifrado de nivel de servidor para bases de datos individuales, el servidor lógico de Azure SQL Database debe configurarse para usar la clave administrada por el servicio para TDE.
Para obtener información sobre cómo instalar la versión actual de la CLI de Azure, vea Instalación de la CLI de Azure.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Use la API REST 2022-08-01-preview para Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
Contenido relacionado