Esta página mostra como criar uma chave no Cloud KMS. Uma chave pode ser uma chave de encriptação simétrica ou assimétrica, uma chave de assinatura assimétrica ou uma chave de assinatura MAC.
Quando cria uma chave, adiciona-a a um conjunto de chaves numa localização do Cloud KMS específica. Pode criar um novo conjunto de chaves ou usar um existente. Nesta página, gera uma nova chave do Cloud KMS ou do Cloud HSM e adiciona-a a um conjunto de chaves existente. Para criar uma chave do Cloud EKM, consulte o artigo Crie uma chave externa. Para importar uma chave do Cloud KMS ou do Cloud HSM, consulte o artigo Importe uma chave.
Antes de começar
Antes de concluir as tarefas nesta página, precisa do seguinte:
- Um recurso de projeto para conter os seus recursos do Cloud KMS. Google Cloud Recomendamos a utilização de um projeto separado para os seus recursos do Cloud KMS que não contenha outros recursos. Google Cloud
- O nome e a localização do conjunto de chaves onde quer criar a sua chave. Escolha um porta-chaves numa localização próxima dos seus outros recursos e que suporte o nível de proteção escolhido. Para ver as localizações disponíveis e os níveis de proteção que suportam, consulte Localizações do Cloud KMS. Para criar um conjunto de chaves, consulte o artigo Crie um conjunto de chaves.
- Opcional: para usar a CLI gcloud, prepare o seu ambiente.
In the Google Cloud console, activate Cloud Shell.
Funções necessárias
Para receber as autorizações de que precisa para criar chaves, peça ao seu administrador para lhe conceder a função de administrador do Cloud KMS (
roles/cloudkms.admin
) da IAM no projeto ou num recurso principal. 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.Esta função predefinida contém as autorizações necessárias para criar chaves. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para criar chaves:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
Para obter uma chave pública:
cloudkms.cryptoKeyVersions.viewPublicKey
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Crie uma chave de encriptação simétrica
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves para o qual vai criar uma chave.
Clique em Criar chave.
Em Nome da chave, introduza um nome para a chave.
Para o Nível de proteção, selecione Software ou HSM.
Para Material da chave, selecione Chave gerada.
Em Finalidade, selecione Encriptar/desencriptar simetricamente.
Aceite os valores predefinidos para Período de rotação e Início a.
Clique em Criar.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.PROTECTION_LEVEL
: o nível de proteção a usar para a chave, por exemplo,software
ouhsm
. Pode omitir a flag--protection-level
para chavessoftware
.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Para criar uma chave, use o método
CryptoKey.create
:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.PROTECTION_LEVEL
: o nível de proteção da chave, por exemplo,SOFTWARE
ouHSM
.ALGORITHM
: o algoritmo de assinatura HMAC, por exemplo,HMAC_SHA256
. Para ver todos os algoritmos HMAC suportados, consulte os algoritmos de assinatura HMAC.
Crie uma chave de encriptação simétrica com rotação automática personalizada
Quando cria uma chave, pode especificar o respetivo período de rotação, que é o tempo entre a criação automática de novas versões da chave. Também pode especificar de forma independente a hora da próxima rotação, para que a próxima rotação ocorra antes ou depois de um período de rotação a partir de agora.
Consola
Quando usa a Google Cloud consola para criar uma chave, o Cloud KMS define automaticamente o período de rotação e a hora da próxima rotação. Pode optar por usar os valores predefinidos ou especificar valores diferentes.
Para especificar um período de rotação e uma hora de início diferentes, quando estiver a criar a chave, mas antes de clicar no botão Criar:
Para Período de rotação de chaves, selecione uma opção.
Em A partir de, selecione a data em que quer que ocorra a primeira rotação automática. Pode deixar a opção A partir de no valor predefinido para iniciar a primeira rotação automática um período de rotação de chaves a partir do momento em que cria a chave.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.ROTATION_PERIOD
: o intervalo para alternar a chave, por exemplo,30d
para alternar a chave a cada 30 dias. O período de rotação tem de ser, pelo menos, de 1 dia e, no máximo, de 100 anos. Para mais informações, consulte o artigo CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: a data/hora em que a primeira rotação deve ser concluída, por exemplo,2023-01-01T01:02:03
. Pode omitir--next-rotation-time
para agendar a primeira rotação para um período de rotação a partir do momento em que executa o comando. Para mais informações, consulteCryptoKey.nextRotationTime
.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Para criar uma chave, use o método
CryptoKey.create
:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
Substitua o seguinte:
PURPOSE
: o objetivo da chave.ROTATION_PERIOD
: o intervalo para alternar a chave, por exemplo,30d
para alternar a chave a cada 30 dias. O período de rotação tem de ser, pelo menos, de 1 dia e, no máximo, de 100 anos. Para mais informações, consulte o artigo CryptoKey.rotationPeriod.NEXT_ROTATION_TIME
: a data/hora em que a primeira rotação deve ser concluída, por exemplo,2023-01-01T01:02:03
. Para mais informações, consulteCryptoKey.nextRotationTime
.
Defina a duração do estado "agendado para destruição"
Por predefinição, as versões de chaves no Cloud KMS permanecem 30 dias no estado agendado para destruição (
DESTROY_SCHEDULED
) antes de serem destruídas. O estado agendado para destruição é, por vezes, denominado estado de eliminação temporária. A duração durante a qual as versões principais permanecem neste estado é configurável, com as seguintes restrições:- Só pode definir a duração durante a criação da chave.
- Depois de especificar a duração da chave, não é possível alterá-la.
- A duração aplica-se a todas as versões da chave criadas no futuro.
- A duração mínima é de 24 horas para todas as chaves, exceto para as chaves apenas de importação, que têm uma duração mínima de 0.
- A duração máxima é de 120 dias.
- A duração predefinida é de 30 dias.
A sua organização pode ter um valor mínimo de duração agendada para destruição definido pelas políticas da organização. Para mais informações, consulte o artigo Controlo da destruição de chaves.
Para criar uma chave que use uma duração personalizada para o estado agendado para destruição, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves para o qual vai criar uma chave.
Clique em Criar chave.
Configure as definições da chave para a sua aplicação.
Clique em Definições adicionais.
Em Duração do estado "agendado para destruição", escolha o número de dias em que a chave vai permanecer agendada para destruição antes de ser destruída permanentemente.
Clique em Criar chave.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.PURPOSE
: a finalidade da chave, por exemplo,encryption
.DURATION
: o período durante o qual a chave permanece no estado agendada para destruição antes de ser destruída permanentemente.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.Recomendamos que use a duração predefinida de 30 dias para todas as chaves, a menos que tenha requisitos regulamentares ou de aplicação específicos que exijam um valor diferente.
Crie uma chave assimétrica
As secções seguintes mostram como criar chaves assimétricas.
Crie uma chave de desencriptação assimétrica
Siga estes passos para criar uma chave de desencriptação assimétrica no conjunto de chaves e na localização especificados. Estes exemplos podem ser adaptados para especificar um nível de proteção ou um algoritmo diferente. Para mais informações e valores alternativos, consulte os artigos Algoritmos e Níveis de proteção.
Quando cria a chave pela primeira vez, a versão inicial da chave tem o estado Geração pendente. Quando o estado muda para Ativado, pode usar a tecla. Para saber mais sobre os estados das versões das chaves, consulte o artigo Estados das versões das chaves.
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves para o qual vai criar uma chave.
Clique em Criar chave.
Em Nome da chave, introduza um nome para a chave.
Para o Nível de proteção, selecione Software ou HSM.
Para Material da chave, selecione Chave gerada.
Para Objetivo, selecione Desencriptação assimétrica.
Para Algoritmo, selecione RSA de 3072 bits – Preenchimento OAEP – Resumo SHA256. Pode alterar este valor em versões futuras da chave.
Clique em Criar.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,rsa-decrypt-oaep-3072-sha256
. Para ver uma lista dos algoritmos de encriptação assimétricos suportados, consulte o artigo Algoritmos de encriptação assimétricos.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Crie uma chave de desencriptação assimétrica chamando
CryptoKey.create
.curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,RSA_DECRYPT_OAEP_3072_SHA256
. Para ver uma lista dos algoritmos de encriptação assimétrica suportados, consulte o artigo Algoritmos de encriptação assimétrica.
Crie uma chave de assinatura assimétrica
Siga estes passos para criar uma chave de assinatura assimétrica no conjunto de chaves especificado e na localização. Estes exemplos podem ser adaptados para especificar um nível de proteção ou um algoritmo diferente. Para mais informações e valores alternativos, consulte os artigos Algoritmos e Níveis de proteção.
Quando cria a chave pela primeira vez, a versão inicial da chave tem o estado Geração pendente. Quando o estado muda para Ativado, pode usar a tecla. Para saber mais sobre os estados das versões das chaves, consulte o artigo Estados das versões das chaves.
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves para o qual vai criar uma chave.
Clique em Criar chave.
Em Nome da chave, introduza um nome para a chave.
Para o Nível de proteção, selecione Software ou HSM.
Para Material da chave, selecione Chave gerada.
Para Objetivo, selecione Assinatura assimétrica.
Para Algoritmo, selecione Curva elíptica P-256 – Resumo SHA256. Pode alterar este valor em versões futuras da chave.
Clique em Criar.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,ec-sign-p256-sha256
. Para ver uma lista dos algoritmos suportados, consulte o artigo Algoritmos de assinatura assimétricos.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Crie uma chave de assinatura assimétrica chamando
CryptoKey.create
.curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,EC_SIGN_P256_SHA256
. Para ver uma lista dos algoritmos suportados, consulte o artigo Algoritmos de assinatura assimétricos.
Crie uma chave KEM
Siga estes passos para criar uma chave para utilização num mecanismo de encapsulamento de chaves (KEM) para o conjunto de chaves especificado e a localização. Estes exemplos podem ser adaptados para especificar um nível de proteção ou um algoritmo diferente. Para mais informações e valores alternativos, consulte os artigos Algoritmos e Níveis de proteção.
Quando cria a chave pela primeira vez, a versão inicial da chave tem o estado Geração pendente. Quando o estado muda para Ativado, pode usar a tecla. Para saber mais sobre os estados das versões das chaves, consulte o artigo Estados das versões das chaves.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "key-encapsulation" \ --default-algorithm "ALGORITHM"
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,ml-kem-768
. Para ver uma lista dos algoritmos de encapsulamento de chaves suportados, consulte o artigo Algoritmos de encapsulamento de chaves.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Crie uma chave com o objetivo
KEY_ENCAPSULATION
chamandoCryptoKey.create
.curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "KEY_ENCAPSULATION", "versionTemplate": {"algorithm": "ALGORITHM"}}'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.ALGORITHM
: o algoritmo a usar para a chave, por exemplo,ML_KEM_768
. Para ver uma lista dos algoritmos de encapsulamento de chaves suportados, consulte o artigo Algoritmos de encapsulamento de chaves.
Obtenha a chave pública
Quando cria uma chave assimétrica, o Cloud KMS cria um par de chaves públicas/privadas. Pode obter a chave pública de uma chave assimétrica ativada em qualquer altura após a geração da chave.
A chave pública está no formato de correio eletrónico otimizado para privacidade (PEM). Para mais informações, consulte as secções RFC 7468 Considerações gerais e Codificação textual de informações de chave pública do assunto.
Para transferir a chave pública de uma versão de chave assimétrica existente, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves que contém a chave assimétrica para a qual quer obter a chave pública.
Clique no nome da chave para a qual quer obter a chave pública.
Na linha correspondente à versão da chave para a qual quer obter a chave pública, clique em Ver mais
.Clique em Obter chave pública.
A chave pública é apresentada no comando. Pode copiar a chave pública para a área de transferência. Para transferir a chave pública, clique em Transferir.
Se não vir a opção Obter chave pública, verifique o seguinte:
- A chave é uma chave assimétrica.
- A versão da chave está ativada.
- Tem a autorização
cloudkms.cryptoKeyVersions.viewPublicKey
.
O nome do ficheiro de uma chave pública transferida a partir da consola tem o seguinte formato: Google Cloud
KEY_RING-KEY_NAME-KEY_VERSION.pub
Cada parte do nome do ficheiro é separada por um hífen. Por exemplo:
ringname-keyname-version.pub
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --public-key-format PUBLIC_KEY_FORMAT \ --output-file OUTPUT_FILE_PATH
Substitua o seguinte:
KEY_VERSION
: o número da versão da chave.KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.PUBLIC_KEY_FORMAT
: o formato no qual quer exportar a chave pública. Para algoritmos PQC da NIST (pré-visualização), usenist-pqc
e, para o X-Wing (pré-visualização), usexwing-raw-bytes
. Para todas as outras chaves, pode usarpem
,der
ou omitir este parâmetro.OUTPUT_FILE_PATH
: o caminho onde quer guardar o ficheiro de chave pública, por exemplo,public-key.pub
.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Obtenha a chave pública chamando o método CryptoKeyVersions.getPublicKey.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey?public_key_format=PUBLIC_KEY_FORMAT" \ --request "GET" \ --header "authorization: Bearer TOKEN"
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.KEY_VERSION
: o número da versão da chave.PUBLIC_KEY_FORMAT
: o formato no qual quer exportar a chave pública. Para algoritmos PQC (pré-visualização), useNIST_PQC
. Para todas as outras chaves, pode usarPEM
ou omitir este parâmetro.
Se o formato da chave pública for omitido para uma chave não PQC, o resultado é semelhante ao seguinte:
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
Para um algoritmo PQC com o formato de chave pública
NIST_PQC
, o resultado é semelhante ao seguinte:{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
Converta uma chave pública para o formato JWK
O Cloud KMS permite-lhe obter uma chave pública no formato PEM. Algumas aplicações podem exigir outros formatos de chaves, como a chave Web JSON (JWK). Para mais informações sobre o formato JWK, consulte o RFC 7517.
Para converter uma chave pública para o formato JWK, siga estes passos:
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Controle o acesso a chaves assimétricas
Um signatário ou um validador requer a autorização ou a função adequada na chave assimétrica.
Para um utilizador ou um serviço que vai realizar a assinatura, conceda a autorização
cloudkms.cryptoKeyVersions.useToSign
na chave assimétrica.Para um utilizador ou um serviço que vai obter a chave pública, conceda a função
cloudkms.cryptoKeyVersions.viewPublicKey
na chave assimétrica. A chave pública é necessária para a validação da assinatura.
Saiba mais acerca das autorizações e funções na versão do Cloud KMS em Autorizações e funções.
Crie uma chave de assinatura MAC
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves para o qual vai criar uma chave.
Clique em Criar chave.
Em Nome da chave, introduza um nome para a chave.
Para o Nível de proteção, selecione Software ou HSM.
Para Material da chave, selecione Chave gerada.
Em Finalidade, selecione Assinatura/validação de MAC.
Opcional: para Algoritmo, selecione um algoritmo de assinatura HMAC.
Clique em Criar.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
Substitua o seguinte:
KEY_NAME
: o nome da chave.KEY_RING
: o nome do conjunto de chaves que contém a chave.LOCATION
: a localização do Cloud KMS do conjunto de chaves.ALGORITHM
: o algoritmo de assinatura HMAC, por exemplo,hmac-sha256
. Para ver todos os algoritmos HMAC suportados, consulte os algoritmos de assinatura HMAC.PROTECTION_LEVEL
: o nível de proteção da chave, por exemplo,hsm
. Pode omitir a flag--protection-level
parasoftware
chaves.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.
API
Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.
Para criar uma chave, use o método
CryptoKey.create
:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o conjunto de chaves.LOCATION
: a localização do Cloud KMS do conjunto de chaves.KEY_RING
: o nome do conjunto de chaves que contém a chave.KEY_NAME
: o nome da chave.PROTECTION_LEVEL
: o nível de proteção da chave, por exemplo,SOFTWARE
ouHSM
.ALGORITHM
: o algoritmo de assinatura HMAC, por exemplo,HMAC_SHA256
. Para ver todos os algoritmos HMAC suportados, consulte os algoritmos de assinatura HMAC.
O que se segue?
- Saiba mais acerca da rotação de chaves.
- Saiba como criar e validar assinaturas.
- Saiba como encriptar e desencriptar dados com uma chave RSA.
- Saiba como obter uma chave pública.
-