Referência da CLI do Key Protect

A versão mais recente do plug-in da CLI do IBM® Key Protect for IBM Cloud® permite gerenciar, com segurança e eficiência, as chaves contidas em sua instância do Key Protect.

Ao acessar o site IBM Cloud CLI, você será notificado quando houver atualizações disponíveis. Certifique-se de manter a CLI atualizada para que seja possível usar os comandos e sinalizadores que estão disponíveis para o plug-in da CLI do Key Protect.

Notas

Para instalar e configurar o plug-in da CLI do Key Protect, consulte o tópico em Configurando a CLI.

O exemplo mostrando como usar region-set descreve uma etapa crítica na configuração.

Versões anteriores

Esta documentação da versão 0.8 não inclui comandos obsoletos.

Todos os comandos descontinuados funcionam nas versões 0.4.0 e 0.5.2. Ou seja, a versão 0.5.2 é compatível com as versões anteriores 0.3.9 e 0.4.0.

Exemplos

Todos os comandos têm uma seção Example, que mostra como usar o comando no contexto de um fluxo de trabalho.

Os exemplos assumem que você openssl e jq instalado.

Muitos exemplos utilizam uma variável de ambiente configurada para a sessão relacionada ao ID da instância do Key Protect, em vez do parâmetro -i. As variáveis assim configuradas serão automaticamente utilizadas pelo plug-in sempre que exigido e quando necessário.

# export the Key Protect instance id in the command line
$ export KP_INSTANCE_ID=<INSTANCE_ID>

Certifique-se de definir o ponto de extremidade da instância Key Protect:

export KP_TARGET_ADDR=<KEY_PROTECT_INSTANCE_ENDPOINT>   

Substitua <KEY_PROTECT_INSTANCE_ENDPOINT> pelo endpoint do ID da sua instância. Por exemplo:

export KP_TARGET_ADDR=https://fadedbee-0000-0000-0000-1234567890ab.api.us-south.kms.appdomain.cloud   

Você pode encontrar o endpoint da instância para Key Protect no console da interface do usuário IBM Cloud para sua instância específica.

Resumo do comando ibmcloud kp

ibmcloud kp suporta os comandos listados aqui.

Comando kp import-token

O comando kp import-token prepara uma chave raiz para importação segura.

Subcomandos para gerenciar tokens de importação
Subcomando Status v0.8 Descrição
create Criar um token de importação
key-encrypt Criptografar a chave que você importa para o serviço
nonce-encrypt Criptografar o nonce que é gerado por kp import-token create
show Recuperar um token de importação

Comando kp instance

O comando kp instance gerencia as políticas de uma instância do Key Protect.

Subcomandos para gerenciar chaves
Subcomando Status v0.8 Descrição
policies Listar políticas associadas a uma instância
policy-update allowed-network Atualizar a política da instância para allowed network
policy-update dual-auth-delete Atualizar a política da instância para dual auth delete
policy-update rotation Atualizar a política da instância para rotation

Comando kp key

O comando kp key gerencia chaves individuais.

Subcomandos para gerenciar chaves
Subcomando Status v0.8 Descrição
alias-create Crie um alias para uma referência exclusiva e conveniente a uma chave
cancel-delete Cancelar uma solicitação planejada anteriormente para excluir uma chave
create Criar uma chave ou importar a sua própria chave
delete Excluir uma chave
disable Desativar uma chave
enable Ativar uma chave
policies Recuperar uma lista de políticas
policy-update dual-auth-delete Atualizar a política de chaves para dual auth delete
policy-update rotation Atualizar a política de chaves para rotation
restore Restaurar uma chave raiz que foi excluída anteriormente
girar Fazer rodízio de um chave raiz
schedule-delete Autorizar uma chave, com uma política de exclusão de autorização dupla, para ser excluída
show Recuperar uma chave
sync Sincronizar os recursos associados de uma chave
unwrap Desagrupar uma chave de criptografia de dados
atualizar Atualize uma chave, transferindo-a para um novo conjunto de chaves
Versões Listar todas as versões chave
wrap Agrupar uma chave de criptografia de dados

comando kp key-ring

O suporte ao Conjunto de chaves permite o gerenciamento de grupos de chaves para melhores práticas usando kp key-ring.

Subcomandos para gerenciar chaveiros
Subcomando Status v0.8 Descrição
create Cria um conjunto de chaves dentro de uma instância kp
delete Exclui um conjunto de chaves dentro de uma instância kp

Outros comandos kp

Quanto mais comandos para o gerenciamento de recursos do Key Protect, maior o suporte para boas práticas.

Comandos para gerenciar outros recursos
Comando Status v0.8 Descrição
kp keys Listar as chaves que estão disponíveis em sua instância do Key Protect
kp key-rings Lista os conjuntos de chaves associados à instância kp
conjunto de regiões kp Destinar um terminal regional diferente
kp registrations Listar associações entre chaves raiz e outros recursos em nuvem
kp kmip Crie e gerencie adaptadores KMIP e recursos associados.
Unidade de criptografia kp Gerenciar unidades de criptografia
unidades criptográficas kp Listar as unidades de criptografia alocadas a uma instância

Aliases de chave podem ser usados como identificadores para métodos, conforme mostrado em exemplos para key create, key disable e em qualquer lugar que você veja 'Key ID ou Alias' suportado aqui.

Visualizando a ajuda

Estes são exemplos de informações da ajuda do kp.

  • ibmcloud kp -h
  • ibmcloud kp import-token -h
  • ibmcloud kp key -h
  • ibmcloud kp keys -h

Os comandos kp import-token e kp key têm subcomandos. Estes exemplos mostram a ajuda para alguns subcomandos.

  • ibmcloud kp import-token create -h
  • ibmcloud kp key delete -h

kp import-token create

Crie um token de importação que possa ser usado para criptografar e importar uma chave raiz para a instância do Key Protect. Por padrão, o token de importação expira após 10 minutos (600 segundos).

ibmcloud kp import-token create
     -i, --instance-id    INSTANCE_ID
    [-e, --expiration     EXPIRATION_TIME_SECONDS]
    [-m, --max-retrievals MAX_RETRIEVALS]

Exemplo

Este exemplo cria um token de importação. O token de importação consiste em um nonce e um public key.

Um nonce é um número arbitrário que pode ser usado apenas uma vez em uma comunicação criptográfica.

# create an import token that expires in 5 minutes and allows 3 retrievals
$ ibmcloud kp import-token create --expiration 300 --max-retrievals 3

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-05-04 19:12:07 +0000 UTC   2020-05-04 19:17:07 +0000 UTC   3                3

# show the created token
$ ibmcloud kp import-token show

{
    "nonce": "8rf2ldP/zWm1Tjrb",
    "payload":
        "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -e, --expiration

    Especifique um prazo de expiração (em segundos) para um token de importação. Esse valor determina por quanto tempo o token de importação e a chave pública associada a ele permanecem válidos para operações.

    O valor mínimo é 300 segundos (5 minutos) e o valor máximo é 86400 segundos (24 horas). O valor padrão é 600 segundos (10 minutos).

  • -m, --max-retrievals

    Configure a contagem de utilização para o token de importação. Esse valor determina o número de vezes que o token de importação pode ser recuperado no prazo de expiração antes de se tornar inacessível. O valor padrão é 1.

kp import-token key-encrypt

Para criptografar o material de chave importado para o Key Protect, utilize a chave pública que está associada à instância do Key Protect.

Em seguida, forneça a chave criptografada recuperada ao executar ibmcloud kp key create para importar a chave para o serviço.

ibmcloud kp import-token key-encrypt
        -i, --instance-id INSTANCE_ID
        -k, --key         KEY_MATERIAL
        -p, --pubkey      PUBLIC_KEY
       [-a, --hash        HASH_ALGORITHM]

Exemplo

Este exemplo criptografa um arquivo key material usando a chave pública criada por kp import-token create.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
Ela33aTdDiKVUNryLeM/xwUEaKWvzY+u ...<redacted>... Asv7bZxvyZn9KNU=

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    O material da chave codificada em Base64 que você armazena e gerencia no serviço.

    -p, --pubkey

    A chave de criptografia pública codificada em Base64 que foi distribuída por Key Protect. Para criar nova chave pública, use ibmcloud kp import-token create. Para recuperar uma chave pública, use ibmcloud kp import-token show.

Parâmetros opcionais

  • -a, --hash

    O algoritmo hash usado para agrupar a chave. SHA1 e SHA256 são suportados. O padrão é SHA256. O SHA1 é suportado somente por HPCS.

    Essa opção é usada para gerar uma chave criptografada que pode ser usada somente em uma solicitação com a API do HPCS. Não use esta opção para criar chaves raiz do Key Protect.

    Os Hyper Protect Crypto Services (HPCS) são um serviço de gerenciamento de chave dedicado e um módulo de segurança de hardware (HSM). Os HPCS se integram com o Key Protect para gerar e criptografar chaves. A função Manter a sua própria chave (KYOK) também é ativada por HPCS.

Notas

Para obter mais informações sobre HPCS, consulte Introdução ao IBM Cloud Hyper Protect Crypto Services.

kp import-token nonce-encrypt

Para criptografar o nonce distribuído pelo Key Protect utilize o material de chave importado para o serviço.

Em seguida, forneça os valores de nonce e IV criptografados recuperados ao executar ibmcloud kp key create para importar a chave..

ibmcloud kp import-token nonce-encrypt
        -i, --instance-id INSTANCE_ID
        -k, --key         KEY_MATERIAL
        -n, --nonce       NONCE
    [-c, --cbc]

Exemplo

Este exemplo criptografa o nonce usando o key material.

Um nonce é um número arbitrário que pode ser usado apenas uma vez em uma comunicação criptográfica.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
mWQad1RHdWoFXFw/D9h8z43t/+0vIZc55VBBQg==   6nvOwUvQdowoD+3v

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    O material da chave codificada em Base64 que você armazena e gerencia no serviço.

    -n, --nonce

    O nonce que é usado para verificar uma solicitação para importar uma chave. O valor é codificado em Base64. Para recuperar um nonce, use ibmcloud kp import-token show.

Parâmetros opcionais

  • -c, --cbc

    Criptografe o nonce usando o algoritmo de criptografia AES-CBC. Esse método de algoritmo é suportado somente para HPCS. O algoritmo de criptografia padrão é AES-GCM.

    Essa opção é usada para gerar um nonce criptografado que pode ser usado somente em uma solicitação com a API do HPCS. Não use esta opção para criar chaves raiz do Key Protect.

    Os Hyper Protect Crypto Services (HPCS) são um serviço de gerenciamento de chave dedicado e um módulo de segurança de hardware (HSM). Os HPCS se integram com o Key Protect para gerar e criptografar chaves. A função Manter a sua própria chave (KYOK) também é ativada por HPCS.

Notas

Para obter mais informações sobre HPCS, consulte Introdução ao IBM Cloud Hyper Protect Crypto Services.

kp import-token show

Recuperar o token de importação que está associado à instância doKey Protect Instância.

O token de importação contém uma chave de criptografia pública e um nonce. Forneça a chave pública recuperada e nonce como argumentos para ibmcloud kp import-token nonce-encrypt e ibmcloud kp import-token key-encrypt.

ibmcloud kp import-token show
    -i, --instance-id INSTANCE_ID

Exemplo

Este exemplo cria um token de importação e mostra os resultados.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# show the created token
$ ibmcloud kp import-token show

{
    "nonce": "8rf2ldP/zWm1Tjrb",
    "payload":
        "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}

# extract the nonce that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["nonce"]'

8rf2ldP/zWm1Tjrb

# extract the public key that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["payload"]'

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp instance policies

Recupere detalhes sobre políticas de instância, como allowed networks (public-and-private ou private-only), allowed IP políticas, key create import acesso, métricas e exclusão de autorização dupla (a exclusão de uma chave requer uma autorização de dois usuários).

ibmcloud kp instance policies
    [-i, --instance-id     INSTANCE_ID]
    [-p, --allowed-ip]
    [-a, --allowed-network]
    [-d, --dual-auth-delete]
    [-k, --key-create-import-access]
    [-m, --metrics]
    [-o, --output          OUTPUT]
    [-r, --rotation]

Exemplo

O exemplo mostra como usar o comando e os resultados. Caso o serviço não tenha resultados para a consulta, será retornada uma matriz vazia ([]).

# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T16:17:52Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           true
Network Allowed   public-and-private

# disable the instance allowed-network policy
$ ibmcloud kp instance policy-update allowed-network --disable

Updating instance policy...
OK

# list the instance policies - the policy exists and it's disabled
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T16:20:08Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           false
Network Allowed   public-and-private

# list the instance policies and show the output as JSON
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T16:17:52Z",
    "lastUpdated": "2020-06-22T16:20:08Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "allowedNetwork",
    "policy_data": { "enabled": false, "attributes": {   "allowed_network": "public-and-private" }
    }
  }
]

Parâmetros necessários

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -p, --allowed-ip

    Mostrar a política da instância para “IPs permitidos”.

  • -a, --allowed-network

    Mostrar a política de instância para "rede permitida".

  • -d, --dual-auth-delete

    Exibir a política da instância para dual authorization delete.

  • -k, --key-create-import-access

    Recupera os detalhes da política de acesso de importação de criação da chave da instância

  • -m, --metrics

    Recupera os detalhes da política de métricas da instância.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -r, --rotation

    Recupera detalhes da política de rotação da instância.

