Recuperare una chiave pubblica

Questa pagina mostra come recuperare la parte della chiave pubblica di una versione di chiave asimmetrica abilitata.

Il formato della chiave pubblica dipende dal fatto che si tratti di un algoritmo di calcolo post-quantistico (PQC) o convenzionale:

  • Per gli algoritmi non PQC, il formato predefinito della chiave pubblica è il formato Privacy-enhanced Electronic Mail (PEM). Puoi anche recuperare chiavi pubbliche non PQC nel formato Distinguished Encoding Rules (DER). Per saperne di più, consulta l'RFC 7468, in particolare le sezioni "General Considerations" (Considerazioni generali) e "Textual Encoding of Subject Public Key Info" (Codifica testuale delle informazioni sulla chiave pubblica del soggetto).

  • Per gli algoritmi post-quantistici standardizzati dal NIST, puoi recuperare la chiave pubblica nel formato identificato negli standard NIST PCQ per quell'algoritmo. Per ulteriori informazioni, consulta FIPS-203, FIPS-204 e FIPS-205. I formati PEM e DER sono supportati solo per le chiavi ML-DSA.

  • Per X-Wing, puoi recuperare la chiave pubblica nel formato di byte non elaborati specificato dallo standard X-Wing. I formati PEM e DER non sono supportati per queste chiavi.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per recuperare una chiave pubblica, chiedi all'amministratore di concederti il ruolo IAM Cloud KMS CryptoKey Public Key Viewer (roles/cloudkms.publicKeyViewer) sulla chiave o su una risorsa padre. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per recuperare una chiave pubblica. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per recuperare una chiave pubblica sono necessarie le seguenti autorizzazioni:

  • cloudkms.cryptoKeyVersions.viewPublicKey
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Recuperare una chiave pubblica

Puoi specificare il formato in cui vuoi recuperare la chiave pubblica. Se il formato è specificato, la chiave verrà restituita nel formato specificato nel campo public_key della risposta. In caso contrario, viene restituito nel campo pem della risposta.

Per scaricare la chiave pubblica per una versione della chiave asimmetrica abilitata:

Console

  1. Nella console Google Cloud , vai alla pagina Key Management.

    Vai a Gestione delle chiavi

  2. Fai clic sul nome delle chiavi automatizzate contenenti la chiave asimmetrica per cui vuoi recuperare la chiave pubblica.

  3. Fai clic sul nome della chiave per cui vuoi recuperare la chiave pubblica.

  4. Nella riga corrispondente alla versione della chiave per cui vuoi recuperare la chiave pubblica, fai clic su Visualizza altro .

  5. Fai clic su Scarica chiave pubblica.

  6. La chiave pubblica viene visualizzata nel prompt. Puoi copiare la chiave pubblica negli appunti. Per scaricare la chiave pubblica, fai clic su Scarica.

Se non vedi l'opzione Ottieni chiave pubblica, verifica quanto segue:

  • La chiave è una chiave asimmetrica.
  • La versione della chiave è abilitata.
  • Disponi dell'autorizzazione cloudkms.cryptoKeyVersions.viewPublicKey.

Il nome file di una chiave pubblica scaricata dalla console Google Cloud ha il seguente formato:

KEY_RING-KEY_NAME-KEY_VERSION.pub

Ogni parte del nome file è separata da un trattino, ad esempio ringname-keyname-version.pub.

gcloud

Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di 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

Sostituisci quanto segue:

  • KEY_VERSION: il numero di versione della chiave.
  • KEY_NAME: il nome della chiave.
  • KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.
  • LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.
  • PUBLIC_KEY_FORMAT: il formato in cui vuoi esportare la chiave pubblica. Per gli algoritmi NIST PQC, utilizza nist-pqc e per X-Wing utilizza xwing-raw-bytes. Per tutte le altre chiavi, puoi utilizzare pem, der o omettere questo parametro.
  • OUTPUT_FILE_PATH: il percorso in cui vuoi salvare il file della chiave pubblica, ad esempio public-key.pub.

Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.

C#

Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.


using Google.Cloud.Kms.V1;

public class GetPublicKeySample
{
    public PublicKey GetPublicKey(string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key", string keyVersionId = "123")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key version name.
        CryptoKeyVersionName keyVersionName = new CryptoKeyVersionName(projectId,