Recuperando uma lista de chaves do Key Protect

O IBM® Key Protect for IBM Cloud® fornece um sistema centralizado para visualizar, gerenciar e auditar suas chaves de criptografia. Faça uma auditoria em suas chaves e nas restrições de acesso a elas para ajudar a garantir a segurança de seus recursos.

Embora você possa atribuir acesso refinado a uma única chave, a API list keys não retorna chaves com permissões de acesso individuais. Em outras palavras, ele não retorna chaves que somente você pode acessar. No entanto, chamar essa API retorna as chaves nos chaveiros aos quais você tem acesso. Se você tiver acesso a todas as chaves em uma instância, verá todas as chaves. Você pode visualizar as chaves com permissões de acesso individuais seguindo as instruções em Visualização de chaves de acesso de granulação fina por meio do IAM. Como alternativa, use a API para passar o ID da chave específica.

É uma boa prática fazer a auditoria da chave de configuração regularmente:

Para obter mais informações sobre como auditor o acesso aos seus recursos, consulte Gerenciando o acesso de usuário.

Visualizando chaves no console

Se você preferir inspecionar as chaves em seu serviço usando uma interface gráfica, será possível usar o painel Key Protect.

Depois de criar ou importar suas chaves existentes para o serviço, conclua as etapas a seguir para visualizar suas chaves.

  1. Faça login no console IBM Cloud.

  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 Key Protect.

  4. Clique em “Chaves” para ver uma lista de todas as chaves da sua instância de serviço. Você pode gerenciar a visualização da tabela das seguintes maneiras:

    • Chaves de filtro — Use as listas suspensas no painel de filtro da tabela para filtrar por estado da chave (por exemplo, Ativada ) ou ID do chaveiro.
    • Chaves de classificação — Clique nos cabeçalhos das colunas para classificar por valores como “Data da última rotação ”.
    • Chaves de pesquisa — Use a barra de pesquisa para pesquisar por nome de exibição, ID da chave ou apelido. Para localizar rapidamente uma chave específica, faça a busca pelo ID da chave.
    • Personalizar colunas — Clique no botão “Configurações” para selecionar quais colunas exibir.

    Por padrão, a tabela exibe as seguintes colunas:

Descreve a tabela Keys.
Coluna Descrição
Nome O nome de exibição que você atribuiu à sua chave.
ID da chave Um ID de chave exclusiva que foi designado à sua chave pelo serviço do Key Protect. Você pode usar o valor do ID para fazer chamadas ao serviço por meio da API Key Protect.
ID do conjunto de chaves O chaveiro ao qual as chaves estão associadas. Esses estados incluem Desativado, Excluído, Desativado e Ativado.
Última rotação A data da última vez em que a chave foi alternada.
Alias da chave O alias de chave (ou aliases) da chave.
Tipo O tipo de chave da chave (uma chave raiz ou uma chave padrão).
Estado O endereço estado-chave da chave, que pode ser um dos seguintes: Desativado, Excluído, Desativado ou Ativado.

Outros campos disponíveis na tabela incluem:

  • Última modificação: indica a última vez em que a chave foi alterada de alguma forma.
  • Criado: a data em que a chave foi criada.
  • Deletado: mostrando se uma chave está em um estado excluído (aguardando purga) ou não.
  • Importado: indica se a chave foi criada usando material de chave fornecido pelo usuário.
  • Política de rotação: mostra se essa chave tem uma política de rotação anexada a ela.
  • Recursos associados: mostra se a chave está protegendo quaisquer recursos.

O recurso de procura é limitado a um volume de 5.000 chaves Se você tiver mais de 5.000 chaves e não puder filtrar o número para menos de 5.000, sua pesquisa falhará, a menos que corresponda exatamente a um ID ou alias de chave. Por exemplo, você pode filtrar por estado da tecla para mostrar apenas as teclas Enabled. Para obter mais informações sobre a especificação da API para pesquisa de chaves, consulte GET /keys.