kp instance policy-update allowed-network

Atualize a política de uma instância e defina a rede permitida como public-and-private ou private-only.

A política allowed-network impede uma instância de obter solicitações de redes públicas ou privadas.

Para instâncias existentes, a política de acesso à rede é reforçada após ela ser configurada.

Para obter mais informações, consulte Gerenciando políticas de acesso à rede.

ibmcloud kp instance policy-update allowed-network
    -i, --instance-id  INSTANCE_ID
    -d, --disable OR
    -e, --enable
    -t, --network-type NETWORK_TYPE

Exemplo

Este exemplo configura a política de "rede permitida" para "pública e privada".

# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T18:17:32Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           true
Network Allowed   public-and-private

Parâmetros necessários

  • -d, --disable

  • -e, --enable

    Desativar ou ativar a política de acesso à rede. É obrigatório que haja uma opção.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -t, --network-type

    Especificar o tipo de acesso à rede permitido. As opções são public-and-private ou private-only.

kp instance policy-update dual-auth-delete

Use a política dual-auth-delete para excluir com segurança as chaves de criptografia. Ao excluir uma chave, você fragmenta o seu conteúdo e os dados associados. Qualquer dado criptografado pela chave torna-se inacessível.

A exclusão de uma chave que tenha uma política de autorização dupla requer uma autorização de dois usuários.

Para obter mais informações, consulte Uso de políticas de autorização dupla para a exclusão de chaves.

Notas

A exclusão de autorização dupla para uma instância é diferente da exclusão de autorização dupla para chaves.

Uma vez ativado o dual-auth-delete para uma chave, não é possível desativá-lo ou removê-lo. Deve-se aguardar 7 dias para a expiração da política.

A exclusão de autorização dupla para uma instância pode ser ativada ou desativada a qualquer momento.

Se uma chave tiver uma política dual-auth-delete, mudar a política de instância não mudará nenhuma política de chave existente.

Ao mudar a política de instância, novas chaves são aplicadas a ela.

ibmcloud kp instance policy-update dual-auth-delete
    -i, --instance-id INSTANCE_ID
    -d, --disable OR
    -e, --enable

Exemplos

Estes são exemplos de kp instance policy-update dual-auth-delete.

Exemplo 1

Este exemplo ativa a política de exclusão de autorização dupla.

# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T18:45:14Z",
    "lastUpdated": "2020-06-22T18:45:14Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "dualAuthDelete",
    "policy_data": { "enabled": true
    }
  }
]

# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T18:45:14Z",
    "lastUpdated": "2020-06-22T18:51:33Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "dualAuthDelete",
    "policy_data": { "enabled": false
    }
  }
]

Exemplo 2

Este exemplo ativa a política de exclusão de autorização dupla e cria uma nova chave para mostrar como uma nova chave herda a política de instância.

A desativação da política de autorização dupla para uma instância não muda a política para as chaves existentes. A política de instância se aplica às novas chaves criadas após a política ser atualizada.

# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable

Updating instance policy...
OK

# create a new key
$ ibmcloud kp key create my-protected-key

Creating key: 'my-protected-key', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Key ID                                 Key Name
6a8a129b-0cd4-4667-ba57-b355a125a7ca   my-protected-key

# list the policies for the key - dual-auth-delete is
# enabled because the key inherits the instance policy
$ ibmcloud kp key policies 6a8a129b-0cd4-4667-ba57-b355a125a7ca --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T19:13:00Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# attempt to delete the key - this fails
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca

Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='8ad33eb2-7bbf-4b7a-a02e-221959920342',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable

Updating instance policy...
OK

# attempt to delete the key - this fails because the key policy
# does not change when the instance policy is updated
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca

Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='cbc0d18b-a816-45ab-af6a-b8e18dc3e628',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
    FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Parâmetros necessários

  • -d, --disable

  • -e, --enable

    Desativar ou ativar a política de autorização dupla. É obrigatório que haja uma opção.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key alias-create

Cria um alias para uma chave e exibe o resultado no formato JSON. Os aliases podem ser usados como referência em métodos que aceitam uma chave ID Cada alias é único apenas dentro da instância em questão e não é reservado em todo o serviço Key Protect. Cada chave pode ter até cinco aliases. Não há limite para o número de aliases por instância. O comprimento do alias pode ser entre 2 a 90 caracteres, inclusive.

Um alias deve ser alfanumérico e não pode conter espaços ou caracteres especiais além de '-' or '_'. Além disso, o alias não pode ser um UUID versão 4 e não deve ser um nome reservado do Key Protect: allowed_ip, key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions.

ibmcloud kp key alias-create KEY_ID -a KEY_ALIAS
    -i, --instance-id     INSTANCE_ID
    -a, --alias           KEY_ALIAS
    [-o, --output         OUTPUT]

Exemplos

Este é um exemplo de kp key alias-create.

Exemplo

Crie um alias de chave.

# create a key alias
$ ibmcloud kp key alias-create 24203f96-b134-440e-981a-a24f2d432256 my-alias

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Alias
24203f96-b134-440e-981a-a24f2d432256   my-alias

Parâmetros necessários

  • KEY_ID

    O ID da chave que você deseja modificar. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • KEY_ALIAS

    O alias, ou identificador alternativo, da chave que você deseja modificar. O identificador deve ser: alfanumérico e sem espaços ou caracteres especiais além de '-' ou '_' e não pode ser um UUID versão 4.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

kp key cancel-delete

Uma chave com uma política dual-auth-delete requer autorização de dois usuários administrativos para excluir a chave.

Este comando (kp key cancel-delete) cancela ou remove uma autorização prévia.

O comando kp key schedule-delete é a "autorização" para excluir a chave.

Siga este processo para excluir uma chave com uma política dual-auth-delete.

  1. Crie uma chave e ative a política dual-auth-delete

  2. O usuário 1 planeja (autoriza) uma exclusão de chave com o Comando kp key schedule-delete

  3. O usuário 2 planeja (autoriza) uma exclusão de chave

  4. A chave é excluída após a segunda schedule-delete ser executada, a qual é suportada na interface com o usuário, na API e na CLI

  5. Se uma segunda autorização não ocorrer em até 7 dias, a chave retornará ao seu status padrão

Há duas maneiras de ativar a política dual-auth-delete:

  • Configure a política para uma única chave usando kp key policy-update dual-auth-delete
  • Configure a política para a instância usando kp instance policy-update dual-auth-delete; todas as chaves criadas após a política da instância ser ativada herdam a configuração da política da instância
ibmcloud kp key cancel-delete KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID

Exemplo

Este é um exemplo de cancelamento de uma exclusão de chave planejada anteriormente.

# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T21:29:10Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# cancel a previously scheduled key delete
$ ibmcloud kp key cancel-delete $KEY_ID

Cancelling key for deletion...
OK

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja excluir. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

kp key create

Criar uma chave raiz na instância do Key Protect que você especificar ou importar a sua própria chave

As chaves raiz devem ter 16, 24 ou 32 bytes de comprimento; correspondentes a 128, 192 ou 256 bits.

ibmcloud kp key create KEY_NAME
        -i, --instance-id     INSTANCE_ID
    [--key-ring                KEY_RING_ID]
    [-k, --key-material    KEY_MATERIAL]
    [-n, --encrypted-nonce NONCE]
    [-o, --output          OUTPUT]
    [-s, --standard-key]
    [-v, --iv              IV]
    [-D, --description     DESCRIPTION]

Exemplos

Estes são exemplos de kp key create.

Exemplo 1

Crie uma chave raiz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
24203f96-b134-440e-981a-a24f2d432256   my-root-key

Exemplo 2

Crie uma chave raiz e mostre a saída JSON.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "24203f96-b134-440e-981a-a24f2d432256",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:24203f96-b134-440e-981a-a24f2d432256"
}

Exemplo 3

Crie uma chave raiz por meio de um valor codificado em Base64.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL

Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
5f9eef2d-53b4-42e8-8b56-c2970255210a   my-base64-root-key

Exemplo 4

Crie uma chave raiz usando um token de importação.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=

# capture the encrypted key material
$ ENCRYPTED_KEY=qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ==   efQgA8xBeyuBy39D

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ==
$ IV=efQgA8xBeyuBy39D

# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV

Creating key: 'my-imported-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
4241a9b3-0ee0-4cfd-b0f3-fd80505fb675   my-imported-root-key

Exemplo 5

Crie uma chave padrão.

# create a standard key
$ ibmcloud kp key create my-standard-key -s

Creating key: 'my-standard-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
12d3f3a4-aea5-4832-8339-fa14dbffd935   my-standard-key

Exemplo 6

Crie uma chave padrão, que é usada como uma área segura para credenciais.

Qualquer cadeia codificada em base64 pode ser importada como uma chave padrão. Este exemplo mostra como armazenar credenciais, não apenas chaves de criptografia, no Key Protect.

As chaves padrão podem ter até 7.500 bytes de tamanho antes da codificação em base64.

# create a file with your credentials
$ cat credentials.json

{
    "host": "localhost",
    "database": "dev-backup",
    "username": "my-username",
    "password": "my-password"
}

# encode the credentials (or any string) to a base64 string
$ ENCODED=$(base64 -i credentials.json)

$ echo $ENCODED

ewoJImhvc3QiOiAibG9jYWxob3N0IiwK...<redacted>...cGFzc3dvcmQiCn0K

# create a new key that contains the base64-encoded credentials
$ ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json

# OR... CAPTURE THE KEY_ID
$ KEY_ID=$(ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json | jq -r '.["id"]')

{
    "id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
    "name": "credentials-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": true,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
    "deleted": false
}

# retrieve the base64-encoded payload
$ ibmcloud kp key show $KEY_ID --output json

# OR... CAPTURE THE PAYLOAD
$ PAYLOAD=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["payload"]')

{
    "id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
    "name": "credentials-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-08-18T16:13:08Z",
    "lastUpdateDate": "2020-08-18T16:13:08Z",
    "extractable": true,
    "payload": "ewoJImhvc3QiOiAibG9jYWxob3N0IiwKCSJkYXRhYmFzZSI6ICJkZXYtYmFja3VwIiwKCSJ1c2VybmFtZSI6ICJteS11c2VybmFtZSIsCgkicGFzc3dvcmQiOiAibXktcGFzc3dvcmQiCn0=",
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
    "deleted": false,
    "dualAuthDelete": {
        "enabled": false
      }
}

# decode the payload to get the original string (credentials)
$ echo $PAYLOAD | base64 -d

{
    "host": "localhost",
    "database": "dev-backup",
    "username": "my-username",
    "password": "my-password"
}

Exemplo 7

Crie uma chave raiz com um alias e, em seguida, use esse alias para identificar a chave para mostrar os detalhes da chave.

# create a root key with an alias
$ ibmcloud kp key create root-key-with-alias -a example-alias --output json

{
    "id": "b3660416-4186-4587-b528-484886a4731b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "aliases": [
        "example-alias"
    ],
    "keyRingID": "default",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
    "deleted": false
}

# show key details using the alias as identifier
$ ibmcloud kp key show example-alias --output json

{
    "id": "b3660416-4186-4587-b528-484886a4731b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2022-06-09T21:21:55Z",
    "lastUpdateDate": "2022-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2022-06-09T21:21:55Z"
    },
    "aliases": [
        "example-alias"
    ],
    "keyRingID": "default",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
    "deleted": false,
    "dualAuthDelete": {
        "enabled": false
    }
}

Exemplo 8

Adicione uma descrição a uma chave. Por exemplo, uma frase curta usada para descrever o propósito da chave.

ibmcloud kp key create KEY_NAME -i 40f2a13c-780e-4641-bea5-e166e5bb5a9f -D ""description of the key""

Parâmetros necessários

  • KEY_NAME

    Um identificador exclusivo e legível para designar à sua chave.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -k, --key-material

    Se você tiver gerado uma chave, este será o material de chave codificado em base64 que é armazenado e gerenciado no serviço.

    As chaves raiz devem ter 16, 24 ou 32 bytes de comprimento; correspondentes a 128, 192 ou 256 bits. A chave deve ser codificada em Base64.

    As chaves padrão podem ter até 7.500 bytes de tamanho. A chave deve ser codificada em Base64.

    Se você estiver criando uma chave usando um token de importação, então, esta será a chave criptografada do processo kp import-token key-encrypt.

    Para gerar uma nova chave, omita o parâmetro -k, --key-material.

  • -n, --encrypted-nonce

    Usado com tokens de importação. O valor nonce criptografado que verifica a sua solicitação de importação de uma chave para o Key Protect. Esse valor deve ser criptografado usando o material de chave que você importa para o serviço. Consulte ibmcloud kp import-token --help.

    Para recuperar um nonce, use ibmcloud kp import-token show. Em seguida, criptografe o valor executando ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -s, --standard-key

    Configure o parâmetro somente se você desejar criar uma chave padrão. Para criar uma chave raiz, omita o parâmetro --standard-key.

  • -v, --iv

    Usado com tokens de importação. O vetor de inicialização (IV) gerado quando você criptografa um nonce. O valor IV é necessário para decriptografar o valor nonce criptografado fornecido ao fazer uma solicitação de importação de chave para o serviço.

    Para gerar um IV, criptografe o nonce executando ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

  • -D, --description

    Permite que uma descrição seja adicionada à chave. Por exemplo, uma frase curta usada para descrever o propósito da chave.

