Criar e configurar um cofre de chaves para o Azure Disk Encryption

O Azure Disk Encryption utiliza Key Vault do Azure para controlar e gerir chaves e segredos de encriptação de discos. Para obter mais informações sobre cofres de chaves, veja Introdução ao Azure Key Vault e Proteger o cofre de chaves.

A criação e configuração de um cofre de chaves para utilização com o Azure Disk Encryption envolve três passos:

  1. Criar um grupo de recursos, se necessário.
  2. Criar um cofre de chaves.
  3. Definir políticas de acesso avançadas do cofre de chaves.

Também pode, se quiser, gerar ou importar uma chave de encriptação de chave (KEK).

Instalar ferramentas e ligar ao Azure

Os passos neste artigo podem ser concluídos com a CLI do Azure, o módulo Azure PowerShell Az ou o portal do Azure.

Criar um grupo de recursos

Se já tiver um grupo de recursos, pode avançar para Criar um cofre de chaves.

Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos.

Crie um grupo de recursos com o comando az group create CLI do Azure, o comando New-AzResourceGroup Azure PowerShell ou a partir do portal do Azure.

CLI do Azure

az group create --name "myResourceGroup" --location eastus

Azure PowerShell

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Criar um cofre de chaves

Se já tiver um cofre de chaves, pode avançar para Definir políticas de acesso avançadas do cofre de chaves.

Crie um cofre de chaves com o comando az keyvault create CLI do Azure, o comando New-AzKeyvault Azure PowerShell, o portal do Azure ou um modelo de Resource Manager.

Aviso

Para garantir que os segredos de encriptação não ultrapassam os limites regionais, tem de criar e utilizar um cofre de chaves que esteja na mesma região e inquilino que as VMs a encriptar.

Cada Key Vault tem de ter um nome exclusivo. Substitua <o seu nome-keyvault-unique> pelo nome do cofre de chaves nos exemplos seguintes.

CLI do Azure

Ao criar um cofre de chaves com a CLI do Azure, adicione o sinalizador "--enabled-for-disk-encryption".

az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption

Azure PowerShell

Ao criar um cofre de chaves com Azure PowerShell, adicione o sinalizador "-EnabledForDiskEncryption".

New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "eastus" -EnabledForDiskEncryption

Modelo do Resource Manager

Também pode criar um cofre de chaves com o modelo Resource Manager.

  1. No Modelo de Início Rápido do Azure, clique em Implementar no Azure.
  2. Selecione a subscrição, grupo de recursos, localização do grupo de recursos, Key Vault nome, ID do Objeto, termos legais e contrato e, em seguida, clique em Comprar.

Definir as políticas avançadas de acesso do cofre de chaves

Importante

Os cofres de chaves recém-criados têm a eliminação recuperável ativada por predefinição. Se estiver a utilizar um cofre de chaves pré-existente, tem de ativar a eliminação recuperável. Veja Descrição geral da eliminação recuperável do Azure Key Vault.

A plataforma do Azure precisa de acesso às chaves de encriptação ou aos segredos no cofre de chaves para as disponibilizar à VM para arrancar e desencriptar os volumes.

Se não tiver ativado o cofre de chaves para a encriptação do disco, implementação ou implementação de modelos no momento da criação (conforme demonstrado no passo anterior), tem de atualizar as políticas de acesso avançadas.

CLI do Azure

Utilize az keyvault update para ativar a encriptação de disco para o cofre de chaves.

  • Ative Key Vault para encriptação de disco: é necessária a encriptação ativada para o disco.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-disk-encryption "true"
    
  • Ative Key Vault para implementação, se necessário: permite que o fornecedor de recursos Microsoft.Compute obtenha segredos deste cofre de chaves quando este cofre de chaves é referenciado na criação de recursos, por exemplo, ao criar uma máquina virtual.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-deployment "true"
    
  • Ative Key Vault para implementação de modelos, se necessário: Permitir que Resource Manager obtenha segredos do cofre.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-template-deployment "true"
    

Azure PowerShell

