Girando chaves raiz manualmente

Você pode girar seu chaves raizA symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. sob demanda usandoIBM Cloud®Hyper Protect Crypto Services.

Ao girar sua chave raiz, você encurta o tempo de vida da chave e limita a quantia de informações que são protegidas por essa chave.

Para saber como a rotação de chave ajuda a atender os padrões de mercado e as melhores práticas criptográficas, consulte Rotação de chave.

Rotação de chaves raiz na IU

Se preferir girar suas chaves raiz usando uma interface gráfica, você pode usar a IU.

Depois de criar ou importar suas chaves raiz existentes para o serviço, conclua as etapas a seguir para girar uma chave:

  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. Na página Chaves KMS, use a tabela Chaves para procurar as chaves em seu serviço.

  5. Selecione a chave que deseja rodar e clique no ícone Ações Ícone de Ações para abrir uma lista de opções para a chave.

  6. No menu de opções, clique em Girar chave.

    Se você forneceu inicialmente o material chave para a chave, especifique o novo material de chave codificado base64 que deseja armazenar e gerenciar no serviço. Certifique-se de que o material da chave atenda aos seguintes requisitos:

    • Deve ser 128, 192 ou 256 bits.
    • Os bytes de dados, por exemplo, 32 bytes para 256 bits, devem ser codificados usando codificação base64.
  7. Clique em Girar chave para confirmar.

Girando chaves raiz com a API

É possível girar uma chave raiz fazendo uma chamada POST para o terminal a seguir.

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate
  1. Recuperar suas credenciais de autenticação e serviço para que funcionem com chaves no serviço.

  2. Copie o ID da chave raiz que deseja girar.

    Você pode encontrar o ID de uma chave em sua instância de serviço clicando em recuperando uma lista de suas chaves ou acessando a UI.

  3. Substitua a chave por novo material de chave executando o comando cURL a seguir.

    curl -X POST \
      'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate' \
      -H 'accept: application/vnd.ibm.kms.key_action+json' \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H "x-kms-key-ring: <key_ring_ID>" \
      -H 'content-type: application/vnd.ibm.kms.key_action+json' \
      -d '{
            "payload": "<key_material>"
          }'
    

    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 girar uma chave especificada emHyper Protect Crypto Services
    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 em que a sua instância de serviço do Hyper Protect Crypto Services reside. Para obter mais informações, consulte Terminais de serviços regionais.
    port Obrigatório. O número da porta do terminal da API.
    key_ID Obrigatório. O identificador exclusivo para a chave raiz que você deseja girar.
    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 sua instância de serviço Hyper Protect Crypto Services. Para obter mais informações, consulte Recuperando um ID da instância.
    key_ring_ID Opcional. O identificador exclusivo do conjunto de chaves ao qual a chave pertence. Se não especificado, o Hyper Protect Crypto Services procurará a chave em cada conjunto de chaves associado à instância especificada. Portanto, sugere-se especificar o ID do conjunto de chaves para uma solicitação mais otimizada.

    Nota: o ID do conjunto de chaves de chaves que são criadas sem um cabeçalho x-kms-key-ring é: default. Para obter mais informações, consulte Gerenciando conjuntos de chaves.

    key_material

    Opcional. O novo material de chave codificada em base64 que você deseja armazenar e gerenciar no serviço. Esse valor será necessário se você importar inicialmente o material de chave quando incluir a chave no serviço.

    Para girar uma chave que foi inicialmente gerada porHyper Protect Crypto Services, omita o payload atributo e passe um corpo de entidade de solicitação vazio. Para girar uma chave importada, forneça um material de chave que atenda aos seguintes requisitos:

    • A chave deve ter 128, 192 ou 256 bits.
    • Os bytes de dados, por exemplo, 32 bytes para 256 bits, devem ser codificados usando codificação base64.

    Uma solicitação de rotação bem-sucedida retorna uma resposta HTTP 204 No Content, que indica que sua chave raiz foi substituída por um novo material de chave.

  4. Opcional: verifique se a chave foi girada ao executar 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>' \
    

    Revise o valor lastRotateDate no corpo da entidade de resposta para inspecionar a data e hora em que sua chave foi girada pela última vez.

    {
      "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
      },
      "resources": [
        {
          "type": "application/vnd.ibm.kms.key+json",
          "id": "02fd6835-6001-4482-a892-13bd2085f75d",
          "name": "test-root-key",
          "state": 1,
          "extractable": false,
          "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
          "imported": false,
          "creationDate": "2020-03-12T03:50:12Z",
          "createdBy": "...",
          "algorithmType": "AES",
          "algorithmMetadata": {
            "bitLength": "256",
            "mode": "CBC_PAD"
          },
          "algorithmBitSize": 256,
          "algorithmMode": "CBC_PAD",
          "lastUpdateDate": "2020-03-12T03:50:12Z",
          "lastRotateDate": "2020-03-12T03:49:01Z",
          "keyVersion": {
            "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "creationDate": "2020-03-12T03:50:12Z"
          },
          "dualAuthDelete": {
            "enabled": false
          },
          "deleted": false
        }
      ]
    }
    

    O atributo keyVersion contém informações de identificação que descrevem a versão mais recente da chave raiz.

    Você também pode listar as versões disponíveis para a chave usando o API de serviço de gerenciamento de chaves do Hyper Protect Crypto Services. Para saber mais, consulte Visualizando versões da chave.

