Carica chiavi degli account di servizio

In questa pagina viene spiegato come caricare una chiave pubblica per un account di servizio. Dopo aver caricato la chiave pubblica, puoi utilizzare la chiave privata della coppia di chiavi per autenticarti come account di servizio.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per caricare le chiavi degli account di servizio, chiedi all'amministratore di concederti il ruolo IAM Amministratore chiavi account di servizio (roles/iam.serviceAccountKeyAdmin) sul progetto o all'account di servizio di cui vuoi gestire le chiavi. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per maggiori informazioni, consulta la pagina relativa ai ruoli degli account di servizio.

I ruoli IAM di base contengono anche le autorizzazioni per gestire le chiavi degli account di servizio. Non devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli in un ambiente di sviluppo o test.

Carica una chiave pubblica per un account di servizio

Puoi caricare la parte di chiave pubblica di una coppia di chiavi gestita dall'utente per associarla a un account di servizio. Dopo aver caricato la chiave pubblica, puoi utilizzare la chiave privata della coppia di chiavi come chiave dell'account di servizio.

La chiave che carichi deve essere una chiave pubblica RSA inserita in un certificato X.509 v3 e codificata in base64. Puoi utilizzare strumenti come OpenSSL per generare una chiave e un certificato in questo formato.

Non includere informazioni private nel certificato X.509. In particolare, utilizza un argomento generico e non aggiungere attributi facoltativi. I certificati sono visibili pubblicamente; le informazioni private contenute nel certificato sono visibili a chiunque lo recuperi. Per ulteriori informazioni, consulta Evitare di divulgare informazioni riservate nei certificati X.509 caricati.

Ad esempio, il seguente comando genera una coppia di chiave RSA a 2048 bit e inserisce la chiave pubblica in un certificato autofirmato valido per 365 giorni:

openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
    -keyout /path/to/private_key.pem \
    -out /path/to/public_key.pem \
    -subj "/CN=unused"

Puoi quindi caricare il file public_key.pem come chiave pubblica per un account di servizio.

Console

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai ad Account di servizio

    I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.

  2. Seleziona un progetto.
  3. Nella pagina Account di servizio, fai clic sull'indirizzo email dell'account di servizio per cui vuoi caricare una chiave.
  4. Fai clic sulla scheda Chiavi.
  5. Fai clic sul menu a discesa Aggiungi chiave, quindi seleziona Carica chiave esistente.
  6. Fai clic su Sfoglia, quindi trova e seleziona il file della chiave pubblica. In alternativa, puoi copiare e incollare il contenuto del file della chiave pubblica nella casella Incolla una chiave esistente.
  7. Fai clic su Carica.

gcloud

Esegui il comando gcloud iam service-accounts keys upload per caricare una chiave pubblica per la firma delle chiavi degli account di servizio.

Sostituisci i seguenti valori:

  • KEY_FILE: il percorso del file contenente i dati della chiave da caricare, ad esempio ./public_key.pem.
  • SA_NAME: il nome dell'account di servizio per cui caricare una chiave.
  • PROJECT_ID: l'ID del tuo progetto Google Cloud.
gcloud iam service-accounts keys upload KEY_FILE \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com

L'output contiene un identificatore univoco per la chiave caricata:

Name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0

Per determinare se il comando è riuscito, esegui il comando gcloud iam service-accounts keys list:

gcloud iam service-accounts keys list \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com

L'output conterrà lo stesso identificatore univoco restituito dopo la creazione della chiave:

KEY_ID CREATED_AT EXPIRES_AT DISABILITATA
c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0 2019-06-26T21:01:42Z 9999-12-31T23:59:59Z  

REST

Il metodo projects.serviceAccounts.keys.upload carica la chiave pubblica da una coppia di chiavi gestita dall'utente e la aggiunge all'account di servizio.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche come my-project.
  • SA_NAME: il nome dell'account di servizio a cui associare la chiave.
  • PUBLIC_KEY_DATA: i dati della chiave pubblica per la coppia di chiavi. Deve essere una chiave pubblica RSA sottoposta a wrapping in un certificato X.509 v3. Codifica i dati della chiave pubblica in formato base64, inclusi la prima riga -----BEGIN CERTIFICATE----- e l'ultima riga -----END CERTIFICATE-----.

Metodo HTTP e URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys:upload

Corpo JSON della richiesta:

{
  "publicKeyData": "PUBLIC_KEY_DATA"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0",
  "validAfterTime": "2020-05-17T19:31:19Z",
  "validBeforeTime": "2021-05-17T19:31:19Z",
  "keyAlgorithm": "KEY_ALG_RSA_2048",
  "keyOrigin": "USER_PROVIDED",
  "keyType": "USER_MANAGED"
}

Disabilita caricamenti chiave pubblica

Per disattivare la possibilità di caricare chiavi per il progetto, consulta Limitazione del caricamento delle chiavi dell'account di servizio.

Passaggi successivi

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Inizia gratuitamente