Disattivare e attivare le chiavi dei account di servizio

Questa pagina spiega come disattivare e attivare le chiavi degli account di servizio utilizzando la console Google Cloud, Google Cloud CLI, l'API Identity and Access Management o una delle librerie client di Google Cloud.

Prima di iniziare

  • Enable the IAM API.

    Enable the API

  • Configurare l'autenticazione.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    Java

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

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.

    REST

    Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

  • Scopri di più sulle credenziali dell'account di servizio.

Ruoli obbligatori

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

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

Per ulteriori informazioni, consulta Ruoli degli account di servizio.

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

Disattivare una chiave dell'account di servizio

La disattivazione di una chiave dell'account di servizio ti impedisce di utilizzarla per autenticarti con le API di Google. Puoi attivare una chiave disattivata in qualsiasi momento.

Prima di eliminare una chiave dell'account di servizio, ti consigliamo di disattivarla e di attendere fino a quando non avrai la certezza che non sia più necessaria. Dopodiché puoi eliminare la chiave.

Puoi visualizzare le chiavi disattivate nella console Google Cloud, ma non puoi utilizzare la console 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 dell'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 per l'account di servizio, identifica la chiave che vuoi disattivare e poi copia il relativo ID.
  • SA_NAME: il nome dell'account di servizio a cui appartiene la chiave.
  • PROJECT_ID: l'ID del tuo 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 ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM Java.

Per autenticarti in IAM, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 dell'account di servizio.

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

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project.
  • SA_NAME: il nome dell'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 per l'account di servizio, 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:

{
}

Attivare una chiave dell'account di servizio

Dopo aver disattivato una chiave dell'account di servizio, puoi riattivarla in qualsiasi momento e poi utilizzarla per autenticarti con le API di Google.

Non puoi utilizzare la console Google Cloud per attivare le chiavi dell'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 attivare 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 per l'account di servizio, identifica la chiave che vuoi attivare e poi copia il relativo ID.
  • SA_NAME: il nome dell'account di servizio a cui appartiene la chiave.
  • PROJECT_ID: l'ID del tuo 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 ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM Java.

Per autenticarti in IAM, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 attiva una chiave dell'account di servizio.

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

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project.
  • SA_NAME: il nome dell'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 per l'account di servizio, 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Inizia gratuitamente