Importando chaves raiz

É possível usar IBM Cloud® Hyper Protect Crypto Services para proteger suas chaves raiz existentes usando a UI ou programaticamente com a API do serviço de gerenciamento de chave Hyper Protect Crypto Services.

Chaves raiz são chaves simétricas de quebra de chaves usadas para proteger a segurança dos dados criptografados na nuvem. Para obter mais informações sobre a importação de chaves raiz, consulte Trazendo duas chaves de criptografia para a nuvem.

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.

Importando chaves raiz com a IU

Depois de criar uma instância do serviço, conclua as etapas a seguir para incluir sua chave raiz existente com a GUI do Hyper Protect Crypto Services.

  1. Efetue login na IU.

  2. Acesse Menu > Lista de recursos para visualizar uma lista de seus recursos.

  3. Em sua lista de recursos do IBM Cloud, selecione a sua instância provisionada do Hyper Protect Crypto Services.

  4. Para importar uma chave, selecione a guia Chaves do KMS no menu lateral.

  5. Na tabela Chaves, clique em Incluir chave e selecione Importar uma chave.

    Especifique os detalhes da chave:

    Tabela 1. Descreve as configurações para importar uma chave raiz
    Configuração Descrição
    Tipo de chave O tipo de chave que você gostaria de gerenciar no Hyper Protect Crypto Services. Na lista de tipos de chaves, selecione Chave raiz.
    Nome da chave Um alias exclusivo, legível para fácil identificação de sua chave. Para proteger sua privacidade, assegure-se de que o nome da chave não contenha informações pessoalmente identificáveis (PII), como seu nome ou local.
    Alias da chave (Opcional) Um ou mais aliases exclusivos e legíveis que você deseja designar à sua chave para fácil reconhecimento. O tamanho do alias pode ser de 2 a 90 caracteres. É possível configurar até cinco aliases de chave para a chave, com cada um separado por uma vírgula.

    Nota: Cada alias deve ser alfanumérico, com distinção entre maiúsculas e minúsculas e não pode conter espaços ou caracteres especiais diferentes de traços (-) ou sublinhados (_). O alias não pode ser um UUID versão 4 e não deve ser um nome reservado Hyper Protect Crypto Services: allowed_ip, key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions.

    ID do conjunto de chaves Selecione um conjunto de chaves da lista que contém os conjuntos de chaves existentes. Se você não designar um conjunto de chaves, a chave será incluída no conjunto de chaves default. Para obter mais informações sobre conjuntos de chaves, consulte Gerenciando conjuntos de chaves.
    Material de chave

    O material de chave com codificação base64, como uma chave de quebra de chave, que você deseja armazenar e gerenciar no serviço. Para obter mais informações, consulte Codificando seu material de chave em Base64. Certifique-se de que o material chave atenda aos seguintes requisitos:

    • A chave deve ter 16, 24 ou 32 bytes de comprimento, correspondente a 128, 192, ou 256 bits.
    • A chave deve ser codificada em Base64.
    Data de expiração (Opcional) Configure a data e a hora quando a chave expira. Após a data de expiração, a chave é movida para o estado Desativado Para obter mais informações sobre o estado de chaves, consulte Monitorando o ciclo de vida de chaves de criptografia.
    Descrição (Opcional) Inclua uma descrição estendida para a sua chave. Ela deve ter de 2 a 240 caracteres de comprimento.
  6. Ao concluir o preenchimento dos detalhes da chave, clique em Importar chave para confirmar.

Importando chaves raiz com a API

