Nesta página, mostramos como recuperar a parte da chave pública de uma versão de chave assimétrica ativada.
O formato da chave pública depende de ela ser um algoritmo de computação pós-quântica (PQC, na sigla em inglês) ou convencional:
Para algoritmos não PQC, o formato padrão da chave pública é o Privacy-enhanced Electronic Mail (PEM). Também é possível recuperar chaves públicas não PQC no formato Distinguished Encoding Rules (DER). Para mais informações, consulte o RFC 7468, principalmente as seções "Considerações gerais" e "Codificação textual de informações de chave pública do assunto".
Para algoritmos PQC padronizados pelo NIST (pré-lançamento), é possível recuperar a chave pública no formato identificado nos padrões NIST PCQ para esse algoritmo. Para mais informações, consulte FIPS-203, FIPS-204 e FIPS-205. Os formatos PEM e DER são compatíveis apenas com chaves ML-DSA.
Para o X-Wing, é possível recuperar a chave pública no formato de bytes brutos especificado pelo padrão X-Wing. Os formatos PEM e DER não são compatíveis com essas chaves.
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 Visualizador de chave pública do Cloud KMS (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 acessar as permissões exatas que são 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.
Recuperar uma chave pública
É possível especificar o formato em que você 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, ela será retornada 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 Google Cloud console do, 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 Ver chave pública não for exibida, verifique o seguinte:
- A chave é assimétrica.
- A versão da chave está ativada.
- Você tem a permissão
cloudkms.cryptoKeyVersions.viewPublicKey.
O nome do arquivo de uma chave pública baixada do Google Cloud console tem o seguinte 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 do NIST (pré-lançamento), usenist-pqce, para X-Wing, usexwing-raw-bytes. Para todas as outras chaves, é possível usarpem,derou omitir 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. Google Cloud
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 CryptoKeyVersions.getPublicKey método.
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 keyring.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, é possível usarPEMou omitir esse parâmetro.
Se o formato da chave pública for omitido para uma chave não 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 será 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" }