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:
-
Acesse Menu > Lista de recursos para visualizar uma lista de seus recursos.
-
Em sua lista de recursos do IBM Cloud, selecione a sua instância provisionada do Hyper Protect Crypto Services.
-
Na página Chaves KMS, use a tabela Chaves para procurar as chaves em seu serviço.
-
Selecione a chave que deseja rodar e clique no ícone Ações
para abrir uma lista de opções para a chave.
-
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.
-
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
-
Recuperar suas credenciais de autenticação e serviço para que funcionem com chaves no serviço.
-
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.
-
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 regionObrigatório. A abreviação de região, como us-southouau-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.portObrigatório. O número da porta do terminal da API. key_IDObrigatório. O identificador exclusivo para a chave raiz que você deseja girar. IAM_tokenObrigató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_IDObrigató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_IDOpcional. 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_materialOpcional. 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
payloadatributo 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. -
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
lastRotateDateno 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
keyVersionconté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
-
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.
-
Recupere o ID da chave que você deseja girar.
Você pode recuperar o ID de uma chave específica fazendo um
GET /v2/keyssolicitação ou visualizando suas chaves na IU. -
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.
-
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 regionObrigatório. A abreviação de região, como us-southouau-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.portObrigatório. O número da porta do terminal da API. key_IDObrigatório. O identificador exclusivo para a chave que você deseja girar. IAM_tokenObrigató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_IDObrigató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_aliasObrigató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_descriptionUma 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_keyObrigató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_typeUm valor booleano determina se o material de chave pode sair do serviço. Quando você define o extractableatribuir afalse, o serviço designará a chave como uma chave raiz que você pode usar parawrapouunwrapoperações.encrypted_nonceObrigató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. ivObrigató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. -
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
lastRotateDateekeyVersionno 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
- Depois de girar uma chave raiz, o novo material da chave criptográfica torna-se disponível para proteger as chaves criptográficas de dados (DEKs) que estão associadas à chave raiz. Aprenda como recriptografar ou reembrulhar seu DEKS sem expor as chaves em formato de texto simples, consulte Reembrulhando chaves.
- Para saber como a criptografia de envelope ajuda a controlar a segurança dos dados em repouso na nuvem, consulte Protegendo dados com criptografia de envelope.
- Para saber mais sobre como gerenciar programaticamente suas chaves,Confira aHyper Protect Crypto Services documento de referência da API do serviço de gerenciamento de chaves.