Inicialização do Dedicated Key Protect com a criação de uma instância, credenciais e uma chave mestra
Para que o Dedicated Key Protect funcione, você deve primeiro provisionar uma instância, depois gerar credenciais de administrador usadas para operar suas unidades de criptografia e, em seguida, criar e carregar a chave mestra, que permite que o Key Protect execute operações criptográficas nas unidades de criptografia em seu nome.
Para obter mais informações sobre os principais conceitos do serviço Dedicated Key Protect, consulte Sobre o Standard e o Dedicated Key Protect.
Três versões diferentes de cada comando são apresentadas neste tópico: para Mac/ Linux, Windows Powershell ou prompt de comando do Windows (CMD). Certifique-se de que esteja usando o comando correspondente ao seu sistema.
Antes de Iniciar
Se você não tiver a versão mais recente da CLI do IBM Cloud, talvez não consiga inicializar a instância. Ajude a garantir que sua inicialização seja bem-sucedida, atualizando para a versão mais recente do plug-in da CLI.
Você deve usar a versão mais recente da CLI para concluir a inicialização, mesmo que implemente a instância usando o console. Se você receber o erro - Unable to obtain plug-in's metadata, ao instalar a versão mais recente do plug-in
KP CLI, consulte as etapas de solução de problemas.
Provisionamento da instância no console
Para provisionar sua instância no console, siga as instruções aqui e selecione o bloco "Dedicado" no catálogo. O processo de provisionamento pode levar vários minutos.
Depois que sua instância for provisionada, você estará pronto para gerar credenciais de administrador e reivindicar suas unidades de criptografia.
Se você não especificar um número de unidades de criptografia, sua instância será provisionada com duas. Você também pode especificar três unidades de criptografia usando o menu suspenso. Independentemente de você especificar duas ou três unidades de criptografia, observe que o valor não pode ser alterado posteriormente.
Provisionamento de sua instância na CLI
Antes que as unidades de criptografia possam ser criadas e sua instância inicializada, sua instância deve ser criada. Primeiro, defina um grupo de recursos a ser direcionado pela emissão:
ibmcloud target -c <resource-group>
Se você não souber qual é o seu grupo de recursos, poderá descobrir quais são os seus ao emitir:
ibmcloud resource groups
Depois de definir seu grupo de recursos, crie a instância emitindo:
ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south
Em que:
<INSTANCE_NAME>é o nome que você dá à sua instância.
Observe que, por padrão, esse comando usa duas unidades de criptografia. Você pode especificar três unidades de criptografia ao emitir:
ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south -p '{"crypto_units": 3}'
Se você especificar um número de unidades de criptografia diferente de 2 ou 3, será retornado um erro. Não é possível alterar o número de unidades de criptografia posteriormente.
O provisionamento de uma instância dedicada pode levar vários minutos. Você pode verificar o status da sua instância emitindo:
ibmcloud resource service-instance <INSTANCE_NAME>
Em que:
<INSTANCE_NAME>é o nome que você deu à sua instância na etapa anterior.
A instância pode ter um de dois estados, ativo ou em andamento. Observe que uma instância ativa ainda não foi inicializada, pois isso exige a conclusão das etapas restantes deste tópico. Até que você inicialize sua instância, ela não poderá ser usada, pois suas identidades ainda não foram configuradas com suas unidades de criptografia para criar a chave mestra.
Obtendo o ponto de extremidade
Quando sua instância estiver ativa, obtenha o ponto de extremidade e o GUID emitindo:
ibmcloud resource service-instance <INSTANCE_NAME> -o json
Em que:
<INSTANCE_NAME>é o nome que você deu à sua instância na etapa anterior.
O ponto de extremidade é o valor do parâmetro public na estrofe endpoints da saída json acima. Ele tem o formato https://<instance-id>.api.<region>.kms.appdomain.cloud. O GUID é o valor do parâmetro
GUID na saída acima. Ele tem o formato de UUID.
Você pode obter o ponto de extremidade emitindo: ibmcloud resource service-instance <\kp-instance-id\> --output json | jq -r '.[].extensions.endpoints'.
Salve o ponto de extremidade completo como uma variável de ambiente, emitindo dois comandos em um dos três sistemas operacionais compatíveis.
Para macOS:
export KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>
E:
export KP_INSTANCE_ID=<GUID>
Para Windows Powershell:
$Env:KP_INSTANCE_ID = <GUID>
E:
$Env:KP_TARGET_ADDR = <ST_INSTANCE_ENDPOINT>
Para Windows CMD:
set KP_INSTANCE_ID=<GUID>
E:
set KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>
Em que:
<ST_INSTANCE_ENDPOINT>é o ponto de extremidade completo de sua instância, no formato dehttps://<instance-id>.api.<region>.kms.appdomain.cloud.<GUID>é o ID da instância da saída acima.
Agora você está pronto para gerar credenciais de administrador.
Talvez seja necessário aguardar alguns minutos após o provisionamento para que suas unidades de criptografia estejam disponíveis.
Para obter mais informações sobre os estados em que uma unidade de criptografia pode estar, consulte Estados da unidade de criptografia.
Geração de credenciais de administrador e reivindicação de suas unidades de criptografia
Uma crypto unit é gerenciada por um administrador ou administradores, o que significa que você precisa ter identidades disponíveis ou criá-las. Se você tiver formatado corretamente as identidades de administrador (uma chave AES simétrica de 256 bits usando RSA-2048 ), poderá pular para Criar a chave mestra.
Geração de credenciais de administrador
Se você precisar criar uma credencial de administrador, emita:
ibmcloud kp crypto-unit sig-key generate --file <ADMIN_KEY_FILE> --passphrase <PWD> --algo RSA-2048
Em que:
<ADMIN_KEY_FILE>é o local em seu computador onde a identidade é criada (por exemplo,admin-keyfile.key).<PWD>é uma senha ou frase secreta opcional que é usada para criptografar o arquivo em repouso. Especifique "-" para ser solicitado a digitar uma frase secreta.
Salve uma cópia desse arquivo de chave e lembre-se da frase secreta. Ele é necessário para todos os comandos autenticados ao interagir com as unidades de criptografia.
Se algum comando ibmcloud kp crypto-unit retornar o código de erro e00bad05, consulte as etapas de solução de problemas.
Reivindicação de suas unidades de criptografia
Para obter mais informações sobre os estados em que uma unidade de criptografia pode estar, consulte Estados da unidade de criptografia.
As unidades de criptografia atribuídas a um usuário começam em um estado limpo. Todas as unidades criptográficas em uma instância de serviço precisam ser configuradas da mesma forma. Se uma zona de disponibilidade na região em que a sua instância está localizada não pode ser acessada, as unidades de criptografia operacional podem ser utilizadas de forma intercambiável para balanceamento de carga ou para alta disponibilidade.
A chave mestra em todas as unidades de criptografia de uma única instância de serviço deve ser definida da mesma forma. O mesmo conjunto de administradores deve ser adicionado em todas as unidades de criptografia, e todas as unidades de criptografia devem ser inicializadas ao mesmo tempo.
Para exibir as instâncias de serviço e as unidades de criptografia no grupo de recursos de destino na conta de usuário atual, use o comando a seguir:
ibmcloud kp crypto-units
A saída a seguir é um exemplo que é exibido. A coluna “ID” na tabela de saída identifica as unidades criptográficas às quais se destinam os comandos administrativos posteriores emitidos pelo plug-in da CLI do KP.
*******************************************************
Id InstanceID State
6e0aead3-9d44-4c92-a4c4-f7a1ab415420 c28a8939-3980-4697-a80c-50b1f8bbf160 reserved
3bb363fc-b1f9-4237-b37b-2c9e07784e3c c28a8939-3980-4697-a80c-50b1f8bbf160 reserved
*******************************************************
A parte pública do par de chaves RSA é incluída em um certificado que é instalado na unidade criptográfica de destino para definir um administrador da unidade criptográfica. Use o comando claim para carregá-lo como o administrador padrão de suas unidades de criptografia, emita:
ibmcloud kp crypto-unit claim --credential <ADMIN_KEY_FILE>
Em que:
<ADMIN_KEY_FILE>é o arquivo em que a identidade foi armazenada.
Todos os comandos do site crypto-unit se aplicam a todas as unidades de criptografia. Eles são efetivamente clones um do outro.
Geração e importação da chave mestra
Como você está importando as credenciais da chave mestra, o site Key Protect não tem acesso ou backups dessa chave. Mantenha registros da sua chave mestra em um local seguro.
Agora que você criou sua instância e sua identidade de administrador, pode usá-las para criar sua chave mestra. A chave mestra, também conhecida como chave mestra do HSM, é usada para criptografar a instância de serviço para o armazenamento de chave. Trata-se de uma chave simétrica de 256 bits do AES. Com a chave mestra, você assume a propriedade do HSM na nuvem e passa a ser o detentor da raiz de confiança que criptografa toda a hierarquia de chaves de criptografia, incluindo as chaves raiz e as chaves padrão no repositório de gerenciamento de chaves. Uma instância de serviço pode ter apenas uma chave mestra. Se você excluir a chave mestra da instância de serviço, será possível executar fragmentação criptográfica efetivamente de todos os dados que foram criptografados com as chaves que são gerenciadas no serviço.
O “ Key Protect ” dedicado utiliza o processo de “divisão de chave”, no qual uma chave criptográfica é dividida em várias partes para aumentar a segurança. Pelo menos 2 "keyshares" devem ser criados, embora mais possam
ser usados, dependendo do caso de uso.
Para gerar a chave mestra localmente, execute o comando em um dos três sistemas operacionais compatíveis.
Para macOS:
ibmcloud kp crypto-unit master-key generate --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2>"]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSOWRD3>"}]'
Para Windows Powershell:
ibmcloud kp crypto-unit master-key generate --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSOWRD3>"""}]'
Para Windows CMD:
ibmcloud kp crypto-unit master-key generate --keyshare-files"[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2>\"]" --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSOWRD3>\"}]"
Em que:
<KEYSHARE_FILE_1>#<PASSWORD1>é o local de um dos compartilhamentos de chaves, juntamente com uma frase secreta para o arquivo que é criado. A frase secreta é obrigatória e deve ter entre 6 e 255 caracteres. Omita#<PASSWORD1>para ser solicitado a digitar uma senha.<KEYSHARE_FILE_2>#<PASSWORD2>é o local de outro compartilhamento de chaves, juntamente com uma frase secreta para o arquivo que é criado. A frase secreta é obrigatória e deve ter entre 6 e 255 caracteres. Omita#<PASSWORD2>para ser solicitado a digitar uma senha. Omita#<PASSWORD2>para ser solicitado a digitar uma senha.<KEY_NAME>é o nome da sua chave mestra.<ADMIN_KEY_FILE>#<PASSOWRD3>é o local do seu administrador e a frase secreta gerada anteriormente (se você não estiver trazendo sua própria identidade). Omita#<PASSWORD3>para ser solicitado a digitar uma senha.
Observe que keyshare-minimum, que é definido como 2 por padrão, mas pode ser aumentado, representa o número mínimo de compartilhamentos de chaves (por seus locais) que você deve especificar.
Para fazer upload da chave mestra para as unidades de criptografia da instância, execute o comando em um dos três sistemas operacionais compatíveis.
Para macOS:
ibmcloud kp crypto-unit master-key import --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2"]' --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD3>"}]'
Para Windows PowerShell:
ibmcloud kp crypto-unit master-key import --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD3>"""}]'
Para Windows CMD:
ibmcloud kp crypto-unit master-key import --keyshare-files "[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2\"]" --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD3>\"}]"
Em que:
<KEYSHARE_FILE_1>#<PASSWORD1>é o local de um dos compartilhamentos de chaves, juntamente com uma frase secreta para o arquivo que será criado. A frase secreta é obrigatória e deve ter entre 6 e 255 caracteres. Omita#<PASSWORD1>para ser solicitado a digitar uma senha.<KEYSHARE_FILE_2>#<PASSWORD2>é o local de outro compartilhamento de chaves, juntamente com uma frase secreta para o arquivo que será criado. A frase secreta é obrigatória e deve ter entre 6 e 255 caracteres. Omita#<PASSWORD2>para ser solicitado a digitar uma senha.<ADMIN_KEY_FILE>#<PASSWORD3>é o local do seu administrador e a frase secreta gerada anteriormente (se você não estiver trazendo sua própria identidade). Omita#<PASSWORD3>para ser solicitado a digitar uma senha.
Agora que a chave mestra foi criada, você precisa permitir que o serviço Key Protect execute ações em suas unidades de criptografia (por exemplo, criar chaves). Observe que o nível de permissões concedidas a Key Protect é inferior ao de um administrador. Emita o comando usando um dos três sistemas operacionais compatíveis.
Para macOS:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD>"}]'
Para Windows PowerShell:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD>"""}]'
Para Windows CMD:
ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD>\"}]"
Em que:
<ADMIN_KEY_FILE>#<PASSWORD>é o local do seu arquivo de chave de administrador e a respectiva frase secreta gerada anteriormente (se você não estiver trazendo sua própria identidade). Omita#<PASSWORD>para ser solicitado a digitar uma senha.
Esse comando também pode ser usado para adicionar administradores às suas unidades de criptografia, criando seu --type admin e adicionando um --name e um --file que apontam para uma identidade
de administrador que você possui. Não adicione --name ou --file ao adicionar kmsCryptoUser. Por exemplo:
ibmcloud kp crypto-unit user add --type admin --name <USERNAME> --credential "<USERNAME_KEY_FILE>" --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PWD>"}]'
Em que:
<USERNAME>é o nome da identidade de administrador que você está adicionando.<USERNAME_KEY_FILE>é o caminho do arquivo da credencial a ser associada ao novo usuário.<ADMIN_KEY_FILE>#<PWD>é o local do seu administrador existente e a senha gerada anteriormente (se você não estiver trazendo sua própria identidade). Omita#<PWD>para ser solicitado a digitar uma senha.
Não adicione --name ou --file ao adicionar kmsCryptoUser como administrador.
Parabéns. Sua instância foi totalmente inicializada.
Pode demorar de 5 a 10 minutos até que você possa usar sua instância.
Próximas etapas
Agora que sua instância foi criada, você tem identidades de administrador que podem ser usadas para operá-la, criou sua chave mestra e concedeu acesso a Key Protect para executar ações em sua instância, você está pronto para fazer coisas como:
- Crie uma chave raiz. Você pode ter um máximo de 500 chaves padrão ou raiz em qualquer estado, inclusive
Destroyed. - Crie chaveiros. Você pode ter um máximo de 50 chaveiros por instância de serviço.
- Defina uma política de rotação.
Os tokens de importação não são compatíveis com o site Key Protect Dedicated.
Recursos Não Suportados
- Criação de tokens de importação.
- Chave de importação segura com tokens de importação.
allowed_network policy.- Implementar sua instância em qualquer lugar, exceto em
us-south. - PKCS#11 armazenamentos de chaves.
- Unidades de criptografia de failover.
Resolução de problemas
Unable to obtain plug-in's metadata erro durante a instalação ou atualização do plug-in KP CLI
Se você receber o seguinte erro ao instalar o plug-in IBM Key Protect CLI:
Installing binary...
FAILED
Unable to obtain plug-in's metadata. Error: exit status 1
Linux ambiente
Instale ou atualize a biblioteca do sistema libstdc++ com o GLIBCXX versão 3.4.26 ou posterior do gerenciador de pacotes da sua distribuição. Use os seguintes exemplos de comandos de instalação:
- Ubuntu/Debian:
apt-get update && apt-get install libstdc++6 - RHEL/Fedora/CentOS:
yum install libstdc++ - Alpine:
apk add --no-cache gcompat libstdc++
Se isso não resolver o erro, entre em contato com o suporte do Key Protect.
Ambiente Windows ou macOS
Entre em contato com o suporte Key Protect.
Erro command failed with error code: e00bad05
Se um comando ibmcloud kp crypto-unit retornar o seguinte erro:
FAILED
command failed with error code: e00bad05
Esse erro pode indicar que seu sistema não é compatível com o recurso ibmcloud kp crypto-unit. Os requisitos de sistema recomendados são:
- Windows: AMD64 (Windows 10 ou posterior)
- Linux: AMD64 (Debian, Ubuntu, Red Hat)
- macOS: ARM64 (Apple Silicon)
Os sistemas fora dessa lista ainda podem ser compatíveis com o recurso ibmcloud kp crypto-unit. Se quiser confirmar a compatibilidade com seu sistema específico ou se o erro e00bad05 persistir apesar de atender aos
requisitos de sistema recomendados, entre em contato com o suporte Key Protect.
HTTP erro 503 no healthy upstream
Se as chamadas para as operações Key Protect retornarem HTTP 503 com a mensagem no healthy upstream: no crypto units are in kms-initialized state at this time, as seguintes causas são possíveis:
- Você ainda não concluiu as etapas de inicialização do Dedicated.
- Você concluiu as etapas de inicialização Dedicated, mas precisa aguardar alguns minutos para que o site Key Protect reconheça as novas unidades de criptografia
kms-initialized. - Você tem apenas uma unidade de criptografia no estado
kms-initialized, e essa unidade de criptografia está fora do ar para manutenção. - Você fez upload de material de chave mestra incompatível para uma ou mais unidades de criptografia.
Erro context deadline exceeded
Se os comandos da CLI retornarem o erro context deadline exceeded (Client.Timeout exceeded while awaiting headers), você configurou KP_TARGET_ADDR para um ponto de extremidade privado de um sistema que não atende
aos requisitos de ponto de extremidade privado.
Para resolver esse erro:
- Use o endpoint público da etapa Obtendo o endpoint.
- Se você pretende usar o ponto de extremidade privado, consulte Pontos de extremidade privados para obter informações sobre como fazer chamadas para o ponto de extremidade privado.
Os comandos da unidade de criptografia não se aplicam a todas as unidades de criptografia
Se os comandos crypto-unit claim, crypto-unit master-key import ou crypto-unit user add --type kmsCryptoUser não se aplicarem a todas as unidades de criptografia, você poderá ver uma saída semelhante
ao exemplo a seguir:
Executing operation Generate Master Key against CryptoUnit with ID fadedbee-0000-0000-0000-1234567890ab
OK
Executing operation Generate Master Key against CryptoUnit with ID addedace-0000-0000-0000-1234567890ab
FAILED
Para resolver esse problema:
-
Por padrão, os comandos
claim,master-key importeuser addtentam se aplicar a todas as unidades de criptografia. Se esses comandos forem apenas parcialmente bem-sucedidos (aplicados a apenas um subconjunto das unidades de criptografia na instância), tente novamente o comando apenas nas unidades de criptografia que retornaram uma falha. Cada um desses comandos pode ser configurado para direcionar unidades de criptografia específicas. Para determinar como direcionar unidades de criptografia específicas, acrescente-ha qualquer comandocrypto-unitpara visualizar o texto de ajuda ou consulte a referência da CLI. -
Execute o comando
kp crypto-unitsna referência da CLI para confirmar que todas as unidades de criptografia estão no mesmo estado.- Se os estados da unidade de criptografia forem incompatíveis, consulte Estados da unidade de criptografia.
- Se alguma unidade de criptografia estiver no estado
maintenance, tente novamente os comandoskp crypto-unitem um momento posterior.