kp key create-key-with-policy-substituições

Crie uma chave com políticas somente para a chave nomeada que substituirá quaisquer políticas de instância aplicáveis...

ibmcloud kp key create-key-with-policy-overrides KEY_NAME
    -i, --instance-id                         INSTANCE_ID
    [-a, --aliases                            ALIAS]
    [-d, --dual-auth-delete-policy-enabled    KEY_RING_ID]
    [--key-ring                               KEY_RING_ID]
    [-k, --key-material                       KEY_MATERIAL]
    [-m, --rotation-interval-month            VALUE]
    [-n, --encrypted-nonce                    NONCE]
    [-o, --output                             OUTPUT]
    [-s, --standard-key]
    [-v, --iv                                 IV]

Exemplo

Crie uma chave raiz que permita uma política de rotação com um intervalo de 2 meses (cada "mês" é avaliado em 30 dias, resultando em um intervalo de rotação de 60 dias)

% ibmcloud kp key create-key-with-policy-overrides test-key -m 2 -r
Creating key with policy overrides: 'test-key', in instance: '47377f07-8721-2O47-f396-ef1982c1e96e'...

OK
Key ID                                 Key Name   
076df396-4c90-e008-bf20-f1bb672d465b   test-key

# List policies
% ibmcloud kp key policies 076df396-4c90-e008-bf20-f1bb672d465b
Retrieving policy details for key ID: 076df396-4c90-e008-bf20-f1bb672d465b...
OK

Created By      IBMid-xxxxnnnnnxxx   
Creation Date   2022-10-27T17:48:20Z   
Last Updated    2022-10-27T17:48:20Z   
Updated By      IBMid-xxxxnnnnnxxx   
Policy Type     Rotation   
Interval        2   
Enabled         true

Parâmetros necessários

  • KEY_NAME

    Um identificador exclusivo e legível para designar à sua chave.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -a, --aliases

    Nomes de alias alfanuméricos legíveis por humanos, que variam de 2 a 90 caracteres designados à sua chave O alias não pode conter espaços ou caracteres especiais diferentes de sublinhados e traços. Um máximo de 5 aliases é permitido por chave

  • -d, --dual-auth-delete-policy-enabled

Ativa a política de exclusão de auth dual para uma chave

  • -k, --key-material

    Se você tiver gerado uma chave, este será o material de chave codificado em base64 que é armazenado e gerenciado no serviço.

    As chaves raiz devem ter 16, 24 ou 32 bytes de comprimento; correspondentes a 128, 192 ou 256 bits. A chave deve ser codificada em Base64.

    As chaves padrão podem ter até 7.500 bytes de comprimento. A chave deve ser codificada em Base64.

    Se você estiver criando uma chave usando um token de importação, então, esta será a chave criptografada do processo kp import-token key-encrypt.

    Para gerar uma nova chave, omita o parâmetro -k, --key-material.

  • -n, --encrypted-nonce

    Usado com tokens de importação. O valor nonce criptografado que verifica a sua solicitação de importação de uma chave para o Key Protect. Esse valor deve ser criptografado usando o material de chave que você importa para o serviço. Consulte ibmcloud kp import-token --help.

    Para recuperar um nonce, use ibmcloud kp import-token show. Em seguida, criptografe o valor executando ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -m, --rotation-interval-month

Especifica o intervalo de tempo de rotação (em meses) para uma chave. O valor padrão é -1.

  • -s, --standard-key

    Configure o parâmetro somente se você desejar criar uma chave padrão. Para criar uma chave raiz, omita o parâmetro --standard-key.

  • -v, --iv

    Usado com tokens de importação. O vetor de inicialização (IV) gerado quando você criptografa um nonce. O valor IV é necessário para decriptografar o valor nonce criptografado fornecido ao fazer uma solicitação de importação de chave para o serviço.

    Para gerar um IV, criptografe o nonce executando ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key delete

Exclua uma chave que está armazenada em seu serviço do Key Protect.

ibmcloud kp key delete KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-f, --force]
    [-o, --output      OUTPUT]

Exemplos

Estes são exemplos de kp key delete.

Exemplo 1

Exclua uma chave raiz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key

# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f

Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key                 2020-05-05 19:58:02 +0000 UTC   Key does not expire

# delete the key
$ ibmcloud kp key delete 8635b804-9966-4918-a16b-d561fdbf181f

Deleting key: 8635b804-9966-4918-a16b-d561fdbf181f, from instance: 390086ac-76fa-4094-8cf3-c0829bd69526...
OK
Deleted Key
8635b804-9966-4918-a16b-d561fdbf181f

Exemplo 2

Exclua uma chave raiz e mostre a saída JSON.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

# show key details
$ ibmcloud kp key show 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-05T20:03:00Z",
    "lastUpdateDate": "2020-05-05T20:03:00Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

# delete the key
$ ibmcloud kp key delete 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

Exemplo 3

Exclua uma chave raiz que esteja registrada com outro recurso em nuvem.

# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=9d4353d8-6b85-4689-90dd-1ccfb4a275ab

# create a Key Management Service (KMS) instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b0d84b32-09d0-4314-8049-da78e3b9ab6f

# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=79375168-2d74-49df-98aa-3e727410fa71

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

{
    "id": "52a9d772-8982-4620-bfb4-b070dd812a0c",
    "name": "my-cos-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b0d84b32-09d0-4314-8049-da78e3b9ab6f:key:52a9d772-8982-4620-bfb4-b070dd812a0c"
}

# capture the KP root key id
$ MY_COS_KEY_ID=52a9d772-8982-4620-bfb4-b070dd812a0c

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "52a9d772-8982-4620-bfb4-b070dd812a0c",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab::",
    "creationDate": "2020-06-15T20:41:23Z",
    "lastUpdated": "2020-06-15T20:41:23Z",
    "keyVersion": { "id": "52a9d772-8982-4620-bfb4-b070dd812a0c", "creationDate": "2020-06-15T20:36:46Z"
    }
  }
]

# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID

Deleting key: 52a9d772-8982-4620-bfb4-b070dd812a0c, from instance: b0d84b32-09d0-4314-8049-da78e3b9ab6f...
FAILED
kp.Error:
    correlation_id='c27b7948-4a1f-4cbd-8770-cb3616888e27',
    msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'

# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json

{
    "id": "52a9d772-8982-4620-bfb4-b070dd812a0c"
}

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja excluir. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -f, --force

    Exclua uma chave com force, que é usado para excluir uma chave que tenha "registros". Os registros são associações entre chaves raiz e outros recursos em nuvem, como depósitos do Cloud Object Storage (COS) ou implementações de bancos de dados de nuvem.

    Para obter mais informações, consulte kp registrations

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key disable

O comando kp key disable desativa uma chave raiz e revoga temporariamente o acesso aos dados associados da chave na nuvem.

Como um administrador, poderá ser necessário desativar uma chave raiz temporariamente se você suspeitar de um possível risco à segurança, comprometimento ou violação de seus dados.

A desativação de uma chave raiz suspende suas operações de criptografia e decriptografia. Depois de confirmar que um risco à segurança não está mais ativo, é possível restaurar o acesso aos seus dados ativando a chave raiz desativada.

Ao desativar uma chave raiz que anteriormente estava ativada, a chave passa do estado Active (valor 1) para Suspended (valor 2).

Para desabilitar uma chave raiz, deve-se atribuir uma função de acesso de serviço Gerente para a instância ou chave. 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.

Se você estiver usando um Serviço de nuvem integrado que suporte a revogação de acesso a uma chave raiz desativada, o serviço poderá levar até um máximo de 4 horas antes de o acesso aos dados associados da chave raiz ser revogado.

Após a revogação do acesso aos dados associados, um disable event é exibido na interface do usuário do site IBM Cloud Logs. O disable event indica que a chave foi revogada (e agora está desativada) e não pode ser usada para operações de criptografia e decriptografia.

ibmcloud kp key disable KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID
    [--key-ring         KEY_RING_ID]

Exemplos

Estes são exemplos de kp key disable.

Exemplo 1

Crie uma chave raiz, desative-a, verifique o estado da chave (suspenso), ative a chave raiz e verifique o estado da chave (ativo).

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Exemplo 2

Crie uma chave raiz, desative-a e tente usar a chave raiz para agrupar outra chave.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

63d044d9-b38b-4803-85ef-ed9a1e5087c2

# disable the root key
$ ibmcloud kp key disable $KEY_ID

Disabling key: '63d044d9-b38b-4803-85ef-ed9a1e5087c2', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

BNxtU9B4kXOZA45Cnyz3wOh4J77TakTXI1n2rj0ZiMc=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
# this should fail (the root key is disables)
$ ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json

FAILED
kp.Error:
    correlation_id='c2edbdad-7e62-4690-8fcc-10515ade9913',
    msg='Conflict: Action could not be performed on key. Please see "reasons" for more details.',
    reasons='[KEY_ACTION_INVALID_STATE_ERR: Key is not in a valid state -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Exemplo 3

Crie uma chave raiz com um alias, use esse alias para identificar a chave a ser desativada, verifique o estado da chave (suspenso), em seguida, ative a chave raiz e verifique o novo estado da chave (ativo).

# create a root key
$ ibmcloud kp key create root-key-with-alias -a example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "aliases": [
        "example-alias"
    ],
    "deleted": false,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details using the alias as identifier - a state of "1" is "active"
$ ibmcloud kp key show example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    ...
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key identified by alias
$ ibmcloud kp key disable example-alias-1

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja excluir. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key enable

Ao ativar uma chave raiz que anteriormente estava desativada, a chave passa do estado Suspended (valor 2) para Active (valor 1). Esta ação restaura as operações de criptografia e decriptografia da chave.

Se você está usando um Cloud Service integrado que suporta a restauração do acesso a uma chave raiz desativada, o serviço pode levar até um máximo de quatro horas antes de o acesso aos dados associados da chave raiz ser restaurado.

Após a restauração do acesso aos dados associados, um enable event é exibido na interface do usuário do site IBM Cloud Logs. O enable event indica que a chave foi restaurada (e agora está ativada) e pode ser usada para operações de criptografia e decriptografia, como agrupar, desagrupar e reagrupar.

ibmcloud kp key enable <KEY_ID_OR_ALIAS> -i <INSTANCE_ID> [ --key-ring KEY_RING_ID]

Exemplos

Este é um exemplo de kp key enable.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# enable the key
$ ibmcloud kp key enable 264fadc3-7667-4b25-916e-5825fe70de0b

Enabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:31:44Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja excluir. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

políticas de chave kp

Recupera detalhes sobre uma política de chave, tais como o intervalo de rotação automática da chave.

ibmcloud kp key policies KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-d, --dual-auth]
    [-o, --output      OUTPUT]
    [-r, --rotation]

Exemplo

Este exemplo lista as políticas para uma chave raiz.

As políticas de chave são exclusão de autorização dupla e rotação.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

c024c2b3-2093-46e5-aabb-fdf8cbc14e44

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:34:39Z",
    "lastUpdateDate": "2020-06-18T20:34:39Z",
    "keyVersion": {
        "id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
    "creationDate": "2020-06-18T20:34:39Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c024c2b3-2093-46e5-aabb-fdf8cbc14e44"
}

# update the policy and rotate the key every 2 months
$ ibmcloud kp key policy-update rotation $KEY_ID -m 2 --output json

{
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:35:41Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
    "lastUpdateDate": "2020-06-18T20:35:41Z",
    "updatedBy": "user id ...<redacted>...",
    "rotation": {
        "interval_month": 2
      }
}

# list the policies
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:35:41Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
    "lastUpdateDate": "2020-06-18T20:35:41Z",
    "updatedBy": "user id ...<redacted>...",
    "rotation": { "interval_month": 2
    }
  }
]

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja consultar. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -d, --dual-auth

    Mostrar políticas que têm uma política dual-auth-delete.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -r, --rotation

    Mostrar políticas que têm uma política rotation.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key policy-update dual-auth-delete

É possível usar o Key Protect para excluir com segurança chaves de criptografia usando um processo de autorização dupla. Ao excluir uma chave, você fragmenta o seu conteúdo e os dados associados. Qualquer dado criptografado pela chave torna-se inacessível.

A exclusão de uma chave que tenha uma política de autorização dupla requer uma autorização de dois usuários. Com o API do Key Protect, é possível fornecer a primeira autorização, configurando a exclusão da chave. Em seguida, um usuário diferente fornece uma segunda autorização usando a GUI ou a API para excluir a chave.

ibmcloud kp key policy-update dual-auth-delete KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
        -e, --enable
    [--key-ring          KEY_RING_ID]
    [-o, --output      OUTPUT]

Exemplo

Este exemplo ativa a política de exclusão de autorização dupla.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

d887bfe8-5166-4dad-af32-7e3055ca1873

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:07:50Z",
    "lastUpdateDate": "2020-06-19T16:07:50Z",
    "keyVersion": {
        "id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
    "creationDate": "2020-06-19T16:07:50Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:d887bfe8-5166-4dad-af32-7e3055ca1873"
}

# enable the dual authorization policy
$ ibmcloud kp key policy-update dual-auth-delete $KEY_ID --enable --output json

{
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:08:59Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
    "lastUpdateDate": "2020-06-19T16:08:59Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": {
        "enabled": true
      }
}

# list the policies
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:08:59Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
    "lastUpdateDate": "2020-06-19T16:08:59Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# this should fail (the key has a dual authorization policy)