Importe chaves simétricas para o Hyper Protect Crypto Services fazendo uma chamada POST para o terminal a seguir.

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys
  1. Recupere suas credenciais de serviço e autenticação para trabalhar com chaves no serviço.

  2. Chame a API do serviço de gerenciamento de chave Hyper Protect Crypto Services com o comando cURL a seguir:

    curl -X POST \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'content-type: application/vnd.ibm.kms.key+json' \
      -d '{
     "metadata": {
       "collectionType": "application/vnd.ibm.kms.key+json",
       "collectionTotal": 1
     },
     "resources": [
       {
       "type": "application/vnd.ibm.kms.key+json",
       "name": "<key_alias>",
       "description": "<key_description>",
       "expirationDate": "<YYYY-MM-DDTHH:MM:SS.SSZ>",
       "payload": "<key_material>",
       "extractable": <key_type>
       }
     ]
    }'
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

    Tabela 2. Descreve as variáveis necessárias para adicionar uma chave raiz com a API
    Variável Descrição
    region Obrigatório. A abreviação de região, como us-south ou au-syd, que representa a área geográfica na qual sua instância do Hyper Protect Crypto Services está localizada. Para obter mais informações, consulte Terminais de serviços regionais.
    port Obrigatório. O número da porta do terminal da API.
    IAM_token Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo integral do token IAM, incluindo valor Bearer, na solicitação cURL. Para obter mais informações, consulte Recuperando um token de acesso.
    instance_ID Obrigatório. O identificador exclusivo que é designado para a sua instância do Hyper Protect Crypto Services. Para obter mais informações, consulte Recuperando seu ID de instância.
    correlation_ID O identificador exclusivo que é usado para rastrear e correlacionar transações.
    key_alias Obrigatório. Um nome exclusivo legível para fácil identificação da sua chave. Para proteger a sua privacidade, não armazene os seus dados pessoais como metadados para a sua chave.
    key_description Uma descrição estendida de sua chave. Para proteger a sua privacidade, não armazene os seus dados pessoais como metadados para a sua chave.
    YYYY-MM-DD

    HH:MM:SS.SS

    A data e hora em que a chave expira no sistema, em formato RFC 3339. Se o atributo expirationDate for omitido, a chave não expirará..
    key_material

    O material de chave com codificação base64, como uma chave de quebra de chave, que você deseja armazenar e gerenciar no serviço. Para obter mais informações, consulte Codificando seu material de chave em Base64. Certifique-se de que o material chave atenda aos seguintes requisitos:

    • A chave deve ter 16, 24 ou 32 bytes de comprimento, correspondente a 128, 192, ou 256 bits.
    • A chave deve ser codificada em Base64.
    key_type Um valor booleano determina se o material de chave pode sair do serviço. Quando você configura o atributo extractable como false, o serviço designa a chave como uma chave raiz que pode ser usada para operações wrap ou unwrap

    Para proteger a confidencialidade de seus dados pessoais, evite inserir informações pessoalmente identificáveis (PII), como seu nome ou local, ao incluir chaves no serviço. Para obter mais exemplos de PIII, consulte a seção 2.2 da Publicação Especial NIST 800-122.

    Uma resposta POST api/v2/keys bem-sucedida retorna o valor de ID para a sua chave, junto com outros metadados. O ID é um identificador exclusivo que é designado à sua chave e é usado para chamadas subsequentes para a API de serviço de gerenciamento de chaves do Hyper Protect Crypto Services.

  3. Opcional: verifique se a chave foi incluída executando a chamada a seguir para procurar as chaves na instância de serviço do Hyper Protect Crypto Services.

    curl -X GET \
    https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \
    -H 'accept: application/vnd.ibm.collection+json' \
    -H 'authorization: Bearer <IAM_token>' \
    -H 'bluemix-instance: <instance_ID>'
    

Importando chaves raiz com a CLI

Conclua as etapas a seguir para importar chaves raiz usando a CLI do Key Protect, que é integrado no Hyper Protect Crypto Services:

  1. Configurar a CLI do Key Protect.

  2. Importe uma chave raiz com o seguinte comando:

    ibmcloud kp key create
    

    É possível encontrar mais parâmetros para este comando na referência da CLI do Key Protect.

Codificação Base64 de seu material de chave

Ao importar uma chave raiz existente, é necessário incluir o material de chave criptografada que você deseja armazenar e gerenciar no serviço.

Usando o OpenSSL para codificar o material de chave existente

  1. Faça download e instale OpenSSL.

  2. Codifique em Base64 a sua sequência de material de chave executando o comando a seguir:

    $ openssl base64 -in <infile> -out <outfile>
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

    Tabela 3. Descreve as variáveis necessárias para base64 codite seu material chave
    Variável Descrição
    infile O nome do arquivo onde sua cadeia de materiais chave está localizada. Certifique-se de que a chave tenha 16, 24 ou 32 bytes de comprimento, correspondendo a 128, 192 ou 256 bits.
    outfile O nome do arquivo onde seu material de chave codificado em base64 será criado quando o comando for executado.

    Se desejar exibir o material em base64 na linha de comandos diretamente em vez de em um arquivo, execute o comando openssl enc -base6<<< '<key_material_string>', em que key_material_string é a entrada do material de chave para sua chave importada.

Usando o OpenSSL para criar e codificar o novo material da chave

  1. Faça download e instale OpenSSL.

  2. Codifique em Base64 a sua sequência de material de chave executando o comando a seguir:

    $ openssl rand <byte_length> -base64
    

    Substitua a variável byte_length na solicitação de exemplo com o comprimento de sua chave, que é medida em bytes. Os comprimentos de bytes aceitáveis são 16, 24 ou 32 bytes, correspondendo a 128, 192 ou 256 bits.

O que vem a seguir