Utilize o cmdlet do PowerShell do cofre de chaves Set-AzKeyVaultAccessPolicy para ativar a encriptação do disco para o cofre de chaves.

  • Ative Key Vault para encriptação de disco: EnabledForDiskEncryption é necessário para a encriptação do Disco do Azure.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDiskEncryption
    
  • Ative Key Vault para implementação, se necessário: permite que o fornecedor de recursos Microsoft.Compute obtenha segredos deste cofre de chaves quando este cofre de chaves é referenciado na criação de recursos, por exemplo, ao criar uma máquina virtual.

     Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDeployment
    
  • Ative Key Vault para implementação de modelos, se necessário: permite que o Azure Resource Manager obtenha segredos deste cofre de chaves quando este cofre de chaves é referenciado numa implementação de modelo.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForTemplateDeployment
    

Portal do Azure

  1. Selecione o cofre de chaves e aceda a Políticas de Acesso.

  2. Em "Ativar Acesso a", selecione a caixa com o nome Azure Disk Encryption para encriptação de volume.

  3. Selecione Azure Máquinas Virtuais para implementação e/ou Resource Manager do Azure para implementação de modelos, se necessário.

  4. Clique em Guardar.

    Políticas de acesso avançadas do cofre de chaves do Azure

Azure Disk Encryption e rotação automática

Embora o Azure Key Vault agora tenha rotação automática de chaves, não é atualmente compatível com o Azure Disk Encryption. Especificamente, o Azure Disk Encryption continuará a utilizar a chave de encriptação original, mesmo depois de ter sido rodada automaticamente.

Rodar uma chave de encriptação não irá interromper o Azure Disk Encryption, mas desativar a chave de encriptação "antiga" (por outras palavras, a chave Azure Disk Encryption ainda está a utilizar) irá.

Configurar uma chave de encriptação de chaves (KEK)

Importante

A conta em execução para ativar a encriptação do disco através do cofre de chaves tem de ter permissões de "leitor".

Se quiser utilizar uma chave de encriptação de chaves (KEK) para uma camada adicional de segurança para chaves de encriptação, adicione um KEK ao cofre de chaves. Quando uma chave de encriptação de chave é especificada, o Azure Disk Encryption utiliza essa chave para moldar os segredos de encriptação antes de escrever no Key Vault.

Pode gerar um novo KEK com o comando da CLI az keyvault key create do Azure, o cmdlet Azure PowerShell Add-AzKeyVaultKey ou o portal do Azure. Tem de gerar um tipo de chave RSA; Atualmente, o Azure Disk Encryption não suporta a utilização de teclas curvas elípticas.

Em vez disso, pode importar um KEK a partir do HSM de gestão de chaves no local. Para obter mais informações, veja Documentação do Key Vault.

Os URLs KEK do cofre de chaves têm de ter uma versão. O Azure impõe esta restrição de controlo de versões. Para obter um segredo válido e URLs KEK, veja os seguintes exemplos:

CLI do Azure

Utilize o comando da CLI az keyvault key create do Azure para gerar um novo KEK e armazená-lo no seu cofre de chaves.

az keyvault key create --name "myKEK" --vault-name "<your-unique-keyvault-name>" --kty RSA --size 4096

Em vez disso, pode importar uma chave privada com o comando de importação da chave az keyvault da CLI do Azure:

Em ambos os casos, fornece o nome da kek à CLI az vm encryption enable do Azure --key-encryption-key-key parameter.

az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" --key-encryption-key "myKEK"

Azure PowerShell

Utilize o cmdlet Add-AzKeyVaultKey Azure PowerShell para gerar um novo KEK e armazená-lo no cofre de chaves.

Add-AzKeyVaultKey -Name "myKEK" -VaultName "<your-unique-keyvault-name>" -Destination "HSM" -Size 4096

Em vez disso, pode importar uma chave privada com o comando Azure PowerShellaz keyvault key import.

Em ambos os casos, irá fornecer o ID do cofre de chaves KEK e o URL do KEK para Azure PowerShell os parâmetros Set-AzVMDiskEncryptionExtension -KeyEncryptionKeyVaultId e -KeyEncryptionKeyUrl. Este exemplo pressupõe que está a utilizar o mesmo cofre de chaves para a chave de encriptação de disco e para o KEK.

$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup"
$KEK = Get-AzKeyVaultKey -VaultName "<your-unique-keyvault-name>" -Name "myKEK"

Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyUrl $KEK.Id -SkipVmBackup -VolumeType All

Passos seguintes