$ ibmcloud kp key delete $KEY_ID_OR_ALIAS

Deleting key: d887bfe8-5166-4dad-af32-7e3055ca1873, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='fe0db627-1726-4827-a9d2-c21d728e1c92',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted.
        Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja consultar. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

  • -e, --enable

    Uma vez ativada a política de exclusão de autorização dupla, não é possível desativá-la. Não é possível excluir uma chave sem duas autorizações (duplas). O processo deve ser concluído em até 7 dias, caso contrário, a política de autorização dupla é automaticamente cancelada, o que significa que a chave pode ser excluída por qualquer pessoa que tenha autorização (não são necessárias duas autorizações).

    Se você tiver ativado a política de autorização dupla acidentalmente e quiser excluir a chave, será possível disable a chave (usando o comando kp key disable) e aguardar 7 dias para que a política de autorização dupla expire. Nesse momento, será possível excluir a chave.

    Não é possível excluir a instância do Key Protect enquanto suas chaves estão ativas. Uma chave com uma política de autorização dupla é uma chave ativa.

Parâmetros opcionais

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key policy-update rotation

Ao configurar uma política de rotação automática para uma chave raiz, você encurta o tempo de vida da chave em intervalos regulares e limita a quantidade de informações que são protegidas por essa chave. Os usuários também podem ativar ou desativar a política de rotação de chaves em uma chave

É possível criar uma política de rodízio apenas para as chaves raiz geradas no Key Protect. Se você tiver importado a chave raiz inicialmente, um novo material de chave codificado em base64 deverá ser fornecido para girar a chave. Para obter mais informações, consulte Girando chaves raiz on demand.

ibmcloud kp key policy-update rotation KEY_ID|KEY_ALIAS
[--enable | --disable] [-m MONTHLY_INTERVAL] [-o FORMAT]
[--key-ring KEY_RING_ID]

Exemplos

As políticas de rotação podem ser aplicadas no momento da criação da chave ou depois que uma chave tiver sido criada No primeiro exemplo, simplesmente criamos a chave sem uma política de rotação:

# create a root key

ibmcloud kp key create rotateKeyEnableDisableDemo

Creating key: 'rotateKeyEnableDisableDemo', in instance: '5ecfe306-d4at-48c0-ab07-b5c5bc751534'...
OK
Key ID                                 Key Name   
4d5540bd-3235-4a46-a8af-974f7ed6558a   rotateKeyEnableDisableDemo   
---------------------------------------------------------------------------------------------------------------------------------------------------
# set a rotation policy of three months

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show the rotation policy for this key

ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 2
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# update the policy to three months

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# disable the policy for this key

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -d --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:52:52Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": false,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show that the policy has been disabled

ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:52:52Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": false,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja consultar. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

Parâmetros opcionais

  • -m, --monthly-interval

    Configure o intervalo de rotação de chave em meses. O intervalo de rotação deve ser de 1 a 12 meses.

  • -e, --enable ou -d, --disable

    Por padrão, a política de rotação de chave está ativada Se o usuário quiser desativar ou ativar a política, ele poderá usar -d(--disable) ou -e(--enable), respectivamente.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key restore

O Key Protect pode restaurar uma chave raiz excluída anteriormente, o que restaura o acesso aos seus dados associados na nuvem.

Como administrador, você talvez precise restaurar uma chave raiz que foi importada para o Key Protect para acessar os dados anteriormente protegidos pela chave.

Quando restaurada, uma chave passa do estado Destroyed (valor 5) para Active (valor 1), restaurando o acesso aos dados anteriormente criptografados pela chave.

É possível restaurar uma chave excluída dentro de 30 dias de sua exclusão. Esta capacidade está disponível apenas para chaves raiz que foram criadas com um key material.

É possível restaurar apenas as chaves raiz que foram criadas com um key material, usando kp key create com a opção -k, --key-material Não é possível restaurar uma chave raiz caso a opção --key-material não tenha sido especificada.

Se você desejar restaurar uma chave raiz excluída, deverá salvar o key material que foi usado para criar a chave raiz Não é possível restaurar uma chave excluída sem fornecer a key material original.

ibmcloud kp key restore KEY_ID_OR_ALIAS
        -i, --instance-id     INSTANCE_ID
        -k, --key-material    KEY_MATERIAL
    [--key-ring          KEY_RING_ID]
    [-n, --encrypted-nonce ENCRYPTED_NONCE]
    [-v, --iv              IV]

Exemplos

Estes são exemplos de kp key restore.

Exemplo 1

Este exemplo cria uma chave raiz usando um material de chave, exclui a chave, em seguida, restaura-a.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

$ echo $KEY_MATERIAL

4EZBMBMkZ87z4nvYsQH21DC5+wslgWhHRiU8bmqJ4CY=

# create a root key from a base64-encoded value
$ KEY_ID=$(ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL --output json | jq -r '.["id"]')

$ echo $KEY_ID

62ad0cd5-70a4-4c4d-9d87-5f4db620b120

# delete the root key
$ ibmcloud kp key delete $KEY_ID

Deleting key: 62ad0cd5-70a4-4c4d-9d87-5f4db620b120, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
62ad0cd5-70a4-4c4d-9d87-5f4db620b120

# list keys - verify the key was deleted
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID   Key Name

# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $KEY_MATERIAL --output json

{
    "id": "62ad0cd5-70a4-4c4d-9d87-5f4db620b120",
    "name": "my-base64-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:62ad0cd5-70a4-4c4d-9d87-5f4db620b120"
}

# list keys - verify the key was restored
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
62ad0cd5-70a4-4c4d-9d87-5f4db620b120   my-base64-root-key

Exemplo 2

Este fluxo de trabalho cria uma chave raiz usando um token de importação, exclui a chave, em seguida, restaura-a.

Esse é um processo de duas etapas.

  1. Crie uma chave raiz usando um token de importação e, em seguida, exclua a chave

  2. Crie um token de importação, que é necessário para restaurar a chave, e restaure a chave

A criação de uma chave raiz por meio de um token de importação tem um prazo limite (o opção -e, --expiration ). Ao restaurar uma chave, é necessário um token de importação. Por isso, é necessário passar por um processo de token de importação para restaurar uma chave.

Etapa 1 - crie uma chave raiz usando um token de importação e, em seguida, exclua a chave

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-06-18 12:21:59 +0000 UTC   2020-06-18 12:26:59 +0000 UTC   10               10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

$ echo $KEY_MATERIAL

sADDNDE3pcJlbYXu2z5QFORvsxV1PosRiAPERrhYJdk=

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

$ echo $NONCE

/QhqOsqlVPC+ZPWz

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

$ echo $PUBLIC_KEY

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=

# capture the encrypted key material
$ ENCRYPTED_KEY=C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ==   7BiIpcbGxXBzuXZP

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ==
$ IV=7BiIpcbGxXBzuXZP

# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ KEY_ID=$(ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json | jq -r '.["id"]')

$ echo $KEY_ID

c42c6f2c-8b67-4016-b2c3-99fba9490f5d

# list keys - verify the key was created
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d   my-imported-root-key

# delete the root key
$ ibmcloud kp key delete $KEY_ID

Deleting key: c42c6f2c-8b67-4016-b2c3-99fba9490f5d, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
c42c6f2c-8b67-4016-b2c3-99fba9490f5d

# list keys - verify the key was deleted
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID   Key Name

Etapa 2 - crie um token de importação, que é necessário para restaurar a chave, e restaure a chave

# NOTE: "kp key restore" requires an import token to complete the process,
# if you follow this example, the previously created import token may still
# exist and the example works; otherwise, if the import token has expired then
# you need to create a new import token prior to restoring the key

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-06-18 12:30:54 +0000 UTC   2020-06-18 12:35:54 +0000 UTC   10               10

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

$ echo $NONCE

N3x8F0ihAZ51nj6M

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

$ echo $PUBLIC_KEY

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=

# capture the encrypted key material
$ ENCRYPTED_KEY=Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==   N6oLJnUqaKF3v5Sd

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==
$ IV=N6oLJnUqaKF3v5Sd

# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json

{
    "id": "c42c6f2c-8b67-4016-b2c3-99fba9490f5d",
    "name": "my-imported-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c42c6f2c-8b67-4016-b2c3-99fba9490f5d"
}

# list keys - verify the key was restored
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d   my-imported-root-key

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias “ v4 ” da chave que você deseja restaurar.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -k, --key-material

    Deprecated O material de chave de uma chave codificada em base64 previamente importada.

    Se você tiver criado a chave raiz usando um import token, o valor da opção -k, --key-material será a chave de material criptografada. Veja o exemplo 2, que usa um token de importação para criar a chave raiz e usa um token de importação para restaurar a chave raiz.

  • -n, --encrypted-nonce

    Deprecated Verifique uma solicitação para importar uma chave fornecendo um nonce criptografado.

    Para obter mais informações, consulte kp import-token nonce-encrypt.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -v, --iv

    Deprecated Forneça o vetor de inicialização (IV) que é gerado após a criptografia de um nonce.

    Para obter mais informações, consulte kp import-token nonce-encrypt.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key-rings

Liste os conjuntos de chaves associados à instância kp.

Exemplo

O exemplo mostra o uso do plug-in da CLI para listar conjuntos de chaves apropriados para a instância fornecida.

ibmcloud kp key-rings -i <INSTANCE_ID>

Parâmetros necessários

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring create

Crie um conjunto de chaves dentro de uma instância kp.

Exemplo

O exemplo mostra o uso do plug-in da CLI para criar um conjunto de chaves na instância fornecida.

ibmcloud kp key-ring create KEY_RING_ID -i <INSTANCE_ID>

Parâmetros necessários

  • KEY_RING_ID

    A referência alfanumérica com 2 ou mais caracteres e com 100 ou menos para o conjunto de chaves.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring delete

Exclua um conjunto de chaves dentro de uma instância kp.

Exemplo

O exemplo mostra o uso do plug-in da CLI para excluir um conjunto de chaves na instância fornecida. Observe que a força (-f) foi adicionada.

ibmcloud kp key-ring delete KEY_RING_ID -i <INSTANCE_ID> -f

Parâmetros necessários

  • KEY_RING_ID

    A referência alfanumérica com 2 ou mais caracteres e com 100 ou menos para o conjunto de chaves.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -f, --force

    Forçar exclui um conjunto de chaves que ainda possui chaves no estado Destruído . Não exclui os conjuntos de chaves que possuem chaves em qualquer outro estado Se um conjunto de chaves contiver chaves no estado Destruído e esse sinalizador não for incluído, a exclusão do conjunto de chaves falhará

kp key rotate

Gire uma chave raiz que esteja armazenada no serviço do Key Protect.

Ao girar a sua chave raiz, você substitui a chave por um novo material da chave.

Caso o Key Protect tenha criado a chave (a chave não foi criada com o parâmetro -k), o Key Protect criará uma nova chave. Não é possível especificar kp key rotate com o -k .

Se você criou uma chave e forneceu o material da chave ( kp key create key-name -k $KEY_MATERIAL), então deverá fornecer um novo material da chave ao fazer a rotação da chave (kp key rotate $KEY_ID_OR_ALIAS -k $NEW_KEY_MATERIAL)

Não é possível rotacionar uma chave do tipo “ standard ”, ou seja, uma chave criada usando o kp create key-name --standard-key .

ibmcloud kp key rotate KEY_ID_OR_ALIAS
        -i, --instance-id  INSTANCE_ID
    [--key-ring           KEY_RING_ID]
    [-k, --key-material KEY_MATERIAL]

Exemplos

Estes são exemplos de kp key rotate.

Exemplo 1

Gire uma chave raiz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad   my-root-key

# rotate the key
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad

Rotating root key...
OK

# show key details
$ ibmcloud kp key show 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad

Grabbing info for key id: 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad   my-root-key                 2020-05-06 17:25:22 +0000 UTC   Key does not expire

# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)

# Key Protect created the root key, providing a new key material will fail
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad -k $NEW_KEY_MATERIAL

Rotating root key...
FAILED

Exemplo 2

Gire uma chave de token codificada em Base64 ou importada.

Primeiro, crie uma chave raiz por meio de um valor base64 ou de um token importado.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL

Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
e55f86ab-6984-4594-ad23-3024f6440a58   my-base64-root-key

# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)

# rotate the key
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58 -k $NEW_KEY_MATERIAL

Rotating root key...
OK

# the key was created from a key material, NOT providing a new key material will fail
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58

Rotating root key...
FAILED

Exemplo 3

Este exemplo mostra como...

  1. Criar uma chave raiz

  2. Crie uma chave de criptografia de dados (DEK). Este é o plaintext

  3. Agrupe a DEK com a chave raiz. Isto cria um ciphertext

  4. Girar a chave raiz

  5. Desagrupar o texto cifrado para revelar o DEK original (texto sem formatação) e um novo texto cifrado (o novo texto cifrado é o texto sem formatação agrupado com a nova chave raiz girada)

  6. Desagrupar o novo texto cifrado para revelar o DEK original (texto sem formatação)

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5b976173-7804-4f82-acfa-bb98098bc528

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiQkFrTlJrS2Q0 ...<redacted>... ODA5OGJjNTI4In0=

# rotate the root key
$ ibmcloud kp key rotate $KEY_ID