Se você quiser reduzir o número de resultados exibidos por uma pesquisa, tente aplicar um ou uma combinação dos seguintes parâmetros:

  • not: quando especificado, inverte a lógica utilizada pela pesquisa (por exemplo, not:foo procura por chaves que tenham aliases ou nomes que não contenham foo``).
  • escape: tudo após essa opção é considerado texto simples (exemplo: escape:not: procura chaves que tenham um alias ou nome que contenha a substring not:).
  • exact: só procura por correspondências exatas.
  • alias: só procura por aliases de chave.
  • name: só procura por nomes de chaves.

not:exact:foobar procura chaves em que o nome da chave ou o alias não seja exatamente foobar, enquanto exact:not:foobar procura chaves em que o nome da chave ou o alias seja exatamente not:foobar.

Os escopos de procura comportam-se de uma maneira OR. Isso significa que, ao utilizar mais de um escopo de pesquisa, uma correspondência em pelo menos um dos escopos faz com que a chave seja retornada. Por padrão (se nenhum escopo for fornecido), a procura é executada em ambos os escopos, name e alias.

Não está vendo a lista completa de chaves armazenadas em sua instância do Key Protect? Verifique com seu administrador se você está atribuído à função correta para a instância do Key Protect ou chave individual em questão. Para obter mais informações sobre funções, veja Funções e permissões.

Recuperando chaves por estado

Ao filtrar por estado de chaves específicas em sua instância do Key Protect, é possível recuperar chaves que estão nos estados que você especificar.

Por exemplo, é possível ter chaves na instância do Key Protect que estão nos estados ativo, suspenso e destruído, mas você deseja recuperar apenas as chaves no estado ativo quando percorrer uma lista de chaves.

Para obter mais informações sobre os estados de chave, consulte Estados e transições de chave.

Depois de criar ou importar suas chaves existentes para o serviço, há duas opções para visualizar essas chaves. A primeira opção, Exibir chaves por meio da lista de recursos, funciona para todas as chaves, exceto aquelas com acesso refinado. Para obter informações sobre a visualização de chaves com acesso de granulação fina, consulte Visualização de chaves de acesso de granulação fina do IAM.

Visualizando chaves por meio da lista de recursos

  1. Faça login no console IBM Cloud.

  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 Key Protect.

  4. Na página “Keys”, clique no ícone de filtro para abrir o painel de filtro.

  5. No menu suspenso “Estado”, selecione o estado das chaves que você deseja recuperar.

  6. Clique no botão Aplicar.

  7. Mais adiante, nos títulos de linha da tabela, você pode clicar em Last updated para classificar a lista até a data em que as chaves na tabela foram atualizadas mais recentemente, ou clicar em Type para listar todas as chaves raiz e chaves padrão como grupos.

Visualizando chaves de acesso preciso por meio do IAM

  1. Na barra de menus, clique em Gerenciar > Acesso (IAM) e selecione Usuários para procurar pelos usuários existentes em sua conta.

  2. Selecione uma linha da tabela e clique no ícone ⋯ para abrir uma lista de opções para esse usuário. Em seguida, selecione Gerenciar acesso na lista suspensa.

  3. Aqui você pode ver todas as informações do IAM relativas a este usuário, incluindo os grupos de acesso aos quais ele pertence. Para ver especificamente as políticas de acesso para este usuário, clique na guia Políticas de acesso.

O titular da conta ou um usuário com os privilégios adequados pode visualizar todas as políticas atribuídas a esse usuário, incluindo qualquer acesso detalhado às chaves.

Visualizando chaves com a API

É possível recuperar os conteúdos de suas chaves usando a API do Key Protect.

Recuperando uma lista de chaves

Para uma visualização de alto nível, é possível procurar chaves que são gerenciadas em sua instância provisionada do Key Protect fazendo uma chamada GET para o terminal a seguir.

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. Recupere as suas credenciais de autenticação para trabalhar com chaves no serviço.

  2. Visualize as características gerais sobre suas chaves executando o comando curl a seguir.

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
        -H "accept: application/vnd.ibm.collection+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>" \
        -H "correlation-id: <correlation_ID>"
    

    Substitua as variáveis na solicitação de exemplo de acordo com as informações na Tabela 1. Para obter mais informações sobre os parâmetros opcionais disponíveis ao visualizar coleções de chaves, incluindo a capacidade de procurar suas chaves, consulte a Documentação da API referente ao método List keys.

