Esta página mostra como recuperar a parte da chave pública de uma versão de chave assimétrica ativada.
Para algoritmos de computação pós-quântica (PQC, na sigla em inglês) (pré-lançamento), a chave pública está no formato identificado nos padrões PQC do NIST FIPS-203, FIPS-204 e FIPS-205. Para todos os outros algoritmos (não PQC), a chave pública está no formato Privacy-enhanced Electronic Mail (PEM). Para mais informações, consulte as seções do RFC 7468 referentes a Considerações gerais e Codificação textual de informações de chave pública do assunto.
Funções exigidas
Para ter as permissões necessárias para recuperar uma chave pública, peça ao administrador para conceder a você o papel do IAM de Leitor de chave pública do Cloud KMS CryptoKey (roles/cloudkms.publicKeyViewer
) na chave ou em um recurso pai.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para recuperar uma chave pública. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para recuperar uma chave pública:
-
cloudkms.cryptoKeyVersions.viewPublicKey
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Extrair uma chave pública
Você pode especificar o formato em que quer recuperar a chave pública.
Se o formato for especificado, a chave será retornada no formato especificado
no campo public_key
da resposta. Caso contrário, ele será retornado no
campo pem
da resposta.
Para fazer o download da chave pública de uma versão de chave assimétrica ativada, faça o seguinte:
Console
No console do Google Cloud, acesse a página Gerenciamento de chaves.
Clique no nome do keyring que contém a chave assimétrica para a qual você quer recuperar a chave pública.
Clique no nome da chave para a qual você quer recuperar a chave pública.
Na linha correspondente à versão da chave para a qual você quer recuperar a chave pública, clique em Ver mais
.Clique em Conseguir chave pública.
A chave pública é exibida no prompt. Você pode copiar a chave pública para a área de transferência. Para fazer o download da chave pública, clique em Fazer download.
Se a opção Obter chave pública não aparecer, verifique o seguinte:
- A chave é assimétrica.
- A versão da chave está ativada.
- Você tem a permissão
cloudkms.cryptoKeyVersions.viewPublicKey
.
O nome de arquivo de uma chave pública salva do console do Google Cloud é do formato:
KEY_RING-KEY_NAME-KEY_VERSION.pub
Cada parte do nome do arquivo é separada por um hífen, por exemplo,
ringname-keyname-version.pub
gcloud
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 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:
KEY_VERSION
: o número da versão da chave.KEY_NAME
: o nome da chave;KEY_RING
: o nome do keyring que contém a chave.LOCATION
: o local do Cloud KMS do keyring.PUBLIC_KEY_FORMAT
: o formato em que você quer exportar a chave pública. Para algoritmos PQC (pré-lançamento), usenist-pqc
. Para todas as outras chaves, usepem
ou omita esse parâmetro.OUTPUT_FILE_PATH
: o caminho em que você quer salvar o arquivo de chave pública. Por exemplo,public-key.pub
.
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.
Recupere 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:
PROJECT_ID
: o ID do projeto que contém o chaveiro.LOCATION
: o local do Cloud KMS do keyring.KEY_RING
: o nome do keyring 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 em que você quer exportar a chave pública. Para algoritmos PQC (pré-lançamento), useNIST_PQC
. Para todas as outras chaves, usePEM
ou omita esse parâmetro.
Se o formato da chave pública for omitido para uma chave que não seja PQC, a saída será semelhante a esta:
{ "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 formato de chave pública NIST_PQC
, a saída é semelhante a
esta:
{ "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" }