Rotating root key...
OK

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "5b976173-7804-4f82-acfa-bb98098bc528",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-10T18:09:27Z",
    "lastUpdateDate": "2020-06-10T18:13:31Z",
    "lastRotateDate": "2020-06-10T18:13:31Z",
    "keyVersion": {
        "id": "4330715a-918b-4718-b5ca-9475a214067e",
    "creationDate": "2020-06-10T18:13:31Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5b976173-7804-4f82-acfa-bb98098bc528"
}

# unwrap the ciphertext, reveal the original DEK (plaintext),
# and see the new ciphertext (the plaintext wrapped with the rotated root key)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT --output json

{
    "Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
    "Rewrapped Plaintext": "eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0="
}

# capture the new (rewrapped) plaintext
$ NEWCIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0=

# unwrap the ciphertext and reveal the original DEK (plaintext)
$ ibmcloud kp key unwrap $KEY_ID $NEWCIPHERTEXT --output json

{
    "Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
    "Rewrapped Plaintext": ""
}

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave raiz que você deseja rotacionar.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -k, --key-material

    Para girar uma chave que foi gerada inicialmente sem um parâmetro --key-material, ou seja, kp key create my-key, omita o parâmetro --key-material.

    Se uma chave tiver sido criada com o parâmetro --key-material, especifique o novo material de chave codificado em base64 que você usa para girar uma chave raiz existente.

    Para girar uma chave que foi inicialmente importada para o serviço, forneça uma nova chave de 32 bytes (256 bits).

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key schedule-delete

Uma chave com uma política dual-auth-delete requer autorização de dois usuários administrativos para excluir a chave.

Siga este processo para excluir uma chave com uma política dual-auth-delete.

  1. Crie uma chave e ative a política dual-auth-delete

  2. O usuário 1 planeja (autoriza) uma exclusão de chave com o Comando kp key schedule-delete

  3. O usuário 2 planeja (autoriza) uma exclusão de chave

  4. A chave é excluída após a segunda schedule-delete ser executada, a qual é suportada na interface com o usuário, na API e na CLI

  5. Se uma segunda autorização não ocorrer em até 7 dias, a chave retornará ao seu status padrão

Há duas maneiras de ativar a política dual-auth-delete:

  • Configure a política para uma única chave usando kp key policy-update dual-auth-delete
  • Configure a política para a instância usando kp instance policy-update dual-auth-delete; todas as chaves criadas após a política da instância ser ativada herdam a configuração da política da instância

O comando kp key cancel-delete cancela ou remove uma autorização prévia.

ibmcloud kp key schedule-delete KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID
    [--key-ring         KEY_RING_ID]

Exemplo

Este é um exemplo de como agendar a exclusão de uma chave.

# schedule this key to be deleted
$ ibmcloud kp key schedule-delete $KEY_ID_OR_ALIAS

Scheduling key for deletion...
OK

# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID_OR_ALIAS --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T21:36:16Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja excluir. Para recuperar uma lista de suas chaves disponíveis, execute o comando kp keys.

Parâmetros opcionais

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key show

Recuperar detalhes sobre uma chave, como os metadados da chave e o material da chave.

Se a chave tiver sido designada como uma chave raiz, o sistema não poderá retornar o material da chave para essa chave.

ibmcloud kp key show KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-o, --output      OUTPUT]

Exemplos

Estes são exemplos de kp key show.

Exemplo 1

Crie uma chave raiz e mostre os detalhes.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key

# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f

Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key                 2020-05-05 19:58:02 +0000 UTC   Key does not expire

Exemplo 2

Esta é uma explicação das chaves e valores JSON do kp key show comando . Neste exemplo, a chave foi girada para assegurar que todos os pares chave/valor JSON sejam mostrados.

$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f --output json

{
    "id": "8635b804-9966-4918-a16b-d561fdbf181f",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-05T19:58:02Z",
    "lastUpdateDate": "2020-05-05T19:58:24Z",
    "lastRotateDate": "2020-05-05T19:58:24Z",
    "keyVersion": {
        "id": "85b65b20-4165-4da3-8ba9-880e72390461",
        "creationDate": "2020-05-05T19:58:24Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:8635b804-9966-4918-a16b-d561fdbf181f"
}
Chave Descrição
ID Esse é o KEY_ID; ele é exclusivo e é usado sempre que a CLI especifica um KEY_ID
nome O nome fornecido quando a chave foi criada
tipo Usado pela API para configurar o tipo de conteúdo em uma chamada REST
algorithmType Os tipos de algoritmo são padrão de criptografia avançado (AES) ou encadeamento de blocos cifrados (CBC)
createdBy O ID do usuário que criou a chave
creationDate A data e hora na qual a chave foi criada
lastUpdateDate A data e hora na qual a chave foi atualizada pela última vez
lastRotateDate A data e hora na qual a chave foi girada pela última vez; esta entrada existirá somente se a chave tiver sido girada
keyVersion/id Isso identifica a versão mais recente da chave raiz
keyVersion / creationDate A data e hora na qual o material de chave foi atualizado pela última vez
extractable Um booleano que determina se o material de chave pode deixar o serviço. Se configurado como false, o Key Protect designará a chave como uma chave raiz não extraível usada para ações de agrupamento e desagrupamento. Se configurado como true, o Key Protect designará a chave como uma chave padrão a ser armazenada em seus apps e serviços. Uma vez configurado como false, não será possível mudá-lo para true.
estado 1 - a chave está ativa; 2 - a chave está suspensa; consulte estados da chave
CRN O nome do recurso em nuvem (CRN)

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave raiz que você deseja mostrar.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key sync

Este subcomando sincroniza os recursos associados de uma chave.

ibmcloud kp key sync KEY_ID
     -i, --instance-id INSTANCE_ID
    [--key-ring             KEY_RING_ID]
    [-o, --output      FORMAT]

Exemplos

Este é um exemplo de kp key sync.

Exemplo

Sincronizar uma chave e mostrar os resultados.

# synchronize the associated resources for a given key
$ ibmcloud kp key sync 94c06f9c-a07a-4961-8548-553cf7431f18

Synchronizing key...
OK
Key's associated resources are synchronized successfully

Parâmetros necessários

  • KEY_ID

    O ID da chave a ser sincronizada.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp key update

Atualizar uma chave com um conjunto de chaves existente ou um novo conjunto de chaves na instância do Key Protect.

ibmcloud kp key update KEY_ID_OR_ALIAS
        -i, --instance-id         INSTANCE_ID
        -r, --new-key-ring        KEY_RING_ID
    [-o, --output              OUTPUT]

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave raiz que você deseja mostrar.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -r, --new-key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

Parâmetros opcionais

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

Exemplos

Observe que o conjunto de chaves já deve estar criado, seja como parte da criação de uma chave ou por si mesmo.

Este é um exemplo de kp key update.

ic kp key update 5f2cc155-fe16-492c-845c-4d1f0688c7ba -r TestRing

A execução do comando tem um resultado típico:

Updating key...
OK
Key ID                                 Key Name             Key Ring ID   
5f2cc155-fe16-492c-845c-4d1f0688c7ba   TestKey                           TestRing   

kp key unwrap

Desagrupar uma chave de criptografia de dados utilizando uma chave raiz que está armazenada na instância do Key Protect.

ibmcloud kp key unwrap KEY_ID_OR_ALIAS CIPHERTEXT_FROM_WRAP
        -i, --instance-id INSTANCE_ID
    [-a, --aad         ADDITIONAL_DATA]
    [--key-ring           KEY_RING_ID]
    [-o, --output      OUTPUT]

Exemplos

Estes são exemplos de kp key unwrap.

Exemplo 1

Desagrupe um texto cifrado para revelar a chave de criptografia de dados (DEK) de texto sem formatação.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# create a data encryption key (DEK), wrapped with the root key
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# unwrap the ciphertext to reveal the plaintext data encryption key (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=

Exemplo 2

Desagrupe um texto cifrado e forneça informações de AAD.

Um caso de uso para fornecimento de dados de autenticação adicionais (AAD) é "proteger por senha" o texto cifrado para torná-lo mais difícil de desagrupar.

O texto cifrado e o AAD é necessário para desagrupar o texto cifrado e revelar a chave de criptografia de dados (DEK) de texto sem formatação.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5f2cc155-fe16-492c-845c-4d1f0688c7ba

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase

# wrap the plaintext with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=

# unwrap the ciphertext and reveal the original plaintext DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1

Unwrapping key...
FAILED

# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1

Unwrapping key...
FAILED

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias “ v4 ” da chave raiz que você utilizou na solicitação inicial de wrap.

  • CIPHERTEXT_FROM_WRAP

    A chave de dados criptografados que foi retornada durante a operação de agrupamento inicial.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -a, --aad

    Os dados de autenticação adicionais (AAD) que foram usados para proteção adicional de uma chave. É possível fornecer até 255 sequências, cada uma delas delimitada por uma vírgula. Se você forneceu o AAD ao agrupar, deverá especificar o mesmo AAD, na mesma ordem, ao desagrupar.

    O serviço Key Protect não salva dados de autenticação adicionais. Se você fornecer um AAD, salve os dados em um local seguro para assegurar que você possa acessar e fornecer o mesmo AAD durante as solicitações de desagrupamento subsequentes.

-o, --output

Set the CLI output format. By default, all commands print in table format. To change the output format to JSON, use `--output json`.
  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

Versões de chave kp

Ao girar uma chave raiz, o Key Protect cria uma nova versão da chave. Listar todas as versões de chave que estão disponíveis para um KeyID ou Alias de chave em sua instância Key Protect.

ibmcloud kp key versions KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [-r, --key-ring                KEY_RING_ID]
    [-n, --number-of-key-versions  VERSION_LIMIT]
    [-o, --output                  OUTPUT]
    [-s, --starting-offset         OFFSET]
    [-t, --total-count             TOTAL_COUNT]
    [-a, --all-key-states          ALL_KEY_STATES]

Exemplos

Estes são exemplos de kp key versions.

Exemplo 1

Um caso de uso é auditar o histórico de rotação de uma chave raiz como um administrador de segurança, visualizando seu histórico de versão de chaves

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Retrieving key Versions...
OK
Key Version ID                         Creation Date   
21562e93-8882-420e-90a7-912c70023373   2022-07-08T17:02:10Z
390086ac-76fa-4094-8cf3-c0829bd69526   2022-07-08T17:02:40Z

Exemplo 2

O mesmo caso de uso para auditar uma chave raiz como um administrador de segurança e visualizar o histórico, com sua contagem total na saída JSON..

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -t -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 2,
                "totalCount": 2
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2022-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2022-07-08T17:02:40Z"
                }
        ]
}

Exemplo 3

Outro caso de uso lista as primeiras 12 versões de chave para um conjunto de chaves em uma rotação mensal para o ano passado

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 12
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2021-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2021-08-08T17:02:40Z"
                },[...10x]
        ]
}

Exemplo 4

Outro caso de uso lista as segundas 12 versões de chave para um conjunto de chaves em uma rotação mensal para os últimos dois anos

Versões da chave do ibmcloud kp $KEY_ID_OR_ALIAS -n 12 -s 12

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -s 12 -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 12
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2021-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2021-08-08T17:02:40Z"
                },[...10x]
        ]
}

Exemplo 5

Uma sinalização opcional para retornar o número de versões de uma chave que não está atualmente ativa. Anteriormente, o comando teria falhado, como no exemplo a seguir:

# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t

Retrieving key Versions...
FAILED
KEY_ACTION_INVALID_STATE_ERR
Key is not in a valid state
Correlation-ID:a494bf49-be82-426f-88d8-17b58cc8634d

Com a versão da CLI 0.8.0 e superior, o comando é bem-sucedido ao incluir a sinalização -a, como no exemplo a seguir:

# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t -a

Retrieving key Versions...
OK
TotalCount: 2
Key Version ID                         Creation Date
14dfde20-a751-4c3e-b6b0-e8d00a17d8d1   2023-06-22T15:16:09Z
af61298c-d75d-42a8-aa76-e04178cf4685   2023-06-22T15:10:28Z

Observe que se a sinalização -a não for fornecida, o KEY_ACTION_INVALID_STATE_ERR ainda será retornado para uma chave em um estado diferente de ativo.

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias “ v4 ” da chave raiz que você utilizou na solicitação inicial de wrap.

  • -i, --instance-ID

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

  • -n --number-of-key-versions

    Restringe o número de versões de chave a ser recuperado pelo valor de número inteiro fornecido (padrão: 200).

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -s --starting-offset

    Recupera as versões de chave do deslocamento, conforme especificado pelo valor de número inteiro fornecido.

  • -t --total-count

    Usado para obter o número total de versões de chave para uma chave pelo valor de número inteiro fornecido.

  • -a --all-key-states

    Uma sinalização opcional para retornar o número de versões para todos os estados de chave, incluindo chaves que não estão ativas.

agrupar a chave kp

Agrupar uma chave de criptografia de dados (DEK) utilizando uma chave raiz que está armazenada na instância do Key Protect. Uma DEK é tipicamente usada para criptografar "outras" partes de informações.

Ao agrupar uma DEK com uma chave raiz, O Key Protect combina a força de múltiplos algoritmos para proteger a privacidade e a integridade de seus dados criptografados.

Não é possível encapsular uma chave do tipo “ standard ”, ou seja, uma chave criada usando o -s parâmetro (ibmcloud kp key create my-key-name -s).

