Aplica-se a:
Banco de Dados SQL do Azure
Observação
- A CMK de TDE no nível do banco de dados está disponível para o Banco de Dados SQL do Azure (todas as edições do Banco de Dados SQL). Ele não está disponível para a Instância Gerenciada de SQL do Azure, o SQL Server local, as VMs do Azure e o Azure Synapse Analytics (pools de SQL dedicados (antigo SQL DW)).
- O mesmo guia pode ser aplicado para configurar chaves gerenciadas pelo cliente no nível do banco de dados no mesmo locatário excluindo o parâmetro de ID do cliente federada. Para obter mais informações sobre chaves gerenciadas pelo cliente no nível do banco de dados, confira TDE (Transparent Data Encryption) com chaves gerenciadas pelo cliente no nível do banco de dados.
Neste guia, percorremos as etapas para criar, atualizar e recuperar um Banco de Dados SQL do Azure com TDE (Transparent Data Encryption) e CMK (chaves gerenciadas pelo cliente) no nível do banco de dados, utilizando uma identidade gerenciada atribuída pelo usuário para acessar o Azure Key Vault. O Azure Key Vault está em um locatário do Microsoft Entra diferente do banco de dados SQL do Azure. Para obter mais informações, confira Chaves gerenciadas pelo cliente entre locatários com Transparent Data Encryption.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Active Directory (Azure AD).
Pré-requisitos
- Este guia pressupõe que você tenha dois locatários do Microsoft Entra.
- O primeiro consiste no recurso do Banco de Dados SQL do Azure, um aplicativo multilocatário do Microsoft Entra e uma identidade gerenciada atribuída pelo usuário.
- O segundo locatário abriga o Azure Key Vault.
- Para obter instruções abrangentes sobre como configurar a CMK entre locatários e as permissões de RBAC necessárias para configurar as aplicações do Microsoft Entra e o Azure Key Vault, confira um dos seguintes guias:
- A CLI do Azure, versão 2.52.0 ou superior.
- Módulo Az do PowerShell versão 10.3.0 ou superior.
- As permissões RBAC necessárias para a CMK no nível do banco de dados são as mesmas permissões necessárias para a CMK no nível do servidor. Especificamente, as mesmas permissões RBAC aplicáveis ao usar o Azure Key Vault, as identidades gerenciadas e o CMK entre locatários para TDE no nível do servidor são aplicáveis no nível do banco de dados. Para obter mais informações sobre gerenciamento de chaves e política de acesso, confira Gerenciamento de chaves.
Recursos necessários no primeiro locatário
Para a finalidade deste tutorial, vamos supor que o primeiro locatário pertence a um ISV (fornecedor de software independente) e o segundo locatário é de seu cliente. Para obter mais informações sobre esse cenário, confira Chaves gerenciadas pelo cliente entre locatários com Transparent Data Encryption.
Antes de podermos configurar o TDE para o Banco de Dados SQL do Azure com uma CMK entre locatários, precisamos ter um aplicativo do Microsoft Entra multilocatário configurado com uma identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada para o aplicativo. Siga um dos guias em Pré-requisitos.
No primeiro locatário em que você deseja criar o Banco de Dados SQL do Azure, crie e configure um aplicativo multilocatário do Microsoft Entra.
Crie uma identidade gerenciada atribuída pelo usuário.
Configure a identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada para o aplicativo multilocatário.
Registre o nome do aplicativo e a ID do aplicativo. Isso pode ser encontrado no portal do Azure>Microsoft Entra ID>Aplicativos empresariais e pesquise o aplicativo criado.
Recursos necessários no segundo locatário
Observação
Os módulos Azure AD e MSOnline PowerShell estão preteridos desde 30 de março de 2024. Para saber mais, leia a atualização de substituição. Após essa data, o suporte a esses módulos se limitará à assistência à migração para o SDK do Microsoft Graph PowerShell e às correções de segurança. Os módulos preteridos continuarão funcionando até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (antigo Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas Frequentes sobre Migração.
Observação: As versões 1.0.x do MSOnline poderão sofrer interrupções após 30 de junho de 2024.
No segundo locatário em que reside o Azure Key Vault, crie uma entidade de serviço (aplicativo) usando a ID do aplicativo registrado do primeiro locatário. Aqui estão alguns exemplos de como registrar o aplicativo multilocatário. Substitua <TenantID> e <ApplicationID> pela ID do locatário do cliente do Microsoft Entra ID e pela ID do aplicativo multilocatário, respectivamente:
Acesse o portal do Azure>Microsoft Entra ID>Aplicativos empresariais e pesquise o aplicativo que foi criado.
Crie um Azure Key Vault caso não tenha um e crie uma chave.
Crie ou defina a política de acesso.
- Selecione as permissões Obter, Encapsular Chave, Desencapsular Chave em Permissões de chave ao criar a política de acesso.
- Selecione o aplicativo multilocatário criado na primeira etapa na opção Principal ao criar a política de acesso.
Depois que a política de acesso e a chave tiverem sido criadas, recupere a chave do Azure Key Vault e registre o Identificador de Chave.
Criar um Banco de Dados SQL do Azure com chaves gerenciadas pelo cliente no nível do banco de dados
Veja a seguir exemplos para criar um banco de dados no Banco de Dados SQL do Azure com uma identidade gerenciada atribuída pelo usuário e como definir uma chave gerenciada pelo cliente entre locatários no nível do banco de dados. A identidade gerenciada atribuída pelo usuário é obrigatória para configurar uma chave gerenciada pelo cliente para Transparent Data Encryption durante a fase de criação do servidor.
Vá para o Hub SQL do Azure em aka.ms/azuresqlhub.
No painel do Banco de Dados SQL do Azure, selecione Mostrar opções.
Na janela de opções do Banco de Dados SQL do Azure , selecione Criar Banco de Dados SQL.
Na guia Noções básicas do formulário Criar Banco de Dados SQL, em Detalhes do projeto, selecione a Assinatura do Azure desejada, Grupo de recursos e Servidor para seu banco de dados. Em seguida, use um nome exclusivo para seu Nome de banco de dados. Se você ainda não criou um servidor lógico para SQL do Azure Banco de Dados, confira Criar servidor configurado com TDE com CMK (chave gerenciada pelo cliente) entre locatários para referência.
Quando chegar à guia Segurança, selecione Configurar Criptografia de Dados Transparente para a chave no nível do banco de dados.
No menu Transparent data encryption, selecione Chave gerenciada pelo cliente no nível do banco de dados (CMK).
Para identidade gerenciada atribuída pelo usuário, selecione Configurar para habilitar uma Identidade de banco de dados e Adicionar uma identidade gerenciada atribuída pelo usuário ao recurso se uma identidade desejada não estiver listada no menu Identidade. Em seguida, selecione Aplicar.
No menu Transparent data encryption, selecione Alterar chave. Selecione a Assinatura, o Cofre de chaves, a Chave e a Versão desejadas para a chave gerenciada pelo cliente que será usada para a TDE. Escolha o botão Selecionar. Depois de selecionar uma chave, você também pode adicionar chaves de banco de dados adicionais conforme o necessário usando o URI do Azure Key Vault (identificador de objeto) no menu Transparent data encryption.
A Rotação automática de chave também pode ser habilitada no nível do banco de dados usando a caixa de seleção Girar automaticamente a chave no menu Criptografia de Dados Transparente.
Selecione Aplicar para continuar criando o banco de dados.
Selecione Avançar: configurações adicionais.
Selecione Avançar: Marcas.
Considere usar tags do Azure. Por exemplo, a marca "Proprietário" ou "CreatedBy" para identificar quem criou o recurso e a marca Ambiente para identificar se esse recurso está em Produção, Desenvolvimento etc. Para obter mais informações, consulte Desenvolver sua estratégia de nomenclatura e marcação para recursos do Azure.
Selecione Examinar + criar.
Na página Examinar + criar, após examinar, selecione Criar.
Para saber como instalar versão atual da CLI do Azure, confira o artigo Instalar a CLI do Azure.
Crie um servidor configurado com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente entre locatários usando o comando az sql server create. O Identificador de chave do segundo locatário pode ser usado no campo encryption-protector. A ID do aplicativo multilocatário pode ser usada no campo federated-client-id. O parâmetro --encryption-protector-auto-rotation pode ser usado para habilitar a rotação automática de chave no nível do banco de dados.
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante 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
Crie um banco de dados configurado com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente entre locatários no nível do banco de dados usando o PowerShell.
Para obter instruções de instalação do módulo Az do PowerShell, confira Instalar o Azure PowerShell.
Use o cmdlet New-AzSqlDatabase.
Substitua os seguintes valores no exemplo:
-
<ResourceGroupName>: nome do grupo de recursos para o servidor lógico do SQL do Azure
-
<DatabaseName>: use um nome exclusivo de banco de dados SQL do Azure
-
<ServerName>: use um nome exclusivo para o servidor lógico do SQL do Azure
-
<UserAssignedIdentityId>: a lista de identidades gerenciadas atribuídas pelo usuário a serem designadas ao servidor (uma ou várias)
-
<CustomerManagedKeyId>: o Identificador de chave do Azure Key Vault do segundo locatário
-
<FederatedClientId>: a ID do aplicativo multilocatário
-
-EncryptionProtectorAutoRotation: pode ser usado para habilitar a rotação automática de chave no nível do banco de dados
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante 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
Veja a seguir um exemplo de um modelo do ARM que cria um Banco de Dados SQL do Azure com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente no nível do banco de dados. Para uma CMK entre locatários, use o Identificador de Chave do Azure Key Vault do segundo locatário e i ID do Aplicativo do aplicativo multilocatário.
Para obter mais informações e modelos do ARM, consulte os modelos do Azure Resource Manager para o Banco de Dados SQL do Azure.
Use uma implantação personalizada no portal do Azure e crie um modelo próprio no editor. Em seguida, salve a configuração depois de colá-la no exemplo.
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante 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')]"
}
}
]
}
Atualizar um Banco de Dados SQL do Azure existente com chaves gerenciadas pelo cliente no nível do banco de dados
Veja a seguir exemplos de atualização de um banco de dados existente no Banco de Dados SQL do Azure com uma identidade gerenciada atribuída pelo usuário e como definir uma chave gerenciada pelo cliente entre locatários no nível do banco de dados. A identidade gerenciada atribuída pelo usuário é obrigatória para configurar uma chave gerenciada pelo cliente para Transparent Data Encryption durante a fase de criação do servidor.
No portal do Azure, navegue até o recurso de banco de dados SQL que você deseja atualizar com uma chave gerenciada pelo cliente no nível do banco de dados.
Em Segurança, selecione Identidade. Adicione uma Identidade gerenciada atribuída pelo usuário para este banco de dados e selecione Salvar
Agora acesse o menu Criptografia de dados em Segurança para seu banco de dados. Selecione Chave gerenciada pelo cliente no nível do banco de dados (CMK). A Identidade do banco de dados para o banco de dados já deve estar Habilitada, pois você configurou a identidade na última etapa.
Selecione Alterar chave. Selecione a Assinatura, o Cofre de chaves, a Chave e a Versão desejadas para a chave gerenciada pelo cliente que será usada para a TDE. Escolha o botão Selecionar. Depois de selecionar uma chave, você também pode adicionar chaves de banco de dados adicionais conforme o necessário usando o URI do Azure Key Vault (identificador de objeto) no menu Criptografia de dados.
Marque a caixa de seleção Girar automaticamente a chave se quiser habilitar a rotação automática de chave no nível do banco de dados.
Clique em Salvar.
Para saber como instalar versão atual da CLI do Azure, confira o artigo Instalar a CLI do Azure.
Atualize um banco de dados configurado com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente entre locatários usando o comando az sql db create. O Identificador de chave do segundo locatário pode ser usado no campo encryption-protector. A ID do aplicativo multilocatário pode ser usada no campo federated-client-id.
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante a /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. O parâmetro --encryption-protector-auto-rotation pode ser usado para habilitar a rotação automática de chave no nível do banco de dados.
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
A lista $keys é uma lista de chaves separadas por espaço que devem ser adicionadas ao banco de dados e $keysToRemove é uma lista de chaves separadas por espaço que precisam ser removidas do banco de dados
$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"'
Atualize um banco de dados configurado com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente entre locatários no nível do banco de dados usando o PowerShell.
Para obter instruções de instalação do módulo Az do PowerShell, confira Instalar o Azure PowerShell.
Use o cmdlet Set-AzSqlDatabase.
Substitua os seguintes valores no exemplo:
-
<ResourceGroupName>: nome do grupo de recursos para o servidor lógico do SQL do Azure
-
<DatabaseName>: use um nome exclusivo de banco de dados SQL do Azure
-
<ServerName>: use um nome exclusivo para o servidor lógico do SQL do Azure
-
<UserAssignedIdentityId>: a lista de identidades gerenciadas atribuídas pelo usuário a serem designadas ao servidor (uma ou várias)
-
<CustomerManagedKeyId>: o Identificador de chave do Azure Key Vault do segundo locatário
-
<FederatedClientId>: a ID do aplicativo multilocatário
-
<ListOfKeys>: a lista separada de chaves gerenciadas pelo cliente no nível do banco de dados por vírgula a ser adicionada ao banco de dados
-
<ListOfKeysToRemove>: a lista de chaves gerenciadas pelo cliente no nível do banco de dados separadas por vírgula a ser removida do banco de dados
-
-EncryptionProtectorAutoRotation: pode ser usado para habilitar a rotação automática de chave no nível do banco de dados
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante 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
Um exemplo de -KeyList e -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"
Veja um exemplo de modelo do ARM que atualiza um Banco de Dados SQL do Azure com uma identidade gerenciada atribuída pelo usuário e a TDE gerenciada pelo cliente no nível do banco de dados. Para uma CMK entre locatários, use o Identificador de Chave do Azure Key Vault do segundo locatário e i ID do Aplicativo do aplicativo multilocatário.
Para obter mais informações e modelos do ARM, consulte os modelos do Azure Resource Manager para o Banco de Dados SQL do Azure.
Use uma implantação personalizada no portal do Azure e crie um modelo próprio no editor. Em seguida, salve a configuração depois de colá-la no exemplo.
Para obter a ID de recurso da identidade gerenciada atribuída pelo usuário, pesquise Identidades gerenciadas no portal do Azure. Encontre sua identidade gerenciada e acesse Propriedades. Um exemplo da ID de recurso da UMI é semelhante 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')]"
}
}
]
}
Um exemplo do parâmetro encryption_protector e 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 remover uma chave do banco de dados, o valor do dicionário de chaves de uma chave específica precisa ser passado como nulo. Por exemplo, "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Exibir as configurações de chave gerenciada pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
Veja exemplos de recuperação das chaves gerenciadas pelo cliente no nível do banco de dados. O recurso Microsoft.Sql/servers/databases do ARM, por padrão, mostra apenas o protetor de TDE e a identidade gerenciada configurada no banco de dados. Para expandir a lista completa de chaves, use o parâmetro -ExpandKeyList. Além disso, filtros como -KeysFilter "current" e um valor de momento (por exemplo, 2023-01-01) podem ser usados para recuperar as chaves atuais usadas e as chaves usadas no passado em um momento específico. Só há suporte para esses filtros em consultas individuais de banco de dados e não em consultas no nível do servidor.
Para exibir as chaves gerenciadas pelo cliente no nível do banco de dados no portal do Azure, acesse o menu Criptografia de dados do recurso do banco de dados SQL.
Para saber como instalar versão atual da CLI do Azure, confira o artigo Instalar a CLI do 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 obter instruções de instalação do módulo Az do PowerShell, confira Instalar o Azure PowerShell.
Use o 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 a API REST 2022-08-01-preview para o Banco de Dados SQL do Azure.
Recupere as configurações básicas de chave gerenciada pelo cliente no nível do banco de dados de um banco de dados.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Recuperar as configurações básicas de chave gerenciada pelo cliente no nível do banco de dados de um banco de dados e todas as chaves já adicionadas
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Recuperar as configurações básicas de chave gerenciada pelo cliente no nível do banco de dados de um banco de dados e as chaves atuais em 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'))
Recuperar as configurações básicas de chave gerenciada pelo cliente no nível do banco de dados de um banco de dados e as chaves em uso em um determinado momento
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'))
Listar todas as chaves em um servidor lógico
Para buscar a lista de todas as chaves (e não apenas o protetor primário) usadas pelos bancos de dados no servidor, é necessário fazer uma consulta individual com os filtros de chave. Veja a seguir um exemplo de consulta do PowerShell para listar cada chave no servidor lógico.
Use o 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
}
Revalidar a chave gerenciada pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
No caso de um protetor de TDE inacessível, conforme descrito na criptografia de dados transparente do SQL do Azure com chave gerenciada pelo cliente, depois que o acesso à chave for corrigido, uma operação de chave de revalidação poderá ser usada para tornar o banco de dados acessível. Veja as instruções ou comandos a seguir para obter exemplos.
Usando o portal do Azure, localize o recurso do banco de dados SQL. Depois de selecionar o recurso do banco de dados SQL, acesse a guia Transparent Data Encryption do menu Criptografia de dados nas configurações de Segurança. Se o banco de dados tiver perdido o acesso ao Azure Key Vault, um botão Revalidar chave será exibido e você terá a opção de revalidar a chave existente selecionando Repetir chave existente ou outra chave selecionando Selecionar chave de backup.
Para saber como instalar versão atual da CLI do Azure, confira o artigo Instalar a CLI do Azure.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Use a API REST 2022-08-01-preview para o Banco de Dados SQL do Azure.
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
Reverter a chave gerenciada pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
Um banco de dados configurado com CMK no nível do banco de dados pode ser revertido para criptografia no nível do servidor se o servidor estiver configurado com uma chave gerenciada pelo serviço usando os comandos a seguir.
Para reverter a configuração de chave gerenciada pelo cliente no nível do banco de dados para a chave de criptografia no nível do servidor no portal do Azure, acesse a guia Transparent data encryption do menu Criptografia de dados do recurso de banco de dados SQL. Selecione Chave de criptografia no nível do servidor e selecione Salvar para salvar as configurações.
Observação
Para usar a configuração de Chave de criptografia no nível do servidor para bancos de dados individuais, o servidor lógico do banco de dados SQL do Azure deve ser configurado para usar a Chave gerenciada pelo serviço para TDE.
Para saber como instalar versão atual da CLI do Azure, confira o artigo Instalar a CLI do Azure.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Use a API REST 2022-08-01-preview para o Banco de Dados SQL do Azure.
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
Conteúdo relacionado