Criptografar discos do sistema operacional com uma chave gerenciada pelo cliente no Red Hat OpenShift do Azure
Por padrão, os discos do sistema operacional das máquinas virtuais em um cluster do Azure Red Hat OpenShift foram criptografados com chaves geradas automaticamente gerenciadas pelo Microsoft Azure. Para segurança adicional, os clientes podem criptografar os discos do sistema operacional com chaves autogerenciadas ao implantar um cluster do Azure Red Hat OpenShift. Esse recurso permite mais controle criptografando dados confidenciais com chaves gerenciadas pelo cliente (CMK).
Os clusters criados com chaves gerenciadas pelo cliente têm uma classe de armazenamento padrão habilitada com suas chaves. Portanto, os discos do sistema operacional e os discos de dados são criptografados por essas chaves. As chaves gerenciadas pelo cliente são armazenadas no Cofre de Chaves do Azure.
Para obter mais informações sobre como usar o Cofre de Chaves do Azure para criar e manter chaves, consulte Criptografia do lado do servidor do Armazenamento em Disco do Azure na documentação do Microsoft Azure.
Com a criptografia baseada em host, os dados armazenados no host da VM das VMs dos nós do agente do Azure Red Hat OpenShift são criptografados em repouso e fluem criptografados para o serviço de armazenamento. A criptografia da base do host significa que os discos temporários são criptografados em repouso com chaves gerenciadas pela plataforma.
O cache do sistema operacional e dos discos de dados é criptografado em repouso com chaves gerenciadas pela plataforma ou chaves gerenciadas pelo cliente, dependendo do tipo de criptografia definido nesses discos. Por padrão, ao usar o Azure Red Hat OpenShift, os discos do sistema operacional e de dados são criptografados em repouso com chaves gerenciadas pela plataforma, o que significa que os caches desses discos também são, por padrão, criptografados em repouso com chaves gerenciadas pela plataforma.
Você pode especificar suas próprias chaves gerenciadas seguindo as etapas de criptografia abaixo. O cache desses discos também será criptografado usando a chave especificada nesta etapa.
Limitação
É responsabilidade dos clientes manter o Cofre da Chave e o Conjunto de Criptografia de Disco no Azure. A falha na manutenção das chaves resultará em clusters do Azure Red Hat OpenShift quebrados. As VMs deixarão de funcionar e, como resultado, todo o cluster do Azure Red Hat OpenShift deixará de funcionar.
A equipe do Azure Red Hat OpenShift Engineering não pode acessar as chaves. Portanto, eles não podem fazer backup, replicar ou recuperar as chaves.
Para obter detalhes sobre como usar os Conjuntos de Criptografia de Disco para gerenciar suas chaves de criptografia, consulte Criptografia do lado do servidor do Armazenamento em Disco do Azure na documentação do Microsoft Azure.
Pré-requisitos
Verifique suas permissões. Você deve ter permissões de Colaborador e Administrador de Acesso de Usuário ou permissões de Proprietário.
Se você tiver várias assinaturas do Azure, registre os provedores de recursos. Para obter detalhes de registro, consulte Registrar os provedores de recursos.
Você precisará ter o recurso EncryptionAtHost ativado em sua assinatura. Você pode habilitá-lo executando:
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
Você pode verificar o status atual do recurso executando:
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Criar uma rede virtual contendo duas sub-redes vazias
Crie uma rede virtual contendo duas sub-redes vazias. Se você tiver uma rede virtual existente que atenda às suas necessidades, poderá ignorar esta etapa. Para rever o procedimento de criação de uma rede virtual, consulte Criar uma rede virtual contendo duas sub-redes vazias.
Criar uma instância do Azure Key Vault
Você deve usar uma instância do Azure Key Vault para armazenar suas chaves. Crie um novo Cofre da Chave com a proteção contra limpeza ativada. Em seguida, crie uma nova chave no Cofre da Chave para armazenar sua própria chave personalizada.
- Defina mais permissões de ambiente:
export KEYVAULT_NAME=$USER-enckv export KEYVAULT_KEY_NAME=$USER-key export DISK_ENCRYPTION_SET_NAME=$USER-des
- Crie um Cofre de Chaves e uma chave no Cofre de Chaves:
az keyvault create -n $KEYVAULT_NAME \ -g $RESOURCEGROUP \ -l $LOCATION \ --enable-purge-protection true az keyvault key create --vault-name $KEYVAULT_NAME \ -n $KEYVAULT_KEY_NAME \ --protection software KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv) KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --query "[key.kid]" -o tsv)
Criar um conjunto de criptografia de disco do Azure
O Conjunto de Criptografia de Disco do Azure é usado como o ponto de referência para discos em clusters do Azure Red Hat OpenShift. Ele está conectado ao Cofre de Chaves do Azure que você criou na etapa anterior e extrai as chaves gerenciadas pelo cliente desse local.
az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME \
-l $LOCATION \
-g $RESOURCEGROUP \
--source-vault $KEYVAULT_ID \
--key-url $KEYVAULT_KEY_URL
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCEGROUP --query 'id' -o tsv)
DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME \
-g $RESOURCEGROUP \
--query "[identity.principalId]" \
-o tsv)
Conceder permissões para o Conjunto de Criptografia de Disco acessar o Cofre da Chave
Use o Conjunto de Criptografia de Disco que você criou na etapa anterior e conceda permissão para o Conjunto de Criptografia de Disco acessar e usar o Cofre de Chaves do Azure.
az keyvault set-policy -n $KEYVAULT_NAME \
-g $RESOURCEGROUP \
--object-id $DES_IDENTITY \
--key-permissions wrapkey unwrapkey get
Criar um cluster do Azure Red Hat OpenShift
Crie um cluster do Azure Red Hat OpenShift para usar as chaves gerenciadas pelo cliente.
Nota
Habilitar a CMK em clusters ARO existentes só é possível para nós de trabalho, não para nós mestres. Você pode conseguir isso usando machine-API através de machineset CRs. Consulte Habilitando chaves de criptografia gerenciadas pelo cliente para um conjunto de máquinas e Modificando um conjunto de máquinas de computação para obter mais informações.
az aro create --resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Depois de criar o cluster do Azure Red Hat OpenShift, todas as VMs são criptografadas com as chaves de criptografia gerenciadas pelo cliente.
Para verificar se você configurou as chaves corretamente, execute os seguintes comandos:
- Obtenha o nome do Grupo de Recursos de cluster onde as VMs de cluster, discos e assim por diante estão localizados:
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
- Verifique se os discos têm o conjunto de criptografia de disco correto anexado:
O campoaz disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
diskEncryptionSetId
na saída deve apontar para o Conjunto de Criptografia de Disco especificado ao criar o cluster do Azure Red Hat OpenShift.