Tabela 1. Variáveis necessárias para exibir chaves com a API Key Protect
Variável Descrição
região Obrigatório. A abreviação de região, como us-south ou eu-gb, que representa a área geográfica na qual a sua instância do Key Protect reside. Para obter mais informações, consulte Terminais de serviços regionais.
key_ID_or_alias Obrigatório. O identificador ou alias exclusivo da chave a ser inspecionada.
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 Recuperando 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 Recuperando um ID da instância.
key_ring_ID Opcional. O identificador exclusivo do conjunto de chaves de destino. Se não for especificado, a resposta inclui todos os recursos aos quais o usuário tem acesso na instância especificada. Se fornecida, a resposta inclui apenas os recursos aos quais o usuário tem acesso no chaveiro especificado. Para obter mais informações, consulte Agrupando chaves.
correlation_ID Opcional. O identificador exclusivo que é usado para rastrear e correlacionar transações.

Uma solicitação GET api/v2/keys bem-sucedida retorna uma coleção de chaves que estão disponíveis em sua instância de serviço do Key Protect.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 2
    },
    "resources": [
        {
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "type": "application/vnd.ibm.kms.key+json",
            "name": "Root-key",
            "state": 1,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "createdBy": "...",
            "creationDate": "2020-03-11T16:30:06Z",
            "lastUpdateDate": "2020-03-11T16:30:06Z",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "extractable": false,
            "imported": true,
            "algorithmMode": "Deprecated",
            "algorithmBitSize": 256,
            "dualAuthDelete": {
                "enabled": false
            }
        },
        {
            "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "type": "application/vnd.ibm.kms.key+json",
            "name": "Standard-key",
            "state": 1,
            "expirationDate": "2020-03-14T03:50:12Z",
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "createdBy": "...",
            "creationDate": "2020-03-12T03:50:12Z",
            "lastUpdateDate": "2020-03-12T03:50:12Z",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "extractable": true,
            "imported": false,
            "algorithmMode": "Deprecated",
            "algorithmBitSize": 256,
            "dualAuthDelete": {
                "enabled": false
            }
        }
    ]
}

Por padrão, GET api/v2/keys retorna as suas primeiras 200 chaves, mas é possível ajustar esse limite usando o parâmetro limit no momento da consulta. Para saber mais sobre o limit e o offset, veja Recuperando um subconjunto de chaves.

Não está vendo a lista completa de chaves? Talvez seja necessário acessar limit e offset ou consultar seu administrador para garantir que você tenha o nível correto de acesso às chaves na sua instância. Para saber mais, consulte Não é possível visualizar ou listar chaves.

Recuperando um subconjunto de chaves

Ao especificar os parâmetros limit e offset no momento da consulta, é possível recuperar um subconjunto de suas chaves, começando com o valor offset especificado.

Por exemplo, é possível ter 3.000 chaves totais armazenadas em sua instância do Key Protect e querer recuperar as chaves de 200 a 300 ao fazer uma solicitação GET /keys.

É possível usar a solicitação de exemplo a seguir para recuperar um conjunto diferente de chaves.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?offset=<offset>&limit=<limit>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

Substitua as variáveis limit e offset em sua solicitação de acordo com a tabela a seguir.

Tabela 2. Uso das variáveis de limite e deslocamento
Variável Descrição
compensação O número de chaves a serem ignoradas. Por exemplo, se você tiver 50 chaves na sua instância e quiser listar as chaves de 26 a 50, use ../keys?offset=25. Também é possível emparelhar offset com limit para percorrer seus recursos disponíveis.
limite O número de chaves a serem recuperadas. Por exemplo, se você tiver 100 chaves na sua instância e quiser listar apenas 10 delas, use ../keys?limit=10. O valor máximo para limit é 5000.

Deslocamento é o local de uma determinada chave em um conjunto de dados. O valor offset é baseado em zero, o que significa que a décima chave de criptografia em um conjunto de dados está no deslocamento 9.

