Este guia mostra como criar, aprovisionar e gerir uma instância do Cloud HSM de inquilino único através da CLI do Google Cloud. Depois de criar e aprovisionar a instância, pode criar e usar chaves na instância através da consola, da API Cloud Key Management Service, da CLI gcloud e das bibliotecas de cliente. Google Cloud
A criação e a gestão da sua instância requerem autenticação de quórum. Quando cria a instância, define o número de aprovações de membros do quórum necessárias para executar operações de instâncias. Os membros do quórum têm de ter sempre pelo menos este número de chaves de controlo disponíveis para manter o controlo administrativo da sua instância.
Antes de começar
- Reveja e aplique as práticas recomendadas do HSM na nuvem de inquilino único quando criar e manter a sua instância.
- Decida com quantos membros do quórum quer começar. Podem ser adicionados mais membros do quórum mais tarde, se forem aprovados pelos membros do quórum existentes. O número mínimo de membros do quórum é três.
- Decida quantos membros do quórum são necessários para aprovar propostas. Não pode alterar este número após a criação da instância. Os membros do quórum têm de ter sempre acesso a este número de chaves de controlo para manter a instância. O tamanho mínimo do quórum é de dois. O tamanho do quórum obrigatório tem de ser inferior ao número de membros do quórum.
- Decida como se vai certificar de que a instância é atualizada a tempo.
Tem de monitorizar a
disableDateda instância e propor, aprovar e executar uma operação de atualização da instância antes do prazo para evitar tempo de inatividade indesejável. -
Para receber as autorizações de que precisa para criar, gerir e usar instâncias do Cloud HSM de inquilino único, peça ao seu administrador para lhe conceder as seguintes funções de IAM no projeto ou num recurso principal:
-
Criar propostas:
Proponente de HSM de inquilino único do Cloud KMS (
cloudkms.hsmSingleTenantProposer) -
Aprovar propostas:
Membro do quórum do HSM de inquilino único do Cloud KMS (
cloudkms.hsmSingleTenantQuorumMember) -
Executar propostas:
Executor de HSM de inquilino único do Cloud KMS (
cloudkms.hsmSingleTenantExecutor) -
Criar chaves:
Criador de chaves HSM de inquilino único do Cloud KMS (
roles/cloudkms.hsmSingleTenantKeyCreator)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
-
Criar propostas:
Proponente de HSM de inquilino único do Cloud KMS (
Para cada membro do quórum, gere um par de chaves RSA-2048 para a autenticação de dois fatores (2FA). Recomendamos que use tokens físicos para as suas chaves de controlo. Siga as normas da sua organização para criar pares de chaves RSA-2048 em tokens físicos.
Para fins de demonstração, este guia usa o OpenSSL para criar três chaves RSA-2048 suportadas por software:
openssl genrsa -out rsaprivate1.pem openssl genrsa -out rsaprivate2.pem openssl genrsa -out rsaprivate3.pem openssl rsa -in rsaprivate1.pem -out rsapub1.pem --pubout openssl rsa -in rsaprivate2.pem -out rsapub2.pem --pubout openssl rsa -in rsaprivate3.pem -out rsapub3.pem --puboutArmazene as chaves privadas em segurança. Precisa delas para aprovar propostas. Mantenha as chaves públicas acessíveis. Precisa delas para criar a instância do HSM na nuvem de inquilino único.
Escolha uma localização do Cloud KMS que suporte o Cloud HSM de inquilino único. Para identificar localizações compatíveis, consulte a lista de localizações na página Localizações do Cloud KMS. Para o filtro Suporte de HSM, selecione Suporta HSM de inquilino único.
Crie e aprovisione uma instância
Para criar e aprovisionar uma instância do HSM na nuvem de inquilino único, use a CLI gcloud para criar o recurso de instância, criar uma proposta para registar as suas chaves de autenticação e, em seguida, aprovar e executar a proposta.
Crie a instância
Este passo tem de ser concluído por um administrador da instância com a função de proponente do HSM de inquilino único do Cloud KMS.
Defina o projeto predefinido.
gcloud config set project PROJECT_IDSubstitua PROJECT_ID pelo identificador do seu projeto.
Crie a instância do Cloud HSM de inquilino único.
gcloud kms single-tenant-hsm create --location=LOCATION \ --total-approver-count=QUORUM_MEMBER_COUNT \ --single-tenant-hsm-instance-id=INSTANCE_IDSubstitua o seguinte:
LOCATION: a localização onde quer criar a sua instância, por exemplo,us-central1.QUORUM_MEMBER_COUNT: o número total de membros do quórum. Este é também o número de chaves de controlo que criou anteriormente. O valor mínimo é3. É possível adicionar outras chaves mais tarde com a aprovação do quórum. Tem de ter, pelo menos, mais um membro do quórum do que o tamanho do quórum necessário para fazer a recuperação após perder uma chave de controlo.INSTANCE_ID: o identificador que quer usar para a instância, por exemplo,example-sthsm-instance. Pode omitir a flag--single-tenant-hsm-instance-idpara que o Cloud HSM atribua um UUID.
Verifique o estado da instância.
gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONSubstitua o seguinte:
INSTANCE_ID: o identificador da sua instância.LOCATION: a localização onde criou a instância.
Se o estado for
PENDING_TWO_FACTOR_AUTH_REGISTRATION, pode aprovisionar a instância. Normalmente, demora entre 5 e 30 minutos a atingir este estado.
Aprovisione a instância
-
Crie uma proposta para registar as suas chaves de autenticação de dois fatores através da operação
register_two_factor_auth_keys. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS. Ao contrário da maioria das propostas, a proposta register_two_factor_auth_keys requer desafios assinados de todos os membros do quórum.gcloud kms single-tenant-hsm proposal create INSTANCE_ID
--single-tenant-hsm-instance-proposal-id PROPOSAL_ID
--location LOCATION
--operation-type register_two_factor_auth_keys
--required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL
--two-factor-public-key-pems=PUBLIC_KEY_LISTSubstitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador exclusivo que quer usar para esta proposta, por exemplo,set-up-2fa.LOCATION: a localização onde criou a sua instância.MEMBERS_REQUIRED_FOR_APPROVAL: o número de membros do quórum que têm de aprovar uma proposta antes de a operação poder ser executada. O valor mínimo é2. Não é possível alterar este valor após o aprovisionamento da instância. Os membros do quórum têm sempre de ter acesso a, pelo menos, este número de chaves de controlo para manter o controlo administrativo da instância.PUBLIC_KEY_LIST: uma lista separada por vírgulas dos caminhos para as partes da chave pública de todas as suas chaves de controlo, por exemplo,rsapub1.pem,rsapub2.pem,rsapub3.pem. O número de chaves públicas nesta lista tem de corresponder ao valor deQUORUM_MEMBER_COUNTque usou anteriormente.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,set-up-2fa.LOCATION: a localização onde criou a sua instância do.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta. O aprovisionamento de uma nova instância do HSM na nuvem de inquilino único requer desafios assinados de todos os membros do quórum.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada chave, descodifique o desafio com `basenc --base64url -d` e assine-o com a chave privada correspondente.
echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Depois de a proposta ser aprovada, use o comando
executepara concluir a operaçãoregister_two_factor_auth_keys. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID
--single_tenant_hsm_instance INSTANCE_ID --location LOCATIONEsta é uma operação de longa duração que aprovisiona utilizadores e cria cópias de segurança. A instância fica
ACTIVEapós 20 a 30 minutos. Depois de a instância estar
ACTIVE, veja os detalhes da instância para ver odisableDate:gcloud kms single-tenant-hsm describe INSTANCE_ID
--location=LOCATIONTome nota do
disableDateda instância. Tem de concluir uma operaçãorefresh_single_tenant_hsm_instanceantes desta hora, caso contrário, a sua instância é desativada.
Ver instâncias
Os utilizadores com qualquer uma das seguintes funções podem ver uma lista de instâncias do HSM na nuvem de inquilino único e os respetivos estados:
- Proponente de HSM de inquilino único do Cloud KMS
- Membro do quórum do HSM de inquilino único do Cloud KMS
- Executor de HSM de inquilino único do Cloud KMS
- Visualizador do Cloud KMS
- Administrador do Cloud KMS
Certifique-se de que revê regularmente o estado das suas instâncias. As instâncias têm de ser atualizadas regularmente para permanecerem ativas.
As instâncias no estado Ativo podem ser usadas. Os programadores que precisam de criar ou importar chaves em instâncias do HSM na nuvem de inquilino único precisam do identificador de recurso da instância. O identificador do recurso usa o seguinte formato:
projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME
Para ver as instâncias na sua organização e encontrar os respetivos identificadores de recursos, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Infraestrutura do KMS.
No cartão Instância de HSM de inquilino único, clique em Ver. A página Instância de HSM de inquilino único apresenta uma lista de todas as instâncias de HSM de nuvem de inquilino único que tem autorizações para ver.
Para ver os detalhes de uma instância, clique no nome da instância. A página Detalhes da instância de HSM de inquilino único apresenta detalhes da instância selecionada, incluindo o identificador de recurso completo da instância e uma lista de propostas criadas para a instância.
Opcional: para ver ou transferir as chaves públicas associadas às chaves de autorização de dois fatores (2FA) atuais dos membros do quórum, clique em Obter chave pública. Pode comparar as chaves públicas com as suas chaves de autenticação de dois fatores privadas para verificar que chaves de controlo estão ativas.
gcloud
Veja uma lista das instâncias existentes através do método kms single-tenant-hsm list.
gcloud kms single-tenant-hsm list projects/PROJECT_ID/locations/LOCATION
Substitua o seguinte:
PROJECT_ID: o identificador do projeto onde quer ver instâncias do Single-tenant Cloud HSM.LOCATION: a localização onde quer ver instâncias do Cloud HSM de inquilino único.
Veja os detalhes de uma instância existente através do método kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe --location=LOCATION \ --singletenanthsminstance=INSTANCE_ID
Substitua o seguinte:
LOCATION: a localização onde quer ver instâncias do Cloud HSM de inquilino único.INSTANCE_ID: a instância para a qual quer ver detalhes.
Use a instância
Enquanto a sua instância estiver ACTIVE, pode criar e usar chaves. Pode criar chaves do Cloud HSM de inquilino único em qualquer conjunto de chaves existente na mesma localização que uma instância do Cloud HSM de inquilino único ativa.
A criação de chaves do HSM de inquilino único do Google Cloud requer a função criador de chaves do HSM de inquilino único do Google Cloud KMS, além da função administrador do Google Cloud KMS.
Depois de criadas, a utilização de chaves do HSM na nuvem de inquilino único não requer autorizações especiais.
Crie uma chave
Quando cria uma chave do Cloud HSM de inquilino único, tem de especificar a instância do Cloud HSM de inquilino único onde a quer criar. Caso contrário, o processo é semelhante ao de criar qualquer outra chave. Para ver instruções detalhadas, consulte o artigo Crie uma chave.
Importe uma chave
Quando importa material de chaves para uma chave do Cloud HSM de inquilino único, tem de especificar a instância do Cloud HSM de inquilino único onde quer armazená-lo. Caso contrário, o processo é semelhante ao da importação de qualquer outra chave. Para ver instruções detalhadas, consulte o artigo Importe uma versão de chave para o Cloud Key Management Service.
Use uma chave
Depois de criar a chave, a utilização de uma chave do Cloud HSM de inquilino único é idêntica à utilização de qualquer outra chave do Cloud HSM. Não precisa de especificar a instância do HSM na nuvem de inquilino único para usar a chave.
Mantenha uma instância
Após o aprovisionamento da instância, é responsável pela respetiva manutenção. Mantém a instância criando propostas para operações de manutenção, obtendo a aprovação do quórum e, em seguida, executando a operação aprovada. Só pode ter uma proposta ativa de cada vez. Se optar por não avançar com uma proposta, não pode propor uma operação diferente até eliminar a proposta ativa ou aguardar que a proposta expire.
Tem de atualizar a sua instância antes do disableDate. Se precisar de verificar o disableDate de uma instância, pode ver os detalhes
da instância.
Veja propostas de instâncias
Para ver propostas de uma instância, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Infraestrutura do KMS.
No cartão Instância de HSM de inquilino único, clique em Ver. A página Instância de HSM de inquilino único apresenta uma lista de todas as instâncias de HSM de nuvem de inquilino único que tem autorizações para ver.
Localize a instância onde quer ver propostas e, de seguida, clique no nome da instância. A página Detalhes da instância de HSM de inquilino único apresenta detalhes da instância, incluindo uma lista de propostas criadas para a instância.
Opcional: para filtrar a lista de propostas, clique na barra de Filtro e introduza os seus critérios de filtro. Por exemplo, pode filtrar a lista para ver apenas a proposta com aprovação pendente ou apenas as propostas concluídas com êxito.
gcloud
-
Veja uma lista de propostas existentes através do método
kms single-tenant-hsm proposal list.gcloud kms single-tenant-hsm proposal list --location=LOCATION \ --singletenanthsminstance=INSTANCE_ID
Substitua o seguinte:
LOCATION: a localização onde quer ver instâncias do Cloud HSM de inquilino único.INSTANCE_ID: o identificador da instância do Cloud HSM de inquilino único para a qual quer ver propostas.
Atualize uma instância
Pode atualizar uma instância para a manter atualizada e ajudar a evitar tempo de inatividade não planeado. Esta operação requer autenticação de quórum. Após a aprovação da proposta, a operação demora aproximadamente 15 a 30 minutos a ser concluída.
Quando atualiza uma instância, o valor disableDate é definido como 120 dias a partir do momento da atualização.
-
Crie uma proposta para atualizar a instância através do tipo de operação
refresh_single_tenant_hsm_instance. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type refresh_single_tenant_hsm_instance
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,refresh_instance.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,refresh_instance.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada desafio devolvido no passo anterior, descodifique o desafio através de
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Execute a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, a instância permanece no estado `ACTIVE` e o
disableDateé definido como 120 dias a partir do momento da atualização.
Adicione um membro do quórum
Pode adicionar um membro do quórum a uma instância. Esta operação requer autenticação de quórum. Após a aprovação da proposta, a operação demora aproximadamente 15 a 30 minutos a ser concluída.
Gere um novo par de chaves RSA-2048 para o novo membro do quórum. Siga as normas da sua organização para criar pares de chaves RSA-2048 em tokens físicos.
Armazene a chave privada em segurança. Precisa dela para aprovar propostas. Mantenha a chave pública acessível. Precisa dela para adicionar o novo membro do quórum à instância do HSM na nuvem de inquilino único.
-
Crie uma proposta para adicionar um membro do quórum à instância através da operação
add_quorum_member. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type add_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,add_quorum_member.PATH_TO_PUBLIC_KEY: o caminho para a nova chave pública, por exemplo,rsapub4.pem.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,add_quorum_member.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta. A adição de um novo membro do quórum requer desafios assinados de um quórum de membros existentes, além de um desafio assinado do novo membro com a nova chave.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
Este comando devolve uma matriz de desafios formatada em JSON. O campo
requiredActionQuorumParameters.requiredChallengescontém um desafio para a nova chave que está a registar. O camporequiredActionQuorumParameters.quorumChallengescontém desafios para um quórum das chaves existentes. Tem de assinar todos os desafios no objetorequiredActionQuorumParameters. -
Para cada desafio devolvido no passo anterior, descodifique o desafio usando
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST" \ --required-challenge-replies="SIGNED_REQUIRED_CHALLENGE_LIST"
Substitua o seguinte:
SIGNED_QUORUM_CHALLENGE_LIST: uma matriz formatada em JSON de desafios assinados com chaves privadas já registadas, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente, por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.SIGNED_REQUIRED_CHALLENGE_LIST: uma matriz formatada em JSON que contém o desafio assinado com a nova chave privada, em que o único item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-newkey.txt','rsapub-newkey.pem')].
Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Execute a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, o novo membro do quórum pode participar em desafios para aprovar propostas. A chave pública que adicionou está agora incluída na lista de chaves públicas nos detalhes da instância.
Remova um membro do quórum
Se tiver mais membros do quórum do que o tamanho do quórum necessário, pode remover um membro do quórum de uma instância. Esta operação requer autenticação de quórum. Após a aprovação da proposta, a operação demora aproximadamente 15 a 30 minutos a ser concluída.
-
Crie uma proposta para remover um membro do quórum da instância através da operação
remove_quorum_member. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type remove_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,remove_quorum_member.PATH_TO_PUBLIC_KEY: o caminho para a chave pública que quer remover da instância, por exemplo,rsapub3.pem. Após a conclusão da operação, não é possível usar a chave privada correspondente para aprovar propostas.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,remove_quorum_member.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada desafio devolvido no passo anterior, descodifique o desafio através de
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Execute a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, o membro do quórum removido deixa de poder participar em desafios para aprovar propostas. A chave pública que removeu já não está incluída na lista de chaves públicas nos detalhes da instância.
Desative uma instância
Pode desativar uma instância para bloquear temporariamente o acesso a todas as respetivas chaves. Esta operação requer autenticação por quórum. Após a aprovação da proposta, a operação demora aproximadamente 15 a 30 minutos a ser concluída.
Enquanto uma instância estiver desativada, as chaves armazenadas nessa instância continuam a aparecer como ACTIVE, mas não podem ser usadas. A tentativa de realizar operações criptográficas com uma chave numa instância desativada resulta num erro.
-
Crie uma proposta para desativar a instância através do tipo de operação
disable_single_tenant_hsm_instance. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type disable_single_tenant_hsm_instance
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,disable_instance.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,disable_instance.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada desafio devolvido no passo anterior, descodifique o desafio através de
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Execute a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, a instância permanece no estado
DISABLEDe não pode ser usada até ser reativada.
Ative uma instância
Pode reativar uma instância do DISABLED para restaurar o acesso à mesma e às respetivas chaves.
Esta operação requer autenticação de quórum. Após a aprovação da proposta,
a operação demora aproximadamente 15 a 30 minutos a ser concluída.
-
Crie uma proposta para ativar a instância através do tipo de operação
enable_single_tenant_hsm_instance. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type enable_single_tenant_hsm_instance
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,enable_instance.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,enable_instance.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada desafio devolvido no passo anterior, descodifique o desafio através de
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Execute a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, a instância regressa ao estado `ACTIVE` e o
disableDateé definido para 120 dias a partir do momento da atualização.
Elimine uma instância
Pode eliminar uma instância para a destruir permanentemente, bem como as respetivas chaves. Esta operação requer autenticação por quórum. Após a aprovação da proposta, a operação demora aproximadamente 15 a 30 minutos a ser concluída.
Depois de uma instância ser eliminada, as chaves armazenadas nessa instância continuam a ser apresentadas como
ACTIVE, mas são inutilizáveis. A tentativa de realizar operações criptográficas com uma chave numa instância eliminada resulta num erro.
-
Crie uma proposta para eliminar a instância através do tipo de operação
delete_single_tenant_hsm_instance. Este passo requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type delete_single_tenant_hsm_instance
Substitua o seguinte:
INSTANCE_ID: o identificador da instância que quer eliminar.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo que quer usar para esta proposta, por exemplo,delete_instance.
-
Veja o estado da proposta e aguarde que o estado se torne
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Substitua o seguinte:
INSTANCE_ID: o identificador da sua instância.PROPOSAL_IDo identificador da proposta, por exemplo,delete_instance.LOCATION: a localização onde criou a sua instância do Google Cloud.
Quando o estado é
PENDING, pode assinar os desafios. -
Receba os desafios da proposta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devolve uma matriz de desafios formatada em JSON.
-
Para cada desafio devolvido no passo anterior, descodifique o desafio através de
basenc --base64url -de assine-o com uma chave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Substitua o seguinte:
N: o número do desafio, por exemplo,1para o primeiro desafio,2para o segundo desafio e assim sucessivamente.CHALLENGE_N: o conteúdo do desafio númeroNda saída do passo anterior.PRIVATE_KEY_N: o caminho para o número da chave privadaN, por exemplo,rsaprivate1.pempara o primeiro desafio.
-
Aprovar a proposta carregando os desafios assinados. Pode carregá-los num único comando ou em vários comandos. Este passo requer a função membro do quórum do HSM de inquilino único do Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Substitua
SIGNED_QUORUM_CHALLENGE_LISTpor uma matriz formatada em JSON de desafios, em que cada item da lista é uma tupla que contém o caminho para o desafio assinado e o caminho para a chave pública correspondente. Por exemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar os dois primeiros desafios assinados num comando.Depois de carregar o número necessário de desafios assinados, o estado da proposta é atualizado para
APPROVED. -
Certifique-se de que quer continuar a eliminar a instância e destruir criptograficamente todos os dados encriptados com chaves criadas nesta instância e , em seguida, executar a proposta. Este passo requer a função Executor do HSM de inquilino único do Cloud KMS e tem de ser concluído no prazo de 24 horas após a criação da proposta.
Aviso: o seguinte comando é irreversível. Pode ocorrer uma perda de dados permanente. A Google não pode ajudar a recuperar chaves numa instância eliminada.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Após a conclusão da operação, a instância é eliminada.
Elimine uma proposta
Se decidir não aprovar nem executar uma proposta, pode eliminá-la antes de expirar. A eliminação de uma proposta pendente impede a sua aprovação e permite-lhe criar uma nova proposta. A eliminação de uma proposta aprovada impede a execução da operação.
-
Elimine uma proposta com o comando
proposal delete. Isto requer a função Proponente de HSM de inquilino único do Cloud KMS.gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID
Substitua o seguinte:
INSTANCE_ID: o identificador da instância.LOCATION: a localização onde criou a instância.PROPOSAL_ID: o identificador exclusivo da proposta que quer eliminar, por exemplo,proposal_to_delete.
O que se segue?
- Saiba mais sobre o HSM na nuvem de inquilino único.