ibmcloud kp key wrap KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring           KEY_RING_ID]
    [-a, --aad         ADDITIONAL_DATA]
    [-o, --output      OUTPUT]
    [-p, --plaintext   DATA_KEY]

Melhores práticas

Agrupar uma chave de criptografia de dados (DEK) cria um ciphertext. O texto cifrado são informações criptografadas que, quando desagrupadas, revelam a DEK original.

O serviço Key Protect não armazena a sua DEK. Salve ou persista para o armazenamento o texto cifrado para se certificar de que você pode recuperar a DEK com o comando kp key unwrap.

É recomendável que você nunca salve, ou persista para o armazenamento, a DEK de texto sem formatação. No aplicativo, carregue o texto cifrado a partir do armazenamento, chame Key Protect para obter a DEK em texto simples e utilizá-la para criptografar, ou agrupar, "outros" fragmentos de informações.

Não salve a DEK no armazenamento persistente. Expor a DEK pode permitir que outros decriptografem os seus dados.

Um novo texto cifrado é criado cada vez que a chave raiz é agrupada.

Exemplos

Estes são exemplos de kp key wrap.

Exemplo 1

O Key Protect cria uma nova chave de criptografia de dados (DEK) codificada em base64 e agrupa-a com a chave raiz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# create a new key and wrap it with the root key, creating a DEK (this is the ciphertext)
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# unwrap the ciphertext to reveal the plaintext (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=

Exemplo 2

Gere uma chave de criptografia de dados (DEK) codificada em base64 e agrupe-a com a chave raiz.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

9052d914-bebe-4177-90e9-6073a167b507

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiTkdQRlhCb1dT ...<redacted>... M2ExNjdiNTA3In0=

# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT

tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=

Exemplo 3

Agrupe uma chave raiz e forneça informações de AAD.

Um caso de uso para o fornecimento de dados de autenticação adicionais (AAD) consiste em "proteger a senha" e incluir uma "frase de verificação" no texto cifrado, o que torna o desagrupamento mais difícil.

O texto cifrado e o AAD é necessário para desagrupar o texto cifrado e revelar a DEK de texto sem formatação.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5f2cc155-fe16-492c-845c-4d1f0688c7ba

# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase

# wrap the plaintext DEK with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=

# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1

Unwrapping key...
FAILED

# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1

Unwrapping key...
FAILED

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave raiz que você deseja usar para o encapsulamento. Não é possível agrupar uma chave padrão.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -a, --aad

    Os dados de autenticação adicionais (AAD) que são usados para proteção adicional de uma chave. O AAD é uma matriz de sequências que verifica a integridade dos conteúdos chaves. Cada sequência pode ter até 255 caracteres.

    Se você fornecer o AAD durante uma solicitação de agrupamento, deverá especificar o mesmo AAD, na mesma ordem, durante a solicitação de desagrupamento subsequente.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

  • -p, --plaintext

    O plaintext especifica uma chave de criptografia de dados (DEK) do tipo base64-encoded, que é encapsulada pela chave raiz (identificada pelos parâmetros KEY_ID ou ALIAS ).

    A chave de criptografia de dados (DEK) codificada em Base64 que você deseja gerenciar e proteger. Para importar uma chave existente, forneça uma chave de 32 bytes (256 bits).

    Para gerar e agrupar uma nova DEK, omita o parâmetro --plaintext.

  • --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

kp keys

Listar as chaves que estão disponíveis em sua instância do Key Protect.

As chaves são listadas na ordem de key id; consulte o exemplo 5.

ibmcloud kp keys
        -i, --instance-id      INSTANCE_ID
        [-b --sort-by          SORT_BY]
        [-c, --crn]
        [-f, --key-filter      FILTERS]
        [--key-ring            KEY_RING_ID]
        [--key-states          STATES]
        [-l --key-search       KEY_SEARCH]
        [-n, --number-of-keys  NUMBER_OF_KEYS]
        [-o, --output          OUTPUT]
        [-s, --starting-offset STARTING_OFFSET]
        [-t, --key-type        TYPE]

Exemplos

Estes são exemplos de kp keys.

Exemplo 1

Listar chaves. Observe que isso listará somente as primeiras 200 chaves em sua instância, por padrão Para mostrar um número maior ou menor de chaves, forneça um valor para o parâmetro --number-of-keys.

# list keys
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key

Exemplo 2

Listar chaves e exibir o nome do recurso na nuvem (CRN) usando o --crn .

# list keys and show the cloud resource name (CRN)
$ ibmcloud kp keys -c

Retrieving keys...
OK
Key ID                                 Key Name      CRN
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key   crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key   crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51

Exemplo 3

Listar chaves no formato JSON.

O parâmetro --output json implica o uso parâmetro --crn (cloud resource name) .

# list keys
$ ibmcloud kp keys --output json

[
  {
    "id": "5f2cc155-fe16-492c-845c-4d1f0688c7ba",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-10T18:04:01Z",
    "lastUpdateDate": "2020-05-10T18:04:01Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba"
    },
    {
        "id": "c36e9f3a-feaf-4033-8603-687784dc7e51",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-10T17:56:37Z",
    "lastUpdateDate": "2020-05-10T17:56:37Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51"
  }
]

Exemplo 4

Listar as chaves e percorrê-las, exibindo os detalhes.

# list keys and convert to a list
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')

$ for key in $(echo "${KEYS}"); do
    ibmcloud kp key show ${key}
done

Grabbing info for key id: 5f2cc155-fe16-492c-845c-4d1f0688c7ba...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key                 2020-05-10 18:04:01 +0000 UTC   Key does not expire

Grabbing info for key id: c36e9f3a-feaf-4033-8603-687784dc7e51...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key                 2020-05-10 17:56:37 +0000 UTC   Key does not expire

Exemplo 5

Crie 20 chaves e mostre-as em grupos de 5 usando as opções kp keys -n -s.

# create 20 test keys
$ for I in {1..20}; do
    KEY_ID=$(ibmcloud kp key create my-test-key-$I --output json | jq -r '.["id"]')
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    echo $KEY_ID $KEY_NAME
done

b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20

# this is the same list sorted in KEY_ID order
# this is the order we expect when listing keys

10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13

3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4

87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11

cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5

# define a function for listing keys
$ list_keys () {
    N=$1
    S=$2
    KEYS=$(ibmcloud kp keys --number-of-keys $N --starting-offset $S --output json | jq -r '.[] | .id')
    for KEY_ID in $(echo "${KEYS}"); do
        KEY_ID=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["id"]')
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    echo $KEY_ID $KEY_NAME
    done
}

# list the first group of keys
$ list_keys 5 0

10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13

# list the second group of keys
$ list_keys 5 5

3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4

# list the third group of keys
$ list_keys 5 10

87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11

# list the last group of keys
$ list_keys 5 15

cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5

# delete the test keys
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')

$ for KEY_ID in $(echo "${KEYS}"); do
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    if [[ $KEY_NAME == *"my-test-key-"* ]]; then
        echo "Deleting... $KEY_NAME $KEY_ID"
    ibmcloud kp key delete $KEY_ID
    fi
done

(output not shown)

Exemplo 6

Lista as chaves com base nos estados de chave (Active, Suspended) na instância Key Protect.

# list active and suspended keys
$ ibmcloud kp keys --key-states active,suspended

Retrieving keys...
OK
Key ID                                 Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba   my-active-key
636e9f3a-feaf-4033-8603-687754dc7e51   my-suspended-key

Exemplo 7

Lista as chaves com base no tipo de chave (raiz) na instância do Key Protect.

# list root keys
$ ibmcloud kp keys -t root

Retrieving keys...
OK
Key ID                                 Key Name
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba   my-root-key

Exemplo 8

Lista as chaves na instância do Key Protect com o nome da chave ou alias que corresponde exatamente aos caracteres na sequência "TEST" sem aspas.

# list keys with identifiers exactly matching TEST
$ ibmcloud kp keys -l exact:TEST

Retrieving keys...
OK
Key ID                                 Key Name
636e9f3a-feaf-4033-8603-687754dc7e51   TEST

Exemplo 9

Lista as chaves na instância do Key Protect e classifica as chaves com base em seu ID e na data em que a chave foi criada iniciando com a mais recente (o hífen, '-', indica a classificação por ordem decrescente.

# sort keys by id and descending creationDate
$ ibmcloud kp keys -b id,-creationDate

Retrieving keys...
OK
Key ID                                 Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba   my-last-key
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba   my-first-key

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -b, --sort-by

    Classifique as chaves com base nos parâmetros A propriedade padrão para classificar resultados é "id." '-' antes que o parâmetro indique a classificação por ordem decrescente Os parâmetros de classificação suportados neste momento são

    • ID
    • estado
    • extractable
    • importados
    • creationDate
    • lastUpdateDate
    • lastRotateDate
    • deletionDate
    • expirationDate
  • -c, --crn

    Inclua o nome do recurso em nuvem (CRN) na saída.

  • -f, --key-filter

    Filtre as chaves com base nos parâmetros Os parâmetros de filtragem de chave suportados são

    • creationDate
    • deletionDate
    • expirationDate
    • extractable
    • lastUpdateDate
    • lastRotateDate
    • estado

    Os operadores de suporte para datas são:

    • GT (maior que)
    • gte (maior ou igual a)
    • LT (menor que)
    • lte (menor ou igual a)

    Os resultados serão uma correspondência exata caso algum desses operadores esteja ausente.

  • --key-states

    O estado das chaves a serem recuperadas. Lista de sequências contendo estados válidos- Active, Suspended, Deactivated, Destroyed. (padrão: active,suspended,deactivated)..

  • -l, --key-search

    Listar chaves com base na sequência de procura com qualificadores pré-anexados (por exemplo, exact, not, alias, name). Para obter mais detalhes, consulte a documentação da API

  • -n, --number-of-keys

    Restringe o número de chaves a serem recuperadas. O padrão é 200 e o máximo é 5000.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

    Configurar a saída para JSON (--output json) inclui o nome do recurso em nuvem (CRN) na saída.

  • -r, --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário se o usuário não tiver permissões no conjunto de chaves padrão.

  • -s, --starting-offset

    Recupera chaves iniciando no deslocamento especificado. O deslocamento é baseado em zero, o que significa que o deslocamento 0 (zero) é a primeira chave.

  • -t, --key-type

    O tipo de chaves a serem recuperadas. Se estiver definido como “ standard-key ”, serão recuperadas as chaves padrão. Se configurado como “ root-key ”, as chaves raiz serão recuperadas.

conjunto de regiões kp

Destine um terminal regional do Key Protect diferente.

ibmcloud kp region-set REGION
        -i, --instance-id INSTANCE_ID
        [-u, --unset]

Exemplos

Estes são exemplos de kp region-set.

Exemplo 1

Se o parâmetro REGION não for especificado, será solicitado que você selecione uma região.

# set the region endpoint
$ ibmcloud kp region-set

Select a Region:
1. au-syd
2. ca-tor
3. eu-de
4. eu-gb
5. jp-osa
6. jp-tok
7. us-east
8. us-south
9. br-sao
10. staging (us-south)
Enter a number:
5
OK

Exemplo 2

Configure a região explicitamente.

# set the region endpoint to "us-south"
$ ibmcloud kp region-set us-south

OK

A REGION deve ser um terminal regional válido.

# this should fail (not a valid regional endpoint)
$ ibmcloud kp region-set not-a-region

FAILED

Exemplo 3

Desconfigure (remova) o terminal regional.

# remove the regional endpoint
$ ibmcloud kp region-set -u

OK

Parâmetros necessários

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • REGION

    Especificar um terminal regional. Esse parâmetro é opcional e, se não especificado, será solicitado que você selecione um terminal regional em uma lista.

  • -u, --unset

    Desconfigure (remova) o terminal regional.

kp registrations

Os registros são associações entre chaves raiz e outros recursos em nuvem, como depósitos do Cloud Object Storage (COS) ou implementações de bancos de dados de nuvem.

Por exemplo, no Key Protect, você cria uma chave raiz, que é usada pelo COS para proteger os dados em repouso.

O relacionamento entre outros recursos de nuvem e o Key Protect é chamado de registration.

Não exclua uma chave raiz se houver recursos, como depósitos e objetos do COS, que dependam dela. A exclusão da chave raiz significa que não é possível recuperar esses recursos. Isso é conhecido como "fragmentação criptográfica" e não há recuperação dessa ação.

ibmcloud kp registrations
        -i, --instance-id INSTANCE_ID
    [-r, --key-ring    KEY_RING_ID]
    [-c, --crn-query   CRN_PATTERN]
    [-k, --key-id      KEY_ID_OR_ALIAS]
    [-o, --output      OUTPUT]

Exemplos

Estes são exemplos de kp registrations.

Exemplos de registro mostram inúmeros nomes de recurso em nuvem (CRNs). Os CRNs seguem este formato:

crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource

Consulte Nomes de Recursos na Nuvem para obter uma explicação detalhada sobre os campos do CRN.

Exemplo 1

Liste todos os registros, que podem incluir recursos em nuvem como bancos de dados, armazenamento, cálculo, contêineres ou sistema de mensagens.

Este exemplo mostra o registro entre o Cloud Object Storage (COS) e o Key Protect.

# view all registrations
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
    "creationDate": "2020-06-15T16:07:37Z",
    "lastUpdated": "2020-06-15T16:07:37Z",
    "keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
    }
  }
]

