Agrupando chaves usando conjuntos de chaves
É possível usar o IBM® Key Protect for IBM Cloud® para criar um grupo de chaves para um grupo de destino de usuários que requerem as mesmas permissões de acesso do IAM.
Como administrador da conta, é possível definir grupos chamados "conjuntos de chaves" para agrupar as chaves contidas em uma instância do serviço Key Protect. Um conjunto de chaves é uma coleção de chaves, em sua instância de serviço, em que todas requerem as mesmas permissões de acesso do IAM. Por exemplo, se você tiver um grupo de membros da equipe que precisarão de um determinado tipo de acesso a um grupo específico de chaves, será possível criar um conjunto de chaves para essas chaves e designar a política de acesso do IAM apropriada ao grupo de usuários de destino. Os usuários aos quais é designado o acesso ao conjunto de chaves podem criar e gerenciar os recursos existentes dentro do conjunto de chaves.
Os conjuntos de chaves também são úteis nos casos em que é importante para uma unidade de negócios ter acesso a um conjunto de chaves que outra unidade de negócios não deve ter. Um administrador de conta pode criar conjuntos de chaves para cada unidade de negócios e designar o nível apropriado de acesso aos usuários apropriados. Caso o administrador da conta deseje delegar o gerenciamento da plataforma de um conjunto de chaves específico a outra pessoa, ele poderá atribuir a um usuário a função de administrador da plataforma no nível desse conjunto de chaves. O subadministrador terá, então, a capacidade de gerenciar o conjunto de chaves e conceder acesso aos usuários apropriados.
Para conceder acesso aos conjuntos de chaves contidos em uma instância do Key Protect, é possível utilizar Console da IBM Cloud, API IAM ou CLI IAM.
Antes de criar um anel de chaves para sua instância do Key Protect, analise as seguintes considerações:
-
Cada instância do Key Protect é fornecida com um conjunto de chaves padrão. Cada instância recém-criada do Key Protect é fornecida com um conjunto de chaves gerado com um ID de
default. Todas as chaves que não estão associadas a um conjunto de chaves especificado de outra forma existem dentro do conjunto de chaves padrão. -
Os conjuntos de chaves podem conter chaves padrão e raiz. Os conjuntos de chaves podem conter chaves padrão e raiz. Não há um limite de quantas chaves podem existir dentro de um conjunto de chaves.
-
Uma chave pode ser apenas uma parte de um conjunto de chaves de cada vez. Uma chave pode ser apenas uma parte de um conjunto de chaves. A designação do conjunto de chaves acontece na criação da chave. Se um ID do conjunto de chaves não for transmitido na criação, a chave será uma parte do conjunto de chaves
default.
A quantidade máxima de conjuntos de chaves é de 50 por instância de serviço.
Criando conjuntos de chaves com a UI
É necessário ter a função de serviço de "Gravador" ou "Gerenciador" para criar um conjunto de chaves.
Para criar um conjunto de chaves:
- Clique em Conjuntos de chaves na navegação esquerda.
- No painel Conjuntos de chaves, clique no botão Criar.
- Na guia Criar um conjunto de chaves, dê um nome ao seu novo conjunto de chaves, seguindo as instruções sobre caracteres permitidos. Em seguida, clique em Criar.
Depois de criado, seu novo conjunto de chaves aparecerá na lista de conjuntos de chaves e será possível transferir ou criar chaves para ele.
Se você gerencia chaveiros de forma consistente em vários ambientes, pode automatizar o layout de chaveiros e chaves com o Key Protect Módulo de chaveiro ou o Key Protect Módulo com tudo incluído mais amplo. Consulte Sobre os módulos do Terraform IBM para obter contexto.
Criando conjuntos de chaves com a API
Crie um conjunto de chaves fazendo uma chamada POST para o terminal a seguir.
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
Recupere as suas credenciais de autenticação para trabalhar com chaves no serviço.
-
Crie um conjunto de chaves executando o comando
curla seguir.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "correlation-id: <correlation_ID>"Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.
| Variável | Descrição |
|---|---|
| região | Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.Para obter mais informações, consulte “ Pontos de conexão de serviço regionais ”. |
| key_ring_id | Obrigatório. O identificador exclusivo para o conjunto de chaves que você deseja criar. |
| IAM_token | Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl. Para obter mais informações, consulte “Como recuperar um token de acesso ”. |
| instance_ID | Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect. Para obter mais informações, consulte “Como recuperar um ID de instância ”. |
| correlation_ID | Opcional. O identificador exclusivo que é usado para rastrear e correlacionar transações. |
Uma solicitação POST api/v2/key_rings bem-sucedida retorna um HTTP 201 Created resposta, que indica que o anel de chaves foi criado e agora está disponível para armazenar chaves padrão e chaves raiz.
Transferindo uma chave para um conjunto de chaves diferente
À medida que os requisitos mudam e novos membros da equipe são trazidos para uma organização, é possível criar novos conjuntos de chaves para refletir essas mudanças organizacionais. Depois de criar os conjuntos de chaves, pode ser necessário mover uma chave de um conjunto de chaves existente para um novo conjunto de chaves que tenha diferentes permissões do IAM. Por exemplo, você pode estar integrando uma equipe que precisará de acesso específico a uma chave que faz parte de um conjunto de chaves customizado, não padrão que foi criado anteriormente. É possível criar um novo conjunto de chaves que seja dedicado à integração da equipe e, como as chaves podem ser associadas apenas a um conjunto de chaves de cada vez, será preciso mover a chave para o novo conjunto de chaves.
Depois que você transferir uma chave para um chaveiro diferente, a alteração pode levar até 10 minutos para entrar em vigor em todos os sistemas.
Transferindo uma chave para um conjunto de chaves diferente com a UI
Se não vir todas as opções que espera ver, pode ser porque você não tem a permissão para executar uma ação específica. Certifique-se de que suas funções e permissões sejam suficientes para executar a ação. Para obter mais informações sobre funções, confira Gerenciando o acesso de usuário.
Você deve ter a função "Gerenciador" do serviço da chave que está sendo transferida e do conjunto de chaves de destino para transferir uma chave.
No painel Chaves:
- Encontre a chave que deseja transferir. Para localizar a chave com mais facilidade, use um dos seguintes métodos:
- No painel “Chaves ”, selecione o chaveiro no filtro “ID do chaveiro ”.
- Clique em “Chaveiros” na barra de navegação à esquerda, localize o chaveiro, clique no menu de ações (⋯) e selecione “Exibir chaves ”.
- Clique no botão ⋯ e selecione Editar conjunto de chaves da lista suspensa.
- Na lista suspensa, selecione o conjunto de chaves para o qual deseja mover a chave. Em seguida, clique em Salvar.
Transferindo uma chave para um conjunto de chaves diferente com a API
Transfira uma chave para um conjunto de chaves diferente fazendo uma chamada PATCH para o terminal a seguir.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>
-
Recupere as suas credenciais de autenticação para trabalhar com chaves no serviço.
Para atualizar o conjunto de chaves de uma chave, deve-se ter pelo menos o acesso de serviço de Gerenciador à chave e ao conjunto de chaves de destino. Para saber como as funções do IAM mapeiam para ações de serviços do Key Protect, consulte Funções de acesso de serviços.
-
Atualize o conjunto de chaves de uma chave executando o comando
curla seguir.$ curl -X PATCH \ https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias> \ -H 'accept: application/vnd.ibm.kms.key+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key+json' \ -H "x-kms-key-ring: <original_key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "keyRingID": "<new_key_ring_ID>" }'Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.
| Variável | Descrição |
|---|---|
| região | Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.Para obter mais informações, consulte “Pontos de conexão de serviço regionais ”. |
| keyID_or_alias | Obrigatório. O identificador ou alias exclusivo da chave que se deseja atualizar. |
| IAM_token | Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl. Para obter mais informações, consulte “Como recuperar um token de acesso ”. |
| instance_ID | Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect. Para obter mais informações, consulte “Como recuperar um ID de instância ”. |
| original_key_ring_ID | Opcional. O identificador exclusivo do conjunto de chaves do qual a chave atualmente faz parte. Se não especificado, o Key Protect irá procurar a chave em cada conjunto de chaves associado à instância especificada. Por
isso, é recomendado 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. |
| correlation_ID | Opcional. O identificador exclusivo que é usado para rastrear e correlacionar transações. |
| new_key_ring_ID | Obrigatório. O identificador exclusivo para o conjunto de chaves de destino para o qual você deseja mover a chave. |
Quando bem-sucedida, a solicitação PATCH api/v2/keys/keyID_or_alias retorna os metadados da chave, incluindo o ID do conjunto de chaves do qual a chave faz parte.
{
"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",
"aliases": [
"alias-1",
"alias-2"
],
"description": "A test root key",
"state": 1,
"extractable": false,
"keyRingID": "new-key-ring",
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"imported": false,
"creationDate": "2020-03-12T03:37:32Z",
"createdBy": "...",
"algorithmType": "Deprecated",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"algorithmBitSize": 256,
"algorithmMode": "Deprecated",
"lastUpdateDate": "2020-03-12T03:37:32Z",
"keyVersion": {
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"creationDate": "2020-03-12T03:37:32Z"
},
"dualAuthDelete": {
"enabled": false
},
"deleted": false
}
]
}
Concedendo acesso a um conjunto de chaves
É possível conceder acesso a um chaveiro em uma instância do Key Protect usando o console do IBM Cloud, a API do IAM ou a CLI{ :external}.
Revise funções e permissões para saber como as funções do IBM Cloud IAM são mapeadas para as ações do Key Protect.
Para designar o acesso a um conjunto de chaves com o console:
-
Na barra de menus, clique em Gerenciar > Acesso (IAM) e selecione Usuários para procurar pelos usuários existentes em sua conta.
-
Selecione uma linha da tabela e clique no ícone ⋯ para abrir uma lista de opções para esse usuário.
-
No menu de opções, clique em Designar acesso.
-
Clique em Designar acesso adicional de usuários.
-
Clique no botão Serviços do IAM.
-
Na lista de serviços, selecione Key Protect.
-
Selecione Serviços baseados em atributos.
-
Selecione o atributo ID da instância e selecione a instância na qual o conjunto de chaves reside.
-
Selecione o atributo ID do conjunto de chaves e insira o ID associado ao conjunto de chaves.
-
Escolha uma combinação de funções de acesso de plataforma e de serviço para designar acesso ao usuário.
-
Clique em Incluir.
-
Continue a incluir funções de plataforma e de acesso de serviço conforme necessário e quando terminar clique em Designar. Observe que o usuário deve ter pelo menos acesso de Leitor para toda a instância para poder listar, criar e excluir conjuntos de chaves nessa instância.
Listando conjuntos de chaves com a API
Para uma visualização de alto nível, é possível navegar pelos conjuntos de chaves que são gerenciados em sua instância fornecida do Key Protect fazendo uma chamada GET para o terminal a seguir.
https://<region>.kms.cloud.ibm.com/api/v2/keys_rings
-
Recupere as suas credenciais de autenticação para trabalhar com chaves no serviço.
-
Veja as características gerais dos seus anéis de chaves executando o seguinte
curla seguir.$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings?totalCount=<show_total>&offset=<offset_value>&limit=<offset_limit>" \ -H "accept: application/vnd.ibm.kms.key_ring+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "correlation-id: <correlation_ID>"Os parâmetros de consulta após o ponto de interrogação
?são opcionais, mas estão incluídos aqui para que seu uso seja documentado. (: :nota)Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.
| Variável | Descrição |
|---|---|
| região | Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.Para obter mais informações, consulte “ Pontos de conexão de serviço regionais ”. |
| IAM_token | Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl. Para obter mais informações, consulte “Como recuperar um token de acesso ”. |
| instance_ID | Obrigatório. O identificador exclusivo atribuído à sua instância do Key Protect. Para obter mais informações, consulte “Como recuperar um ID de instância ”. |
| correlation_ID | Opcional. O identificador exclusivo que é usado para rastrear e correlacionar transações. |
| offset_limit | Opcional. Por padrão, GET /key_rings retorna uma sequência de 51 keyRings, incluindo o keyRing padrão. Para obter um grupo diferente de conjuntos de chaves, use limit com offset para
procurar entre seus recursos disponíveis. O valor máximo para limit é '5,000.' |
| offset_value | Opcional. Ao especificar offset, é possível obter um subconjunto de conjuntos de chaves que começa no valor de offset. |
| show_total | Opcional. Se configurado como true, os metadados de resposta retornam um valor para o totalCount utilizado com a paginação. |
Quando bem-sucedida, a solicitação GET api/v2/key_rings retorna uma coleção dos conjuntos de chaves que estão disponíveis na instância de serviço do Key Protect.
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key_ring+json",
"collectionTotal": 2
},
"resources": [
{
"id": "default"
},
{
"id": "Sample Key Ring 2",
"creationDate": "2020-03-12T11:00:06Z",
"createdBy": "..."
}
]
}
Excluindo conjuntos de chaves com a API
É possível excluir um conjunto de chaves fazendo uma chamada DELETE para o terminal a seguir.
https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>
Essa ação não será bem sucedida se o conjunto de chaves contiver pelo menos uma chave em um estado diferente do estado Destruído Se as únicas chaves no conjunto de chaves estiverem no estado Destruído , o conjunto de chave
poderá ser excluído se force=true for incluído no comando de exclusão As chaves nesse estado são transferidas automaticamente para o conjunto de chaves default
-
Recupere as suas credenciais de autenticação para trabalhar com chaves no serviço.
-
Recupere o ID do conjunto de chaves que você deseja excluir.
Para obter o ID do conjunto de chaves na instância do Key Protect, é possível recuperar uma lista de seus conjuntos de chaves.
-
Execute o comando
curla seguir para excluir o conjunto de chaves. Observe a presença deforce=true, que forçará a exclusão do conjunto de chaves no caso de ele conter chaves no estado Destruído$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>?force=true" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "prefer: <return_preference>"Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.
| Variável | Descrição |
|---|---|
| região | Obrigatório. A abreviação da região, como us-south ou eu-gb, que representa a área geográfica onde sua instância do Key Protect está localizada.Para obter mais informações, consulte “ Pontos de conexão de serviço regionais ”. |
| key_ring_id | Obrigatório. O identificador exclusivo para o conjunto de chaves que você deseja excluir. |
| IAM_token | Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl. Para obter mais informações, consulte “Como recuperar um token de acesso ”. |
| instance_ID | Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect. Para obter mais informações, consulte “Como recuperar um ID de instância ”. |
Uma solicitação bem-sucedida retorna uma resposta de HTTP 204 No Content, que indica que o conjunto de chaves foi excluído com sucesso.