Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Quando você habilita a criptografia no host, os dados armazenados no host da VM são criptografados em repouso e fluem criptografados para o serviço de armazenamento. Para obter informações conceituais sobre criptografia no host e outros tipos de criptografia de disco gerenciado, consulte Criptografia no host - Criptografia de ponta a ponta para seus dados de VM.
Restrições
- Não pode ser habilitado em máquinas virtuais (VMs) ou conjuntos de dimensionamento de máquinas virtuais que atualmente ou já tiveram a Criptografia de Disco do Azure habilitada.
- A Criptografia de Disco do Azure não pode ser habilitada em discos com criptografia no host habilitada.
- A criptografia pode ser habilitada em conjuntos de escala de máquina virtual existentes. No entanto, apenas as novas VMs criadas após a ativação da criptografia são automaticamente criptografadas.
- As VMs existentes devem ser desalocadas e realocadas para serem criptografadas.
As seguintes restrições aplicam-se apenas aos Ultra Disks e Premium SSD v2:
- Os discos que usam um tamanho de setor 512e precisam ter sido criados após 13/05/2023.
- Se o disco tiver sido criado antes dessa data, crie um snapshot do disco e crie um novo disco usando o snapshot.
Tamanhos de VM suportados
A lista completa de tamanhos de VM suportados pode ser extraída programaticamente. Para saber como recuperá-los programaticamente, consulte a seção Localizando tamanhos de VM suportados . A atualização do tamanho da VM resulta na validação para verificar se o novo tamanho da VM suporta o recurso EncryptionAtHost.
Pré-requisitos
Você deve habilitar o recurso para sua assinatura antes de usar a propriedade EncryptionAtHost para sua VM/VMSS. Use as seguintes etapas para habilitar o recurso para sua assinatura:
- Execute o seguinte comando para registrar o recurso para sua assinatura
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Verifique se o estado de registro é Registrado (leva alguns minutos) usando o comando abaixo antes de experimentar o recurso.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Criar recursos
Observação
Esta seção só se aplica a configurações com chaves gerenciadas pelo cliente. Se estiver a utilizar chaves geridas pela plataforma, pode saltar para a secção Scripts de exemplo .
Depois que o recurso estiver habilitado, você precisará configurar um DiskEncryptionSet e um Azure Key Vault ou um Azure Key Vault Managed HSM.
Azure Key Vault
- Instale a versão mais recente da Azure CLI e inicie sessão numa conta do Azure com az login.
- Crie um Cofre de Chaves do Azure e uma chave de criptografia.
Ao criar o Cofre de Chaves, deve habilitar a proteção contra eliminação. A proteção contra eliminação garante que uma chave eliminada não possa ser eliminada de forma permanente até que o período de retenção expire. Estas definições protegem-no contra a perda de dados devido à eliminação acidental. Essas configurações são obrigatórias ao usar um Cofre de Chaves para criptografar discos gerenciados.
Importante
Não uses camel case para a região; se o fizeres, podes ter problemas ao atribuir discos adicionais ao recurso no portal do Azure.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Crie um conjunto de encriptação de disco. Você pode definir enable-auto-key-rotation como true para habilitar a rotação automática da chave. Quando você habilita a rotação automática, o sistema atualiza automaticamente todos os discos gerenciados, instantâneos e imagens que fazem referência ao conjunto de criptografia de disco para usar a nova versão da chave em uma hora.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Conceda ao recurso DiskEncryptionSet acesso ao cofre de chaves.
Observação
Pode levar alguns minutos para o Azure criar a identidade do seu DiskEncryptionSet em sua ID do Microsoft Entra. Se você receber um erro como "Não é possível localizar o objeto do Ative Directory" ao executar o seguinte comando, aguarde alguns minutos e tente novamente.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
HSM Gerido pelo Azure Key Vault
Como alternativa, você pode usar um HSM gerenciado para manipular suas chaves.
Para fazer isso, você deve preencher os seguintes pré-requisitos:
- Instale a CLI do Azure mais recente e inicie sessão numa conta do Azure com az login.
- Crie e configure um HSM gerenciado.
- Atribua permissões a um utilizador, para que possa gerir o seu HSM Gerido.
Configuração
Depois de criar um HSM gerenciado e adicionar permissões, habilite a proteção contra limpeza e crie uma chave de criptografia.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Em seguida, crie um DiskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Por fim, conceda ao DiskEncryptionSet acesso ao HSM gerenciado.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Scripts de exemplo
Crie uma VM com criptografia no host habilitada com chaves gerenciadas pelo cliente
Crie uma VM com discos gerenciados usando o URI de recurso do DiskEncryptionSet criado anteriormente para criptografar o cache do sistema operacional e discos de dados com chaves gerenciadas pelo cliente. Os discos temporários são criptografados com chaves gerenciadas pela plataforma.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Criar uma VM com criptografia no host habilitada com chaves gerenciadas pela plataforma
Crie uma VM com criptografia no host habilitada para criptografar o cache de discos de SO/dados e discos temporários com chaves gerenciadas pela plataforma.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
Atualizar uma VM para habilitar a criptografia no host
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Verificar o status da criptografia no host para uma VM
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Atualizar uma VM para desativar a criptografia no host
Você deve desalocar sua VM antes de poder desabilitar a criptografia no host.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Criar um conjunto de dimensionamento de máquina virtual com criptografia no host habilitada com chaves gerenciadas pelo cliente
Crie um Conjunto de Dimensionamento de Máquina Virtual com discos gerenciados usando o URI de recurso do DiskEncryptionSet criado anteriormente para criptografar o cache do sistema operacional e discos de dados com chaves gerenciadas pelo cliente. Os discos temporários são criptografados com chaves gerenciadas pela plataforma.
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Criar um conjunto de dimensionamento de máquina virtual com criptografia no host habilitada com chaves gerenciadas pela plataforma
Crie um Conjunto de Dimensionamento de Máquina Virtual com criptografia no host habilitada para criptografar cache de discos de SO/dados e discos temporários com chaves gerenciadas pela plataforma.
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
Atualizar um Conjunto de Escalonamento de Máquinas Virtuais para ativar a criptografia no host
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Verificar o estado da criptografia no anfitrião para um conjunto de escalonamento de máquinas virtuais
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Atualizar um Conjunto de Dimensionamento de Máquina Virtual para desabilitar a criptografia no host
Você pode desabilitar a criptografia no host em seu Conjunto de Dimensionamento de Máquina Virtual, mas isso só afetará as VMs criadas depois que você desabilitar a criptografia no host. Para VMs existentes, você deve desalocar a VM, desabilitar a criptografia no host nessa VM individual e, em seguida, realocar a VM.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Localizando tamanhos de VM suportados
Não há suporte para tamanhos de VM herdados. Você pode encontrar a lista de tamanhos suportados de Máquina Virtual (VM) usando as APIs de SKU de recurso ou a CLI do Azure.
Ao chamar a API Resource Skus, verifique se a EncryptionAtHostSupported
capacidade está definida como True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUS"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
Para a CLI do Azure, use o comando az vm image list-skus .
location=centralus
az vm list-skus --location $location --all \
--resource-type virtualMachines \
--query "[?capabilities[?name=='EncryptionAtHostSupported' && value=='True']].{VMName:name, EncryptionAtHost:capabilities[?name=='EncryptionAtHostSupported'].value | [0]}" \
--output table
Próximos passos
Agora que você criou e configurou esses recursos, pode usá-los para proteger seus discos gerenciados. O link a seguir contém scripts de exemplo, cada um com um respetivo cenário, que você pode usar para proteger seus discos gerenciados.