Migre para o Innovate Summit:
Saiba como a migração e a modernização para o Azure podem aumentar o desempenho, a resiliência e a segurança da sua empresa, permitindo que você adote totalmente a IA.Registrar agora
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Exemplos de scripts do Azure Disk Encryption para VMs do Linux
Artigo
Cuidado
Este artigo faz referência ao CentOS, uma distribuição Linux que está em status de fim do serviço (EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Este artigo fornece scripts de exemplo para a preparação de VHDs e outras tarefas previamente criptografados.
Observação
Todos os scripts se referem à versão mais recente e não AAD do ADE, exceto quando indicado.
Exemplos de scripts do PowerShell para Azure Disk Encryption
Listar todas as VMs criptografadas na assinatura
Você pode encontrar todas as VMs com criptografia de ADE e a versão de extensão, em todos os grupos de recursos presentes em uma assinatura, usando este script do PowerShell.
Como alternativa, esses cmdlets mostrarão todas as VMs criptografadas de ADE (mas não a versão de extensão):
Listar todas as instâncias de VMSS criptografadas na assinatura
Você pode encontrar todas as instâncias de VMSS criptografadas por ADE e a versão de extensão, em todos os grupos de recursos presentes em uma assinatura, usando este script do PowerShell.
Listar todos os segredos de criptografia de disco usados para criptografar VMs em um cofre de chaves
Usando o script do PowerShell de pré-requisitos do Azure Disk Encryption
Se você já estiver familiarizado com os pré-requisitos do Azure Disk Encryption, use o script do PowerShell de pré-requisitos do Azure Disk Encryption. Para obter um exemplo de como usar esse script do PowerShell, confira o Guia de início rápido para criptografar uma VM. Você pode remover os comentários de uma seção do script, começando na linha 211, para criptografar todos os discos de VMs existentes em um grupo de recursos existente.
A tabela a seguir mostra quais parâmetros podem ser usados no script do PowerShell:
Parâmetro
Descrição
Obrigatório?
$resourceGroupName
Nome do grupo de recursos ao qual o KeyVault pertence. Um grupo de recursos com esse nome será criado caso ele ainda não exista.
True
$keyVaultName
Nome do KeyVault no qual as chaves de criptografia devem ser colocadas. Um cofre com esse nome será criado caso ele ainda não exista.
True
$location
Local do KeyVault. Verifique se o KeyVault e as VMs a serem criptografadas estão no mesmo local. Obtenha uma lista de locais com Get-AzLocation.
True
$subscriptionId
Identificador da assinatura do Azure a ser usada. Você pode obter sua ID de assinatura com Get-AzSubscription.
True
$aadAppName
O nome do aplicativo do Microsoft Entra que será usado para gravar segredos no KeyVault. Será criado um novo aplicativo com esse nome caso ele não exista. Se esse aplicativo já existir, passe o parâmetro aadClientSecret para o script.
Falso
$aadClientSecret
Segredo do cliente do aplicativo do Microsoft Entra que foi criado anteriormente.
Falso
$keyEncryptionKeyName
Nome da chave de criptografia da chave opcional no KeyVault. Uma chave com esse nome será criada caso ela ainda não exista.
Falso
Criptografar ou descriptografar VMs sem um aplicativo do Microsoft Entra
Depois de desabilitar o SELinux, reinicialize a VM pelo menos uma vez.
Etapas
Crie uma VM usando uma das distribuições especificadas anteriormente.
Configure a VM de acordo com suas necessidades. Se você for criptografar todas as unidades (sistema operacional + dados), as unidades de dados precisarão ser especificadas e montadas em /etc/fstab.
Observação
Use UUID=... para especificar unidades de dados em/etc/fstab em vez de especificar o nome do dispositivo de blocos (por exemplo, /dev/sdb1). Durante a criptografia, a ordem das é alterada na VM. Se a VM se basear em uma ordem específica de dispositivos de blocos, ela não conseguirá montá-los após a criptografia.
Saia das sessões do SSH.
Para criptografar o SO, especifique volumeType como Todos ou SO ao habilitar a criptografia.
Observação
Todos os processos de espaço de usuário que não estão sendo executados como serviços systemd deverão ser encerrados com um SIGKILL. Reinicialize a VM. Ao habilitar a criptografia de disco do sistema operacional em uma VM em execução, planeje o tempo de inatividade da VM.
Periodicamente, monitore o progresso da criptografia usando as instruções da próxima seção.
Depois que Get-AzVmDiskEncryptionStatus mostrar "VMRestartPending", reinicie a VM entrando nela ou usando o portal, o PowerShell ou a CLI.
OsVolumeEncrypted : VMRestartPending
DataVolumesEncrypted : NotMounted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage : OS disk successfully encrypted, reboot the VM
OsVolumeEncrypted : EncryptionInProgress
DataVolumesEncrypted : NotMounted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage : OS disk encryption started
Depois que a VM atingir a "Criptografia de disco do sistema operacional iniciada", levará cerca de 40 a 50 minutos em uma VM com backup de armazenamento Premium.
Devido ao problema 388 no WALinuxAgent, OsVolumeEncrypted e DataVolumesEncrypted são mostrados como Unknown em algumas distribuições. Com a versão 2.1.5 WALinuxAgent e posterior, esse problema é corrigido automaticamente. Caso você veja Unknown na saída, poderá verificar o status da criptografia de disco usando o Explorador de Recursos do Azure.
É recomendado que você não entre na máquina virtual enquanto a criptografia do sistema operacional está em andamento. Copie os logs apenas quando os outros dois métodos falharem.
Preparar um VHD Linux previamente criptografado
A preparação para VHDs previamente criptografados pode variar dependendo da distribuição. Exemplos sobre a preparação do Ubuntu, openSUSE e centOS 7 estão disponíveis.
Configure a criptografia durante a instalação da distribuição, realizando as seguintes etapas:
Selecione Configurar volumes criptografados ao particionar os discos.
Crie uma unidade de inicialização separada que não deverá ser criptografada. Criptografe a unidade de inicialização.
Forneça uma senha. Essa é a senha que você enviou para o cofre de chaves.
Conclua o particionamento.
Quando você inicializar a VM e precisar fornecer uma frase secreta, use a senha que forneceu na etapa 3.
Prepare a VM para upload no Azure usando estas instruções. Não execute a última etapa (desprovisionamento da VM) ainda.
Configure a criptografia para trabalhar com o Azure, executando as seguintes etapas:
Criar um arquivo sob /usr/local/sbin/azure_crypt_key.sh, com o conteúdo no seguinte script. Preste atenção ao KeyFileName, pois esse é o nome do arquivo de frase secreta usado pelo Azure.
Bash
#!/bin/sh
MountPoint=/tmp-keydisk-mount
KeyFileName=LinuxPassPhraseFileName
echo"Trying to get the key from disks ..." >&2
mkdir -p $MountPoint
modprobe vfat >/dev/null 2>&1
modprobe ntfs >/dev/null 2>&1
sleep 2
OPENED=0
cd /sys/block
for DEV in sd*; doecho"> Trying device: $DEV ..." >&2
mount -t vfat -r /dev/${DEV}1 $MountPoint >/dev/null||
mount -t ntfs -r /dev/${DEV}1 $MountPoint >/dev/null
if [ -f $MountPoint/$KeyFileName ]; then
cat $MountPoint/$KeyFileName
umount $MountPoint 2>/dev/null
OPENED=1
breakfi
umount $MountPoint 2>/dev/null
doneif [ $OPENED -eq 0 ]; thenecho"FAILED to find suitable passphrase file ..." >&2
echo -n "Try to enter your password: " >&2
read -s -r A </dev/console
echo -n "$A"elseecho"Success loading keyfile!" >&2
fi
Altere a configuração de criptografia em /etc/crypttab. Ele deverá ser parecido com:
Carregar o segredo da VM previamente criptografada no cofre de chaves
Ao criptografar usando um aplicativo do Microsoft Entra (versão anterior), você precisa carregar o segredo da criptografia de disco obtido anteriormente, como um segredo do seu cofre de chaves. O cofre de chaves deve ter a criptografia de disco e permissões habilitadas para o seu cliente do Microsoft Entra.
Segredo de criptografia de disco não criptografado com uma KEK
Para configurar o segredo no cofre de chaves, use Set-AzKeyVaultSecret. A frase secreta é codificada como uma cadeia de caracteres base64 e carregada para o cofre de chaves. Além disso, verifique se as seguintes marcas estão definidas ao criar o segredo no cofre de chaves.
Azure PowerShell
# This is the passphrase that was provided for encryption during the distribution installation$passphrase = "contoso-password"$tags = @{"DiskEncryptionKeyEncryptionAlgorithm" = "RSA-OAEP"; "DiskEncryptionKeyFileName" = "LinuxPassPhraseFileName"}
$secretName = [guid]::NewGuid().ToString()
$secretValue = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($passphrase))
$secureSecretValue = ConvertTo-SecureString$secretValue -AsPlainText -Force$secret = Set-AzKeyVaultSecret -VaultName$KeyVaultName -Name$secretName -SecretValue$secureSecretValue -tags$tags$secretUrl = $secret.Id
Segredo de criptografia de disco criptografado com uma KEK
Antes de carregar o segredo no cofre de chaves, opcionalmente, você pode criptografá-lo usando uma chave de criptografia de chave. Use a API de encapsulamento para primeiro criptografar o segredo usando a chave de criptografia de chave. A saída dessa operação wrap é uma cadeia de caracteres de URL codificada em base64, que você pode carregar como um segredo usando o cmdlet Set-AzKeyVaultSecret.
Especificar uma URL secreta ao anexar um disco do sistema operacional
Sem usar uma KEK
Enquanto você está anexando o disco do sistema operacional, é necessário passar $secretUrl. A URL foi gerada na seção "Segredo de criptografia de disco não criptografado com uma KEK".
Ao anexar o disco do sistema operacional, passe $KeyEncryptionKey e $secretUrl. A URL foi gerada na seção "Segredo de criptografia de disco criptografado com KEK".