Nesta página, mostramos como criar uma chave assimétrica. Você pode usar uma chave assimétrica para criptografia ou assinatura.
Também é possível criar uma chave de criptografia simétrica, uma chave do Cloud HSM ou uma chave do Cloud External Key Manager.
Visão geral
Ao criar uma chave, você a adiciona a um keyring em um determinado local do Google Cloud. Você pode criar um novo keyring ou usar um atual. Neste tópico, você cria um novo keyring e adiciona uma nova chave a ele.
Criar um keyring
Siga estas etapas para criar um keyring para a nova chave. Se você quiser usar um keyring existente, crie uma chave.
Console
Acesse a página Gerenciamento de chaves no console do Google Cloud.
Clique em Criar keyring.
No campo Nome do keyring, digite o nome do seu keyring.
Na lista suspensa Local do keyring, selecione um local como
"us-east1"
.Clique em Criar.
gcloud CLI
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keyrings create key-ring \ --location location
Substitua key-ring pelo nome do keyring. Substitua location pelo local do Cloud KMS para o keyring e as chaves.
Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help
.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Google Cloud e instalar o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
API
Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings?key_ring_id=key-ring-id" \ --request "POST" \ --header "authorization: Bearer token"
Consulte a documentação da API KeyRing.create
para mais informações.
Crie uma chave de descriptografia assimétrica
Siga estas etapas para criar uma chave de descriptografia assimétrica no keyring e no local especificados. Estes exemplos usam um nível de proteção software
e um algoritmo rsa-decrypt-oaep-2048-sha256
Quando você cria a chave pela primeira vez, a versão inicial dela tem um estado geração pendente. Quando o estado muda para ativado, você pode usar a chave. Para saber mais sobre os estados da versão da chave, consulte Estados da chave.
Console
Acesse a página Gerenciamento de chaves no console do Google Cloud.
Clique no nome do keyring em que a chave será criada.
Clique em Criar chave.
Em Que tipo de chave você quer criar?, escolha Chave gerada.
No campo Nome da chave, insira o nome da sua chave.
Clique na lista suspensa Nível de proteção e selecione Software.
Clique na lista suspensa Finalidade e selecione Descriptografia assimétrica.
Clique na lista suspensa Algoritmo e selecione RSA de 2048 bits - Padding OAEP - Resumo SHA256. É possível alterar esse valor em versões futuras da chave.
Clique em Criar.
gcloud CLI
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keys create key \ --keyring key-ring \ --location location \ --purpose "asymmetric-encryption" \ --default-algorithm "rsa-decrypt-oaep-2048-sha256"
Substitua key por um nome para a nova chave. Substitua key-ring pelo nome do keyring atual em que a chave estará localizada. Substitua location pelo local do Cloud KMS para o keyring.
Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help
.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Google Cloud e instalar o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
API
Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.
Crie uma chave de descriptografia assimétrica chamando CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys?crypto_key_id=crypto-key-id" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "algorithm"}}'
Substitua algorithm por um algoritmo apropriado para operações ASYMMETRIC_DECRYPT
, por exemplo, RSA_DECRYPT_OAEP_2048_SHA256
.
Crie uma chave de assinatura assimétrica
Siga estas etapas para criar uma chave de assinatura assimétrica no keyring e no local especificados. Estes exemplos usam um nível de proteção software
e um algoritmo rsa-sign-pkcs1-2048-sha256
Quando você cria a chave pela primeira vez, a versão inicial dela tem um estado geração pendente. Quando o estado muda para ativado, você pode usar a chave. Para saber mais sobre os estados da versão da chave, consulte Estados da chave.
Console
Acesse a página Gerenciamento de chaves no console do Google Cloud.
Clique no nome do keyring em que a chave será criada.
Clique em Criar chave.
Em Que tipo de chave você quer criar?, escolha Chave gerada.
No campo Nome da chave, insira o nome da sua chave.
Clique na lista suspensa Nível de proteção e selecione Software.
Clique na lista suspensa Finalidade e selecione Sinal assimétrica.
Clique na lista suspensa Algoritmo e selecione RSA de 2048 bits - Padding PKCS#1 v1.5 - Resumo SHA256. É possível alterar esse valor em versões futuras da chave.
Clique em Criar.
gcloud CLI
Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.
gcloud kms keys create key \ --keyring key-ring \ --location location \ --purpose "asymmetric-signing" \ --default-algorithm "rsa-sign-pkcs1-2048-sha256"
Substitua key por um nome para a chave. Substitua key-ring pelo nome do keyring atual em que a chave estará localizada. Substitua location pelo local do Cloud KMS para o keyring.
Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help
.
C#
Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.
Go
Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.
Java
Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.
Node.js
Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.
PHP
Para executar esse código, primeiro saiba como usar o PHP no Google Cloud e instalar o SDK do Cloud KMS para PHP.
Python
Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.
Ruby
Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.
API
Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.
Crie uma chave de assinatura assimétrica chamando CryptoKey.create
.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys?crypto_key_id=crypto-key-id" \ --request "POST" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "algorithm"}}'
Substitua algorithm por um algoritmo apropriado para operações ASYMMETRIC_SIGN
, por exemplo, RSA_SIGN_PSS_2048_SHA256
.
Controlar o acesso a chaves assimétricas
Um signatário ou validador exige a permissão ou o papel apropriado na chave assimétrica.
Para um usuário ou serviço que executará a assinatura, conceda a permissão
cloudkms.cryptoKeyVersions.useToSign
na chave assimétrica.Para um usuário ou serviço que recuperará a chave pública, conceda o
cloudkms.cryptoKeyVersions.viewPublicKey
na chave assimétrica. A chave pública é necessária para a validação da assinatura.
Saiba mais sobre permissões e papéis na versão do Cloud KMS em Permissões e papéis.
A seguir
- Saiba mais sobre Como criar e validar assinaturas.
- Saiba mais sobre Como criptografar e descriptografar dados com uma chave RSA.
- Saiba mais sobre Como recuperar uma chave pública.