Exemplo 2

Este exemplo mostra o ciclo de vida completo de dois recursos de nuvem (Cloud ObjectStorage e Key Protect - desde a criação de instâncias do Key Protect e da criação de uma política entre elas, até a exclusão das instâncias.

Um resumo das etapas é:

Salto em que Descrição
1 CLI Crie instâncias do Cloud Object Storage (COS) e do Key Protect (KP)
2 CLI Crie uma política para o COS para acessar chaves de criptografia do KP
3 CLI Crie uma chave raiz do KP que o COS use para criptografar dados
4 IU do console Crie um depósito do COS e especifique a criptografia do KP; isso é feito na interface com o usuário (IU) do console, pois não há suporte de API ou de CLI neste momento
5 CLI Visualize o registro do KP
6 CLI Fazer upload e download de um objeto para verificar se o COS e o KP funcionam juntos
7 CLI Exclua o depósito do COS e a chave raiz do KP
8 CLI Excluir a política de autorização entre o COS e o KP
9 CLI Excluir as instâncias do COS e do KP

Estes comandos mostram o COS e os planos de serviços do Key Protect . O comando ibmcloud resource service-instance-create requer um service plan name e um location, que está no catálogo.

# show the catalog offerings for cloud object storage (COS) and Key Protect
$ ibmcloud catalog service cloud-object-storage

$ ibmcloud catalog service kms

O exemplo abrange várias etapas e deve ser realizado em consulta com o resumo fornecido.

# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

Creating service instance my-cos-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-cos-1 was created.
Name:             my-cos-1
ID:               crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::
GUID:             4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Location:         global
State:            active
Type:             service_instance
Sub Type:
Allow Cleanup:    false
Locked:           false
Created at:       2020-06-15T16:03:39Z
Updated at:       2020-06-15T16:03:39Z
Last Operation:             Status    create succeeded             Message   Completed create instance operation

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=4b636e74-f3ca-40bb-80b8-3bd21801ccb8

# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

Creating service instance my-kms-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-kms-1 was created.
Name:             my-kms-1
ID:               crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a::
GUID:             b3933ab0-d579-46fc-8ed5-351aea657b9a
Location:         us-south
State:            active
Type:             service_instance
Sub Type:         kms
Allow Cleanup:    false
Locked:           false
Created at:       2020-06-15T16:04:40Z
Updated at:       2020-06-15T16:04:40Z
Last Operation:             Status    create succeeded             Message   Completed create instance operation

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b3933ab0-d579-46fc-8ed5-351aea657b9a

# create a policy for COS to read KMS; source is COS, target is KMS
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

Creating authorization policy under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 was created.
ID:                        18cfc980-4458-4313-972e-93f312cdcd81
Source service name:       cloud-object-storage
Source service instance:   4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Target service name:       kms
Target service instance:   b3933ab0-d579-46fc-8ed5-351aea657b9a
Roles:                     Reader

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=18cfc980-4458-4313-972e-93f312cdcd81

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

{
  "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
  "name": "my-cos-key",
  "type": "application/vnd.ibm.kms.key+json",
  "extractable": false,
  "state": 1,
  "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:key:2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}

# capture the KP root key id
$ MY_COS_KEY_ID=2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time
# 1 - In the UI, go to... Resource list -> Storage -> my-cos-1
# 2 - Create bucket -> custom bucket
# 3 - Properties of a custom bucket
#   a - bucket name: my-cos-kms-bucket
#   b - location: us-south (same region as KP)
#   c - checkbox: Key Protect
#   d - instance: my-kms-1
#   e - key name: my-cos-key
#   f - button: Create bucket

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
    "creationDate": "2020-06-15T16:07:37Z",
    "lastUpdated": "2020-06-15T16:07:37Z",
    "keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
    }
  }
]

# list the bucket
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID

OK
1 bucket found in your account:
Name                Date Created
my-cos-kms-bucket   Jun 15, 2020 at 16:07:38

# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt

OK
Successfully uploaded object '/cos-file.txt' to bucket 'my-cos-kms-bucket'.

# get the object from COS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt

OK
Successfully downloaded '/cos-file.txt' from bucket 'my-cos-kms-bucket'
20 B downloaded.

# verify that the upload and download files are the same
$ cat cos-file-upload.txt

This is a test file

$ cat cos-file-download.txt

This is a test file

# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force

OK
Delete '/cos-file.txt' from bucket 'my-cos-kms-bucket' ran successfully.

# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force

OK
Successfully deleted bucket 'my-cos-kms-bucket'. The bucket 'my-cos-kms-bucket' will be available for reuse after 15 minutes.

# list the bucket (it should no longer exist)
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID

OK
No buckets found in your account.

# view the KP registration (it should no longer exist)
$ ibmcloud kp registrations --output json

# delete the KP root key; COS no longer uses it
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json

{
  "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}

# delete the authorization policy between COS AND KMS
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

Deleting authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 under account ea998d3389c3473aa0987652b46fb146...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 is deleted successfully

# view the authorization policy (it should no longer exist)
$ ibmcloud iam authorization-policies

Getting authorization policies under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
No policy found

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

Deleting service instance my-kms-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-kms-1 with ID crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:: is deleted successfully

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

Deleting service instance my-cos-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-cos-1 with ID crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:: is deleted successfully

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Exemplo 3

Este exemplo mostra o que acontece quando uma das situações a seguir ocorre entre o COS e o Key Protect (KP) - o COS não consegue acessar a chave raiz do Key Protect.

  • Excluir a chave raiz do KP
  • Remover a política de autorização do CMS/KP

Este exemplo não mostra a saída de comando, exceto quando relevante.

# create a Cloud Object Storage (COS) service instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=c488e11a-c8a0-4688-b002-9327266ea55f

# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=26f4b198-952a-47ab-9f44-ef69c038b3c5

# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=594b946e-0e90-44ea-ac62-6cbb42450cd5

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

# capture the KP root key id
$ MY_COS_KEY_ID=464d78c3-57dc-49a5-b932-8ebf8f8c7771

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt

# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

# get the object from COS - this fails because COS no longer has access to KMS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt

FAILED
ServiceNotAuthorized: The specified COS Service Instance does not have sufficient
    permissions to access the resource provided in the ibm-sse-kp-customer-root-key-crn request header
status code: 401,
request id: a51e1da3-9bf7-4cc9-9eb0-0d074c7f9093,
host id:

# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force

# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force

# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json

FAILED
kp.Error:
    correlation_id='fffdd8a9-405a-4a91-a5a7-52c30d11424d',
    msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'

# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Parâmetros necessários

  • KEY_ID_OR_ALIAS

    O UUID ou alias v4 da chave que você deseja consultar.

  • -i, --instance-id

    O ID da instância da IBM Cloud que identifica a sua instância do Key Protect.

    É possível configurar uma variável de ambiente, em vez de especificar -i com o comando a seguir: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parâmetros opcionais

  • -c, --crn-query

    Especifique a consulta de CRN cujos registros precisam ser listados

  • -k, --key-id

    Especifique o ID da chave cujos registros precisam ser listados.

  • -o, --output

    Configure o formato de saída da CLI. Por padrão, todos os comandos são impressos no formato de tabela. Para mudar o formato de saída para JSON, use --output json.

    Configurar a saída para JSON (--output json) inclui o nome do recurso em nuvem (CRN) na saída.

  • -r, --key-ring

    Um nome exclusivo, legível para o conjunto de chaves. Necessário mostrar registros sobre o conjunto de chaves fornecido.

comando ibmcloud kp kmip

Os comandos KMIP permitem o acesso da API a adaptadores e objetos KMIP

Subcomando Status v0.10 Descrição
adaptador-criar Criar um Adaptador KMIP
adaptador Recuperar um Adaptador KMIP
adaptadores Listar adaptadores KMIP em uma instância
adaptador-excluir Excluir um Adaptador KMIP
criação de certificados Criar um certificado de cliente KMIP associado a um adaptador
cert Recuperar um certificado de cliente KMIP
certificados Listar Certificado de Cliente KMIP associado a um Adaptador KMIP
cert-excluir Excluir um certificado de cliente KMIP
objeto Recuperar um Objeto KMIP
Objetos Listar Objetos KMIP em um Adaptador KMIP
objeto-excluir Excluir um Objeto KMIP

kp kmip adapter-criar

Use kmip adapter-create para criar um Adaptador KMIP em uma instância do Key Protect. Adaptadores são usados para agrupar e gerenciar objetos KMIP. Os adaptadores KMIP sob a mesma instância do Key Protect devem ter um nome exclusivo, pois os adaptadores podem ser recuperados pelo nome ou pelo ID. Para todos os comandos da CLI relacionados ao KMIP, qualquer argumento ou sinalizador que usa um ID do Adaptador também pode usar um nome do Adaptador...

Dependendo do perfil, pode ser necessário fornecer informações diferentes para criar o adaptador Atualmente, apenas um perfil do adaptador KMIP é suportado: native_1.0.

O perfil native_1.0 precisa apenas do ID de uma chave raiz a ser fornecido na sinalização -k

$ ibmcloud kp kmip adapter-create
    -i, --instance-id      INSTANCE_ID
    -p, --profile PROFILE
    [-k, --crk-id CRK_ID]
    [-n, --name NAME]
    [-d, --description DESC]
    [-o, --output          OUTPUT]

Exemplo

Estes são exemplos de kp kmip adapter-create.

Exemplo 1

Este exemplo cria o adaptador KMIP com o perfil native_1.0

$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0 -d "my description"
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      my description  
$ ibmcloud kp kmip adapters
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC   

adaptador kp kmip

Recupere detalhes sobre um adaptador KMIP, incluindo a data de criação e atualização. É possível usar o ID ou o nome do adaptador.

$ ibmcloud kp kmip adapter ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Exemplo

Estes são exemplos de kp kmip adapter.

Exemplo 1

Observe que há alguns atributos para o adaptador visíveis apenas no formato de saída JSON

$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID                                 Key Name   
47a0ad90-204d-4e45-aa5b-68ed40a05fa2   rootKmip   
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      -   
# retreiving adapter by name
$ ibmcloud kp kmip adapter myadapter
Targeting endpoint: not shown
Getting KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At                      Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC   -   
# retrieving adapter by ID
$ ibmcloud kp kmip adapter d6a00af1-277f-40e8-b33e-da3a68752209 -o json
{
    "id": "d6a00af1-277f-40e8-b33e-da3a68752209",
    "profile": "native_1.0",
    "profile_data": {
        "crk_id": "47a0ad90-204d-4e45-aa5b-68ed40a05fa2"
    },
    "name": "myadapter",
    "description": "",
    "created_by": "IBMid-664003LB2T",
    "created_at": "2024-03-20T22:06:43Z",
    "updated_by": "IBMid-664003LB2T",
    "updated_at": "2024-03-20T22:06:43Z"
}

kp kmip adaptadores

Liste os adaptadores KMIP que estão disponíveis em sua instância do Key Protect

$ ibmcloud kp kmip adapters
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    [-k, --crk-id           CRK_ID]

Exemplo

Estes são exemplos de kp kmip adapters. Use a sinalização -k para mostrar apenas adaptadores que usam um ID de CRK específico.

Exemplo 1

$ ibmcloud kp kmip adapters -n 100 -s 0
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC

kp kmip adapter-excluir

Exclui um adaptador KMIP.. Isso excluirá quaisquer objetos e certificados associados ao adaptador..

$ ibmcloud kp kmip adapter-delete ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Exemplo

Estes são exemplos de kp kmip adapter-delete.

Exemplo 1

$ ibmcloud kp kmip adapter-create -n adap -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
e97e4297-4a6f-41c9-ae67-0920715964fd   native_1.0        adap           -   
$ ibmcloud kp kmip adapter-delete e97e4297-4a6f-41c9-ae67-0920715964fd
Targeting endpoint: not shown
Deleting KMIP Adapter...
OK

kp kmip cert-criar

Use kp kmip cert-create para criar um certificado de cliente KMIP para associar a um adaptador KMIP específico. O certificado fornecido no sinalizador -c deve estar no formato x509 PEM. O arquivo de certificado pode ser transferido por upload usando o prefixo @ para especificar um caminho de arquivo ou fornecendo o conteúdo do arquivo de certificado diretamente para a sinalização.

Os certificados de cliente KMIP são usados para conectar e autenticar o servidor KMIP por meio de TLS mútuo ( mTLS ). Um certificado deve ser registrado antes que qualquer operação de protocolo KMIP possa ser executada com um adaptador KMIP Pode demorar até 5 minutos para que o certificado seja utilizável em operações KMIP..

Os certificados devem ter um nome exclusivo no mesmo adaptador KMIP e o conteúdo do certificado deve ser exclusivo, mesmo entre vários adaptadores..

Consulte também: Especificações de Protocolo KMIP

$ ibmcloud kp kmip cert-create
    -a, --adapter       ADAPTER_NAME_OR_ID
    -c, --cert-string   {@path/to/cert | CERTIFICATE_STRING}
    [-n, --name         NAME]
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Exemplo

Estes são exemplos de kp kmip cert-create.

Exemplo 1

Este exemplo mostra duas maneiras de fazer upload do mesmo arquivo de certificado..

$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID                                 Key Name   
47a0ad90-204d-4e45-aa5b-68ed40a05fa2   rootKmip   
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      -   

$ export CERT=$(cat ./cert.pem)

$ ibmcloud kp kmip cert-create -n mycert -c "$CERT" -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
3f550b96-86bc-44fe-8d1d-113e57067219   mycert             2024-03-20 22:08:03 +0000 UTC   

## Alternatively, you can also provide the filepath of the certificate

$ ibmcloud kp kmip cert-delete mycert -a myadapter
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK

$ ibmcloud kp kmip cert-create -n mycert -c @./cert.pem -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

Certificado kp kmip

Recupera um Certificado de Cliente KMIP específico Um certificado pode ser recuperado pelo ID ou pelo nome

$ ibmcloud kp kmip cert CERTIFICATE_ID
    -a, --adapter       ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Exemplos

Estes são exemplos de kp kmip cert.

Exemplo 1

Obtendo um certificado por nome:

$ ibmcloud kp kmip cert mycert -a myadapter
Targeting endpoint: not shown
Getting KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

Exemplo 2

Obtendo um certificado por UUID no formato JSON O conteúdo em formato PEM do certificado será retornado no corpo JSON.

$ ibmcloud kp kmip cert a279fded-06d1-45a1-8a95-901f194fb937  -a myadapter -o json
{
    "id": "a279fded-06d1-45a1-8a95-901f194fb937",
    "name": "mycert",
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIUNXqfJMkAHOBHz6+ekETDlCqIEqUwDQYJKoZIhvcNAQEL\nBQAw
    ... CERTIFICATE CONTENTS ABBREVIATED ...
    Y6uFtHuQSpud0C\n-----END CERTIFICATE-----\n",
    "created_by": "IBMid-12345678",
    "created_at": "2024-03-20T22:11:34Z"
}

certificados kp kmip

Liste todos os Certificados de Cliente KMIP associados a um adaptador KMIP específico

$ ibmcloud kp kmip certs
    -a, --adapter           ADAPTER_NAME_OR_ID
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]

