Criando uma imagem customizada criptografada
Quando você tiver uma imagem personalizada qcow2 que atenda aos requisitos da infraestrutura IBM Cloud® Virtual Private Cloud, poderá criptografá-la. O procedimento a seguir descreve como criptografar sua imagem personalizada com a criptografia LUKS usando o QEMU e sua própria senha exclusiva. Depois de criptografar a imagem, você enrola o passphrase com a chave raiz do seu cliente (CRK). A chave de criptografia de dados enrolados (ou criptografados) é armazenada com seus metadados de imagem ao importá-lo para IBM Cloud VPC.
Uma maneira rápida de criar uma imagem customizada criptografada é usando imagem a partir de volume. Você pode usar este recurso para criar uma imagem customizada a partir do volume de inicialização de uma instância e especificar a criptografia gerenciada pelo cliente. Para obter mais informações, consulte Sobre como criar uma imagem por meio de um volume.
Você não pode usar uma imagem customizada criptografada em um catálogo privado ou em um servidor bare metal.
Para obter mais informações, consulte Introdução às chaves SSH
Como as imagens customizadas criptografadas funcionam
Depois de criptografar uma imagem customizada com sua própria passphrase, você faz upload dela para o IBM Cloud Object Storage. Antes de importar a imagem criptografada para o IBM Cloud VPC, é necessário configurar um serviço de gerenciamento de chave (KMS) e criar uma chave raiz do cliente (CRK). Em seguida, use seu CRK para proteger a frase secreta que você usa para criptografar sua imagem. Ao agrupar a sua passphrase secreta com a sua CRK, você cria o que o KMS se refere como uma chave de criptografia de dados agrupada (WDEK). O empacotamento dos dados da frase secreta os criptografa e os protege para que você nunca precise compartilhar a frase secreta em texto simples.
Ao importar a imagem, deve-se especificar o nome do recurso em nuvem (CRN) para a chave raiz do cliente (CRK) armazenada no KMS. Também se deve especificar o texto cifrado para a chave de criptografia de dados agrupada (WDEK). O passphrase é armazenado criptografado no WDEK sempre. Ela é desagrupada apenas quando um servidor virtual que usa a imagem criptografada é iniciado.
Quando você estiver pronto para provisionar um servidor virtual com a imagem criptografada, as informações de criptografia não serão necessárias A WDEK e o CRN da CRK são armazenados como metadados com a imagem. Para obter mais informações, consulte Sobre imagens customizadas criptografadas.
Visão geral do processo de imagem criptografada
As etapas a seguir resumem o processo de alto nível que precisa ser concluído a fim de criar e importar com sucesso uma imagem criptografada. As seções subsequentes fornecem detalhes sobre como concluir as etapas.
- Crie uma imagem criptografada usando o QEMU e uma passphrase de sua escolha para criptografar um arquivo qcow2 com a criptografia do LUKS.
- Faça upload do arquivo de imagem criptografado para o IBM Cloud Object Storage.
- Provisione um serviço de gerenciamento de chaves, crie uma chave raiz do cliente (CRK) e, em seguida, agrupe a sua passphrase com a CRK para gerar uma chave de criptografia de dados agrupada (WDEK).
- Assegure-se de ter as autorizações necessárias do IBM Cloud Identity and Access Management para que seja possível importar a imagem do IBM Cloud Object Storage e para que a sua WDEK possa ser usada para a criptografia de dados.
- Importe a imagem para o IBM Cloud VPC. Deve-se especificar a localização do IBM Cloud Object Storage, a CRK que está armazenada no KMS e o texto cifrado da WDEK.
Criptografando a imagem
Nesta etapa, você usa o QEMU para especificar sua própria frase secreta e criptografar sua imagem personalizada com a criptografia LUKS.
A imagem customizada que você planeja criptografar deve atender aos requisitos de imagem customizada para a infraestrutura do IBM Cloud VPC. Confirme se você concluiu os requisitos de preparação da imagem nos tópicos a seguir:
- Introdução a imagens customizadas
- Criando uma imagem customizada do Linux
- Criando uma imagem customizada do Windows
Para concluir a tarefa de criptografia, você deve ter o QEMU versão 2.12 ou posterior instalado.
Deve-se usar um sistema operacional Linux ou Windows para concluir as instruções de criptografia do QEMU. O sistema operacional Mac não é suportado.
Conclua as etapas a seguir usando o QEMU para criar um segundo arquivo qcow2 criptografado de sua imagem personalizada.
-
Determine a sua própria passphrase a ser usada para criptografar sua imagem. Os comandos de amostra nessa tarefa usam a passphrase
abc123
. Mantenha sua passfrase disponível. Posteriormente, você precisará envolver a frase secreta para criar uma chave de criptografia de dados envolvida (WDEK). A WDEK é necessária quando você importa a imagem para o IBM Cloud VPC. -
Verifique a sua imagem customizada qcow2 atual usando o comando a seguir:
qemu-img info my_100G_custom_image.qcow2
Para esse exemplo, você veria uma resposta semelhante à saída a seguir:
image: my_100G_custom_image.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.28 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
-
Crie um novo arquivo qcow2 vazio exatamente com o mesmo tamanho e criptografe-o com a criptografia do LUKS. Use a passphrase que você escolher, por exemplo,
abc123
, para criptografar o arquivo:qemu-img create --object secret,id=sec0,data=abc123 -f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 my_100G_custom_image-encrypted.qcow2 100G
-
Converta sua imagem qcow2,
my_100G_custom_image.qcow2
, para a imagem criptografada,my_100G_custom_image-encrypted.qcow2
.qemu-img convert --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 --target-image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -n -p
-
Compare os dois arquivos para verificar se eles são idênticos.
qemu-img compare --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -p
-
Verifique o arquivo em busca de erros.
qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2
Para esse exemplo, você veria uma resposta semelhante à saída a seguir:
No errors were found on the image. 16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 1074790400
-
Execute
info
em seu novo arquivo criptografado para verificar se ele tem o tamanho e o nível de criptografia esperados.qemu-img info my_100G_custom_image-encrypted.qcow2
Para esse exemplo, você veria uma resposta semelhante à saída a seguir:
image: my_100G_custom_image-encrypted.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.27 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
Faça upload da imagem criptografada para o IBM Cloud Object Storage
Quando o arquivo de imagem estiver criptografado com a criptografia LUKS e sua frase secreta exclusiva, você poderá carregá-lo em IBM Cloud Object Storage concluindo as etapas a seguir:
- Certifique-se de que seu arquivo de imagem customizada tenha um nome descritivo para que seja possível identificá-lo facilmente mais tarde.
- Na página Objetos de seu depósito do IBM Cloud Object Storage, clique em Fazer upload. É possível usar o plug-in de transferência em alta velocidade do Aspera para fazer upload de imagens maiores que 200 MB.
Configurando seu serviço de gerenciamento de chaves e chaves
Para importar uma imagem personalizada criptografada para IBM Cloud VPC, você precisa de um serviço de gerenciamento de chaves provisionado. Também é necessária uma chave raiz do cliente (CRK) e uma chave de criptografia de dados agrupada (WDEK). A WDEK é a passphrase que você usou para criptografar sua imagem agrupada com sua CRK a fim de manter sua passphrase conhecida apenas por você. A WDEK é usada para acessar a imagem criptografada quando uma instância de servidor virtual que usa a imagem criptografada é iniciada.
A lista a seguir é um resumo dos principais pré-requisitos de gerenciamento:
- Fornecer um serviço de gerenciamento de chaves suportado, seja Key Protect ou Hyper Protect Crypto Services.
- Importe uma chave raiz do cliente (CRK) para o serviço de gerenciamento de chaves ou crie uma no serviço de gerenciamento de chaves.
- Agrupe (proteja) a passphrase que você usou para criptografar sua imagem com sua chave raiz do cliente para criar uma chave de criptografia de dados agrupada (WDEK).
As etapas de exemplo a seguir são específicas para o Key Protect, mas ofluxo geral também é aplicável ao Hyper Protect Crypto Services. Se você estiver usando o Hyper Protect Crypto Services, consulte as Informações do Hyper Protect Crypto Services para obter instruções correspondentes.
-
Forneça o serviço Key Protect.
O provisionamento de uma nova instância do serviço Key Protect garante que ela inclua as atualizações mais recentes necessárias para a criptografia gerenciada pelo cliente.
-
Crie ou importe uma chave raiz do cliente (CRK) em IBM Key Protect.
Planeje antecipadamente a importação de chaves revisando suas opções de criação e criptografia do material de chave. Para maior segurança, é possível ativar a importação segura do material de chave usando um token de importação para criptografar seu material de chave antes de trazê-lo para a nuvem.
-
Use a chave raiz do cliente (CRK) para agrupar, ou proteger, a passphrase exclusiva que você usou para criptografar sua imagem com a criptografia do LUKS. No exemplo de criptografia de imagem, nós usamos a passphrase
abc123
.-
Certifique-se de que o plug-in Key Protect CLI esteja instalado para que você possa gerar um WDEK. Para obter mais informações, consulte Instalando o plug-in da CLI do Key Protect..
-
Codifique sua passphrase com a codificação Base64 para prepará-la para o agrupamento com a sua CRK. Execute o comando a seguir, substituindo a sua passphrase por
abc123
. O parâmetro -n é necessário para que você não codifique um caractere de nova linha, o que faz com que a passphrase agrupada não funcione.echo -n "abc123"|base64
Para esse exemplo, você veria uma resposta semelhante à saída a seguir:
YWJjMTIz
-
Agrupe a sua passphrase codificada com a sua CRK executando o comando
ibmcloud kp key wrap
. Embora a frase secreta usada para gerar a imagem criptografada não seja tecnicamente uma chave de criptografia de dados, essa é a terminologia que Key Protect usa para dados em wraps e unwraps. Os dados que são retornados do Key Protect são referidos como WDEK. Para obter mais informações, consulte kp key wrap.ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXT
Em que KEY_ID é a ID da chave raiz que você deseja usar para o wrapping, INSTANCE_ID é a ID da instância que identifica a instância do serviço Key Protect e PLAINTEXT é a sua frase secreta codificada. Por exemplo, YWJjMTIz.
Para esse exemplo, você veria uma resposta semelhante à saída a seguir:
Wrapping key... SUCCESS Ciphertext eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
-
Salve, ou persista no armazenamento, o texto cifrado para a WDEK. Deve-se especificar o texto cifrado da WDEK ao importar a imagem criptografada para o IBM Cloud VPC.
-
Pré-requisitos de autorização do IAM
Certise-se de que você criou as autorizações necessárias em IBM Cloud Identity and Access Management.
- No IBM Cloud Identity and Access Management (IAM), crie uma autorização entre o Cloud Block Storage (serviço de origem) e seu serviço de gerenciamento de chaves (serviço de destino). A autorização permite que os serviços do painel traseiro do IBM Cloud usem seu WDEK para criptografia de dados.
- Certise-se de que você criou uma autorização do IAM entre o Image Service for VPC e IBM Cloud Object Storage. Especifique Serviços de infraestrutura como o serviço de origem. Especifique Image Service for VPC como o tipo de recurso. Especificar IBM Cloud Object Storage como o serviço de destino. A autorização serve para que o Image Service for VPC possa acessar imagens em IBM Cloud Object Storage. Para obter mais informações, consulte Concedendo acesso ao IBM Cloud Object Storage para importar imagens.
Próximas etapas
Quando sua imagem for criptografada com êxito, seu KMS estiver configurado e você tiver criado as chaves necessárias, poderá importar a imagem para IBM Cloud VPC. Quando a imagem estiver disponível em IBM Cloud VPC, será possível usá-la para provisionar instâncias. Certise-se de ter acesso Granted to IBM Cloud Object Storage para importar imagens.
Quando você estiver pronto para provisionar uma nova instância de servidor virtual com a imagem criptografada, não será necessária nenhuma informação de criptografia. A chave de criptografia de dados agrupada (WDEK) e o CRN da chave raiz do cliente (CRK) serão armazenados como metadados com a imagem.