Recuperando chaves por estado

Ao especificar o parâmetro state no momento da consulta, é possível recuperar as chaves que estão nos estados especificados.

Por exemplo, é possível ter chaves em sua instância do Key Protect nos estados ativo, suspenso e destruído, mas querer recuperar somente as chaves no estado ativo ao fazer uma solicitação GET /keys.

O parâmetro de consulta de estado obtém uma lista de números inteiros de 0 a 5 delimitados por vírgulas sem nenhum espaço em branco ou vírgula à direita. Para obter mais informações sobre os estados de chave, consulte Estados e transições de chave.

É possível usar a solicitação de exemplo a seguir para recuperar um conjunto diferente de chaves.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?state=<state_integers>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

Substitua a variável state em sua solicitação de acordo com a tabela a seguir.

Tabela 3. A variável de estado
Variável Descrição
estado Os estados das chaves a serem recuperadas. Os estados são números inteiros, em que Pré-ativação = 0, Ativo = 1, Suspenso = 2, Desativado = 3 e Destruído = 5. Por exemplo, se você quiser listar apenas as chaves no estado “ativo” na sua instância do Key Protect, use ../keys?state=1. Também é possível emparelhar states com offsets e limits para percorrer seus recursos disponíveis.

Para observações de uso, confira os exemplos a seguir para configurar seu parâmetro de consulta state.

Tabela 4. Notas de uso para o parâmetro de consulta state
URL Descrição
.../keys Lista todos os seus recursos disponíveis, até as primeiras 200 chaves.
.../keys?state=5 Lista as chaves no estado excluído.
.../keys?state=2,3 Lista as chaves no estado suspenso e desativado.

Recuperando chaves por valor Extractable

Ao especificar o parâmetro extractable na hora da consulta, é possível recuperar chaves cujo material pode sair do serviço.

Por exemplo, é possível ter chaves padrão e raiz na instância do Key Protect, mas você deseja apenas recuperar as chaves com o material de chave extraível quando fizer uma solicitação GET /keys.

O parâmetro de consulta extractable é semelhante a um booleano.

É possível usar a solicitação de exemplo a seguir para recuperar um conjunto diferente de chaves.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?extractable=<extractable>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

Substitua a variável extractable em sua solicitação de acordo com a tabela a seguir.

Tabela 5. A variável extraível
Variável Descrição
extractable O tipo de chaves a serem recuperadas. Filtra chaves com base na propriedade extractable. É possível usar este parâmetro de consulta para procurar chaves cujo material pode sair do serviço. Se definido como “ true ”, as chaves padrão são recuperadas. Se definido como “ false ”, as chaves raiz são recuperadas. Se não for especificado, tanto a chave raiz quanto a chave padrão são recuperadas. Por exemplo, se você quiser listar apenas as chaves com material extraível na sua instância do Key Protect, use ../keys?extractable=true. Também é possível emparelhar extractable com offset, limit e state para percorrer seus recursos disponíveis.

Para observações de uso, confira os exemplos a seguir para configurar seu parâmetro de consulta extractable.

Tabela 6. Notas de uso para o parâmetro de consulta extraível
URL Descrição
../keys Lista todos os seus recursos disponíveis, até as primeiras 200 chaves.
../keys?extractable=true Lista chaves padrão.
../keys?extractable=false Lista chaves raiz.

Classificação de uma lista de chaves

Usando o parâmetro sort na string de consulta classificam-se a lista de chaves retornados com base em uma ou mais propriedades chave. Para classificar em uma propriedade em ordem decrescente, prefixe o termo com "-". Para classificar várias propriedades-chave, use uma vírgula para separar cada propriedade. A primeira propriedade da lista separada por vírgulas é avaliada antes da próxima.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?sort=<sort-value>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"
Tabela 7. Notas de uso para o parâmetro de consulta sort
Variável Descrição
classificação-valor A lista de propriedades para triagem. As principais propriedades que podem ser classificadas atualmente são: id, state, extractable, imported, creationDate, lastUpdateDate, lastRotateDate, deletionDate, expirationDate.