Disattivare e attivare le chiavi dei account di servizio

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

Prima di iniziare

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.

Per ulteriori informazioni, vedi Ruoli dei service account.

I ruoli di base IAM contengono anche le autorizzazioni per gestire le chiavi del 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 Trusted Cloud , ma non puoi utilizzare la consoleTrusted Cloud per disattivare una chiave. Utilizza invece l'interfaccia a riga di comando gcloud o l'API REST.

gcloud

Esegui il comando gcloud iam service-accounts keys disable per disattivare una chiave delaccount di serviziot.

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: il tuo ID progetto Trusted Cloud .
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com \
    --project=PROJECT_ID

Output:

Disabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.s3ns-system.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 autenticarti in IAM, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.

Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.


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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Trusted 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 per il 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.s3ns-system.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 Trusted 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 dell'account di servizio, 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 Trusted Cloud .
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com\
    --project=PROJECT_ID

Output:

Enabled key [KEY_ID] for service account
[SA_NAME@PROJECT_ID.s3ns-system.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 autenticarti in IAM, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.

Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.


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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Trusted 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.s3ns-system.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