Criando uma imagem customizada criptografada

Quando você tiver uma imagem personalizada do qcow2 que atenda aos requisitos da infraestrutura do IBM Cloud® Virtual Private Cloud, poderá criptografá-la. O procedimento a seguir descreve como criptografar sua imagem personalizada com a criptografia LUKS, utilizando 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 encapsulada (ou criptografada) é armazenada com os metadados da sua imagem quando você a importa 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 senha que você utiliza 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). Ao encapsular os dados da sua senha, você os criptografa e protege, de modo que nunca precise compartilhá-la 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.

  1. Crie uma imagem criptografada usando o QEMU e uma passphrase de sua escolha para criptografar um arquivo qcow2 com a criptografia do LUKS.
  2. Faça upload do arquivo de imagem criptografado para o IBM Cloud Object Storage.
  3. Key Protect, crie uma chave raiz do cliente (CRK) e, em seguida, envolva sua senha com a CRK para gerar uma chave de criptografia de dados envolvida (WDEK).
  4. Certifique-se de que possui as autorizações necessárias IBM Cloud Identity and Access Management para que possa importar a imagem de IBM Cloud Object Storage e para que seu WDEK possa ser utilizado para criptografia de dados.
  5. Importe a imagem para o IBM Cloud VPC. É necessário especificar um local d IBM Cloud Object Storage, o CRK armazenado em Key Protect e seu texto cifrado do WDEK.

Criptografando a imagem

Nesta etapa, você usa o QEMU para definir sua própria senha 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ê cumpriu os requisitos de preparação de imagens descritos nos tópicos a seguir:

Para concluir a tarefa de criptografia, é necessário ter instalada a versão 2.12 ou posterior do QEMU.

Deve-se usar um sistema operacional Linux ou Windows para concluir as instruções de criptografia do QEMU. O sistema operacional Mac não é compatível.

Siga as etapas a seguir usando o QEMU para criar um segundo arquivo qcow2 criptografado da sua imagem personalizada.

  1. 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á encapsular a senha para criar uma chave de criptografia de dados encapsulada (WDEK). A WDEK é necessária quando você importa a imagem para o IBM Cloud VPC.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. 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
    
  7. Execute o comando info no 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 seu arquivo de imagem estiver criptografado com a criptografia LUKS e sua senha exclusiva, você poderá enviá-lo para IBM Cloud Object Storage seguindo estas etapas:

  1. Certifique-se de que seu arquivo de imagem customizada tenha um nome descritivo para que seja possível identificá-lo facilmente mais tarde.
  2. 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

IBM Cloud Hyper Protect Crypto Services estão obsoletas. Os clientes podem usar as instâncias existentes até 20 de março de 2027. Para obter mais informações, consulte “Descontinuação do IBM Cloud Hyper Protect Crypto Services ”. Para garantir proteção contínua, considere migrar suas chaves de criptografia existentes para uma instância dedicada do Key Protect. Para obter mais informações, consulte o Guia de migração.

Para importar uma imagem personalizada criptografada para o IBM Cloud VPC, você precisa do Key Protect. Também é necessária uma chave raiz do cliente (CRK) e uma chave de criptografia de dados agrupada (WDEK). O WDEK é a senha que você usou para criptografar sua imagem, protegida pelo seu CRK, de modo que apenas você tenha conhecimento dessa senha. 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:

  • Disposição Key Protect.
  • Importe uma chave raiz do cliente (CRK) para Key Protect ou crie uma em Key Protect.
  • 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).
  1. Forneça o serviço Key Protect.

    O provisionamento de uma instância do serviço “ Key Protect ” garante que ela inclua as atualizações mais recentes necessárias para a criptografia gerenciada pelo cliente.

  2. 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.

    O estado da chave raiz do cliente (CRK) afeta diretamente a disponibilidade da sua imagem criptografada. Se o CRK for suspenso, desativado ou destruído, a chave de criptografia de dados encapsulada (WDEK) não poderá ser desencapsulada, e nenhuma instância de servidor virtual que utilize a imagem criptografada poderá ser iniciada. Para obter mais informações, consulte “Estados e transições principais ”.

  3. 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.

    1. Certifique-se de que o plug-in da CLI do Key Protect esteja instalado para que você possa gerar um WDEK. Para obter mais informações, consulte Instalando o plug-in da CLI do Key Protect..

    2. 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
    
    1. Agrupe a sua passphrase codificada com a sua CRK executando o comando ibmcloud kp key wrap. Embora a senha usada para gerar a imagem criptografada não seja, tecnicamente, uma chave de criptografia de dados, essa é a terminologia que o site Key Protect utiliza para se referir aos dados durante os processos de criptografia e descriptografia. 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
    

    Onde KEY_ID é o ID da chave raiz que você deseja usar para o encapsulamento, INSTANCE_ID é o ID da instância que identifica sua instância do serviço Key Protect e PLAINTEXT é sua senha codificada. Por exemplo, YWJjMTIz.

    Para esse exemplo, você veria uma resposta semelhante à saída a seguir:

    Wrapping key...
    SUCCESS
    Ciphertext
    eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
    
    1. 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.

  1. 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.
  2. 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 Serviço de Imagens para VPC possa acessar as 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 estiver criptografada com sucesso, o Key Protect estiver configurado e você tiver criado as chaves necessárias, você 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. Certifique-se de ter concedido acesso ao 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.