Exemplos

Estes são exemplos de kp kmip certs.

Exemplo 1

$ ibmcloud kp kmip certs -a myadapter
Targeting endpoint: not shown
Listing KMIP Client Certificates...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

kp kmip cert-excluir

Excluir um certificado de cliente KMIP.

$ ibmcloud kp kmip cert-delete CERTIFICATE_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID

Exemplos

Estes são exemplos de kp kmip cert-delete

Exemplo 1

$ ibmcloud kp kmip cert-delete -a myadapter mycert
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK

objeto kp kmip

Objetos KMIP são criados por meio de operações executadas por meio de um cliente KMIP usando o protocolo KMIP. Eles não podem ser criados por meio da API, mas podem ser lidos e excluídos Os objetos pertencem a um único adaptador.

Os objetos não possuem um nome e devem ser recuperados por ID.

$ ibmcloud kp kmip object OBJECT_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID
    [-o, --output         OUTPUT]

Exemplos

Estes são exemplos de kp kmip object

Exemplo 1

$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter
Targeting endpoint: not shown
Getting KMIP Object...
OK
Object ID                              Object Type     Object State   Created At                      Updated At   
12365a82-5404-4bd9-a4c7-2b628ee18304   Symmetric Key   Active         2024-03-14 21:01:45 +0000 UTC   2024-03-14 21:01:45 +0000 UTC   

Exemplo 2

Obter um Objeto KMIP como um JSON mostrará alguns atributos extras não visíveis na visualização de tabela normal.

$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter -o json
{
    "id": "12365a82-5404-4bd9-a4c7-2b628ee18304",
    "kmip_object_type": 2,
    "state": 2,
    "created_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
    "created_by": "IBMid-123456",
    "created_at": "2024-03-14T21:01:45Z",
    "updated_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
    "updated_by": "IBMid-123456",
    "updated_at": "2024-03-14T21:01:45Z"
}

kp kmip objetos

Listar objetos KMIP e visualizar informações sobre seu tipo de objeto e estado do objeto entre outros metadados. Use a sinalização -f para filtrar objetos somente em um estado específico. Por padrão, o filtro de estado é configurado como 1,2,3,4

Os números correspondem aos estados do objeto da seguinte forma:

  • Pré-ativo = 1
  • Active = 2
  • Desativado = 3
  • Comprometido = 4
  • Destruído = 5
  • Comprometido destruído = 6

Consulte Enumeração de Estado KMIP

ibmcloud kp kmip objects
    -a, --adapter           ADAPTER_NAME_OR_ID
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]

Exemplos

Estes são exemplos de kp kmip objects.

Exemplo 1

$ ibmcloud kp kmip objects -a myadapter
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID                              Object Type     Object State   Created At                      Updated At   
00196c59-c5c2-42d8-9729-703cd0389f60   Symmetric Key   Compromised    2024-03-14 20:47:54 +0000 UTC   2024-03-14 20:47:54 +0000 UTC   
02f1043c-0494-4399-82af-5395a14b019f   Symmetric Key   Pre-Active     2024-03-14 20:58:06 +0000 UTC   2024-03-14 20:58:06 +0000 UTC   
08082ff4-821b-4689-83ec-15cac5bd1939   Symmetric Key   Pre-Active     2024-02-22 00:10:46 +0000 UTC   2024-02-22 00:11:23 +0000 UTC   
0c1ea28d-dfaa-404a-b9c4-fcdc3f5d8b02   Symmetric Key   Deactivated    2024-03-14 21:05:48 +0000 UTC   2024-03-14 21:05:48 +0000 UTC   
10b49b05-0101-4234-927b-20a3356da291   Symmetric Key   Pre-Active     2024-03-14 21:26:54 +0000 UTC   2024-03-14 21:26:54 +0000 UTC   
12365a82-5404-4bd9-a4c7-2b628ee18304   Symmetric Key   Active         2024-03-14 21:01:45 +0000 UTC   2024-03-14 21:01:45 +0000 UTC

Exemplo 2

Usando a sinalização -f para filtrar objetos de um estado específico. Use vírgulas para especificar vários estados

$ ibmcloud kp kmip objects -a testadapter -f 5,6
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID                              Object Type     Object State            Created At                      Updated At   
03d38805-2bb2-4aa0-bbf3-dc4a6d5d0475   Symmetric Key   Destroyed               2024-03-14 20:47:58 +0000 UTC   2024-03-14 20:47:58 +0000 UTC   
08c94f34-0100-4331-b759-5937ed5b1228   Symmetric Key   Destroyed               2024-03-14 20:46:38 +0000 UTC   2024-03-14 20:46:38 +0000 UTC   
1a13e112-41f8-4d52-be08-a0946b8c22fa   Symmetric Key   Destroyed Compromised   2024-03-14 20:58:20 +0000 UTC   2024-03-14 20:58:20 +0000 UTC   

kp kmip object-excluir

Excluir um Objeto KMIP. Apenas objetos cujo estado não é Ativo ou não Destruído podem ser excluídos com êxito

$ ibmcloud kp kmip object-delete OBJECT_ID
    -a, --adapter ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Exemplos

Estes são exemplos de kp kmip object-delete

Exemplo 1

$ ibmcloud kp kmip object-delete 9b2f5af5-3534-4f02-8836-f89af37c4351 -a testadapter
Targeting endpoint: not shown
Deleting KMIP Object...
OK

Unidade de criptomoeda kp

O comando kp crypto-unit permite que você gerencie suas unidades de criptografia. Observe que esse comando não faz nada por si só. Você deve usar um dos subcomandos junto com ele.

NAME:
  -ibmcloud key-protect crypto-unit - Manage crypto units

USAGE:
  ibmcloud key-protect crypto-unit command [arguments...] [command options]

COMMANDS:
  claim        Claim crypto unit(s)
  master-key   Commands to manage Master Keys (MKs) of crypto unit(s)
  master-keys  List the MKs uploaded to crypto unit(s)
  sig-key      Generate a signature key file compatible for use as a crypto unit user credential
  user         Manage users in crypto unit(s)
  users        List users in crypto unit(s)
  zeroize      Zeroize a crypto unit
  help, h      Show help

Enter 'ibmcloud key-protect crypto-unit help [command]' for more information about a command.

Se tiver problemas com o comando kp crypto-unit, consulte a seção Solução de problemas.

zeroize

A zeragem de suas unidades de criptografia é altamente desaconselhável depois que você tiver criado chaves ou realizado operações de chave. Se a zeragem for necessária após esse ponto, todas as chaves deverão ser excluídas e purgadas. Observe que há um período de espera de quatro horas antes que uma chave excluída se torne elegível para ser eliminada.

NAME:
  zeroize - Zeroize a crypto unit

USAGE:
  zeroize --id CRYPTO_UNIT_ID

OPTIONS:
  --id value                     Required. The ID of the crypto unit to zeroize

claim

reivindicação de unidade de criptografia ibmcloud kp

NAME:
  claim - Claim crypto unit(s)

USAGE:
  claim --credential ADMIN_KEY_FILE

OPTIONS:
  --credential value  Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
  --ids strings         Optional. List of crypto unit IDs to target, can be provided as a comma-separated list, or repeating the flag. If omitted, all crypto units will be targeted

master-key

NAME:
  ibmcloud key-protect crypto-unit master-key - Commands to manage Master Keys (MKs) of crypto unit(s)

USAGE:
  ibmcloud key-protect crypto-unit master-key command [arguments...] [command options]

COMMANDS:
  generate   Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit
  import     Import a Master Key (MK) to crypto unit(s)
  help, h    Show help

master-key generate

NAME:
  generate - Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit

USAGE:
  generate --keyshare-files KEYSHARE_FILES --keyshare-minimum KEYSHARE_MINIMUM --algo ALGO --key-name KEYNAME --cu CRYPTO_UNITS

OPTIONS:
  --algo value              Required. Algorithm that generated MK will be compatible with. Only AES-256 is supported
  --auth value              Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --cu value                Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --key-name value          Required. MK name. Must be between 1 and 8 characters
  --keyshare-files value    Required. Array specifying file paths to write MK key share files to. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.
  --keyshare-minimum value  Required. Number of key shares needed to reconstruct the MK. Must be between 2 and 255 and less than or equal to the number of keyshare files

master-key import

NAME:
  import - Import a Master Key (MK) to crypto unit(s)

USAGE:
  import --keyshare-files KEYSHARE_FILES --auth AUTH

OPTIONS:
  --auth value            Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --cu value              Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --keyshare-files value  Required. Array specifying file paths to MK key share files. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.

master-keys

NAME:
  master-keys - List the MKs uploaded to crypto unit(s)

USAGE:
  master-keys [--cu CRYPTO_UNITS]

OPTIONS:
  --cu value  Optional. Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive. If omitted, lists MKs in all crypto units of the instance.

sig-key

NAME:
  ibmcloud key-protect crypto-unit sig-key - Generate a signature key file compatible for use as a crypto unit user credential

USAGE:
  ibmcloud key-protect crypto-unit sig-key command [arguments...] [command options]

COMMANDS:
  generate   Generate a signature key file compatible for use as a crypto unit user credential
  help, h    Show help

Enter 'ibmcloud key-protect crypto-unit sig-key help [command]' for more information about a command.

sig-key generate

NAME:
  generate - Generate a signature key file compatible for use as a crypto unit user credential

USAGE:
  generate --file FILE --passphrase PASSWORD --algo RSA-2048

OPTIONS:
  --algo value      The algorithm type used to generate the signature key. Only RSA-2048 is supported
  --file value      Required. The file path to write the signature key to. Must be between 1 and 255 characters
  --passphrase value                 --passphrase string   Optional passphrase used to encrypt the signature key file. Provide "-" to prompt for password

user

NAME:
  ibmcloud key-protect crypto-unit user - Manage users in crypto unit(s)

USAGE:
  ibmcloud key-protect crypto-unit user command [arguments...] [command options]

COMMANDS:
  add       Add new user to crypto unit(s)
  remove    Remove user from crypto unit
  help, h   Show help

Enter 'ibmcloud key-protect crypto-unit user help [command]' for more information about a command.

user-add

NAME:
  add - Add new user to crypto unit(s)

USAGE:
  add --type TYPE --name NAME --credential CREDENTIAL --auth AUTH

OPTIONS:
  --auth value          Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --credential value    Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
  --cu value            Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --name value        Required. Name of the user to add. Must be between 1 and 255 characters
  --type value        Required. Type of user to add. Allowable values are: admin, kmsCryptoUser

user-remove

NAME:
  remove - Remove user from crypto unit

USAGE:
  remove -u USER --cu CRYPTO_UNITS

OPTIONS:
  --cu value              Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  -u value, --user value  Required. The username of the user to remove from crypto-unit(s)

users

NAME:
  users - List users in crypto unit(s)

USAGE:
  users [--cu CRYPTO_UNITS]

OPTIONS:
  --cu value  Optional. Crypto unit(s) for the request to target. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab"}]' or '@/path/to/cu.json'. If omitted, lists users in all crypto units of the instance.

kp crypto-units

O comando kp crypto-units permite que você liste suas unidades de criptografia.


NAME:
  ibmcloud kp - List crypto units allocated to instance

USAGE:
  ibmcloud crypto-units

COMMANDS:

Additional help topics:

Use "export KP_INSTANCE_ID=TARGET_INSTANCE_ID" or "ibmcloud kp command [arguments...] [command options] -i TARGET_INSTANCE_ID" to set a target instance ID.

Próximas etapas

Procure por operações relacionadas na documentação da API.