Disabilita e abilita le chiavi account di servizio

Questa pagina spiega come disabilitare e abilitare le chiavi del account di servizio utilizzando la consoleGoogle Cloud , Google Cloud CLI , l'API Identity and Access Management o una delle librerie client di Google Cloud .

Prima di iniziare

  • Abilita l'API IAM.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  • Configurare l'autenticazione.

    Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:

    gcloud

    Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

    Java

    Per utilizzare gli esempi Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

    1. Installa Google Cloud CLI.

    2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    3. Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:

      gcloud auth application-default login

      Non è necessario eseguire questa operazione se utilizzi Cloud Shell.

      Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

  • Comprendi le credenziali del service account.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per disattivare e attivare le chiavi del account di servizio, chiedi all'amministratore di concederti il ruolo IAM Amministratore chiavi service account (roles/iam.serviceAccountKeyAdmin) sul progetto o sul account di servizio di cui vuoi gestire le chiavi. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

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

Disabilitare una chiave account di servizio

La disattivazione di una chiave del account di servizio impedisce l'utilizzo della chiave per l'autenticazione con le API di Google. Puoi attivare una chiave disattivata in qualsiasi momento.

Prima di eliminare una account di servizio account, ti consigliamo di disattivarla e poi di attendere finché non avrai la certezza che non sia più necessaria. A questo punto puoi eliminare la chiave.

Puoi visualizzare le chiavi disattivate nella console Google Cloud , ma non puoi utilizzare la consoleGoogle Cloud per disattivare una chiave. Utilizza invece gcloud CLI o l'API REST.

gcloud

Esegui il comando gcloud iam service-accounts keys disable per disattivare una chiave del account di servizio.

Sostituisci i seguenti valori:

  • KEY_ID: l'ID della chiave da disattivare. Per trovare l'ID della chiave, elenca tutte le chiavi del service account, identifica la chiave che vuoi disattivare e poi copia il relativo ID.
  • SA_NAME: il nome del account di servizio a cui appartiene la chiave.
  • PROJECT_ID: l'ID progetto Google Cloud .
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --project=PROJECT_ID

Output:

Disabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.

Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class DisableServiceAccountKey {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the below variables before running.
    String projectId = "gcloud-project-id";
    String serviceAccountName = "service-account-name";
    String serviceAccountKeyName = "service-account-key-name";

    disableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Disables a service account key.
  public static void disableServiceAccountKey(String projectId,
                                              String accountName,
                                              String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to disable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#disabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (IAMClient iamClient = IAMClient.create()) {
      iamClient.disableServiceAccountKey(name);

      System.out.println("Disabled service account key: " + name);
    }
  }
}

REST

Il metodo projects.serviceAccounts.keys.disable disattiva una chiave del account di servizio.

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

  • PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, come my-project.
  • SA_NAME: il nome del account di servizio di cui vuoi disattivare la chiave.
  • KEY_ID: l'ID della chiave che vuoi disattivare. Per trovare l'ID della chiave, elenca tutte le chiavi del service account, identifica la chiave che vuoi disattivare e poi copia il relativo ID dalla fine del campo name. L'ID della chiave è tutto ciò che segue keys/.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
}

Abilitare una chiave del account di servizio

Dopo aver disattivato una chiave del account di servizio, puoi riattivarla in qualsiasi momento e utilizzarla per l'autenticazione con le API di Google.

Non puoi utilizzare la console Google Cloud per abilitare le chiavi del account di servizio. Utilizza l'interfaccia a riga di comando gcloud o l'API REST.

gcloud

Esegui il comando gcloud iam service-accounts keys enable per abilitare una chiave dell'account di servizio.

Sostituisci i seguenti valori:

  • KEY_ID: l'ID della chiave da attivare. Per trovare l'ID della chiave, elenca tutte le chiavi del service account, identifica la chiave che vuoi attivare e poi copia il relativo ID.
  • SA_NAME: il nome del account di servizio a cui appartiene la chiave.
  • PROJECT_ID: il tuo ID progetto Google Cloud .
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com\
    --project=PROJECT_ID

Output:

Enabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.iam.gserviceaccount.com]

Java

Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.

Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.


import com.google.cloud.iam.admin.v1.IAMClient;
import java.io.IOException;


public class EnableServiceAccountKey {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the below variables before running.
    String projectId = "gcloud-project-id";
    String serviceAccountName = "service-account-name";
    String serviceAccountKeyName = "service-account-key-name";

    enableServiceAccountKey(projectId, serviceAccountName, serviceAccountKeyName);
  }

  // Enables a service account key.
  public static void enableServiceAccountKey(String projectId,
                                             String accountName,
                                             String key) throws IOException {
    // Construct the service account email.
    // You can modify the ".iam.gserviceaccount.com" to match the service account name in which
    // you want to enable the key.
    // See, https://cloud.google.com/iam/docs/creating-managing-service-account-keys#enabling
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);
    String name = String.format("projects/%s/serviceAccounts/%s/keys/%s", projectId, email, key);

    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (IAMClient iamClient = IAMClient.create()) {
      iamClient.enableServiceAccountKey(name);

      System.out.println("Enabled service account key: " + name);
    }
  }
}

REST

Il metodo projects.serviceAccounts.keys.enable consente una chiave del account di servizio.

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

  • PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, come my-project.
  • SA_NAME: Il nome del account di servizio di cui vuoi attivare la chiave.
  • KEY_ID: l'ID della chiave che vuoi attivare. Per trovare l'ID della chiave, elenca tutte le chiavi del service account, identifica la chiave che vuoi attivare e poi copia il relativo ID dalla fine del campo name. L'ID della chiave è tutto ciò che segue keys/.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
}

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 senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.

Inizia senza costi