Usando um token de importação para girar uma chave

Se você tiver importado inicialmente uma chave raiz usando um token de importação, será possível girá-la fazendo uma chamada POST para o terminal a seguir.

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

    Para girar uma chave, você deve ser atribuído a uma politica de acesso de Escritor ou Gerenciador para a chave de instância. Para saber como as funções do IAM são mapeadas para as ações de serviço do Hyper Protect Crypto Services, confira Funções de acesso ao serviço.

  2. Recupere o ID da chave que você deseja girar.

    Você pode recuperar o ID de uma chave específica fazendo um GET /v2/keys solicitação ou visualizando suas chaves na IU.

  3. Crie e recupere um token de importação.

  4. Use o token de importação para criptografar o material de chave que você deseja usar para girar a chave existente.

    Para saber como usar um token de importação, confira o Tutorial: criando e importando chaves de criptografia.

  5. Substitua a chave existente por um novo material de chave executando o comando cURL a seguir.

    curl -X POST \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'accept: application/vnd.ibm.kms.key_action+json' \
      -H 'content-type: application/vnd.ibm.kms.key_action+json' \
      -d '{
      "type": "application/vnd.ibm.kms.key+json",
      "name": "<key_alias>",
      "description": "<key_description>",
      "extractable": <key_type>,
      "payload": "<encrypted_key>",
      "encryptionAlgorithm": "RSAES_OAEP_SHA_1",
      "encryptedNonce": "<encrypted_nonce>",
      "iv": "<iv>"
    }'
    

    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 restaurar chaves com thHyper Protect Crypto Services 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 em que a sua instância de serviço do Hyper Protect Crypto Services reside. Para obter mais informações, consulte Terminais de serviços regionais.
    port Obrigatório. O número da porta do terminal da API.
    key_ID Obrigatório. O identificador exclusivo para a chave que você deseja girar.
    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 sua instância de serviço Hyper Protect Crypto Services. Para obter mais informações, consulte Recuperando um ID da instância.
    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.
    encrypted_key Obrigatório. O novo material de chave que é criptografado pelo token de importação. O valor deve ser codificado em Base64. Certifique-se de que o material chave atende aos seguintes requisitos:

    • A chave deve ser 128, 192 ou 256 bits.
    • Os bytes de dados, por exemplo, 32 bytes para 256 bits, devem ser codificados usando codificação base64.

    Para saber mais, consulte Tutorial: criando e importando chaves de criptografia.

    key_type Um valor booleano determina se o material de chave pode sair do serviço. Quando você define o extractable atribuir a false, o serviço designará a chave como uma chave raiz que você pode usar para wrap ou unwrap operações.
    encrypted_nonce Obrigatório. O nonce criptografado por AES-GCM que assegura que os bits enviados como parte de uma solicitação sejam exatamente iguais aos que recebemos. O nonce valida a chave que você está restaurando. Para saber mais, veja Tutorial: criando e importando chaves de criptografia.
    iv Obrigatório. O vetor de inicialização (IV) que é gerado pelo algoritmo AES-GCM ao criptografar um nonce. Esse valor é usado para decodificar a chave para armazenamento no sistema dos Hyper Protect Crypto Services. Para saber mais, veja Tutorial: criando e importando chaves de criptografia.

    Uma solicitação de rotação bem-sucedida retorna uma resposta de HTTP 204 No Content, o que indica que a sua chave raiz foi substituída pelo novo material de chave.

  6. Opcional: verifique se a chave foi girada recuperando detalhes sobre a chave.

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

    Revise os valores lastRotateDate e keyVersion no corpo da entidade de resposta para inspecionar a data e hora em que a sua chave foi girada pela última vez.

    Também é possível listar as versões que estão disponíveis para a chave usando a API dos Hyper Protect Crypto Services. Para saber mais, consulte Visualizando versões da chave.

O que vem a seguir