Disattivare e attivare le chiavi dei 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

  • 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 esempi di Java questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

    1. Informazioni sulle 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) nel progetto o nel 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 saperne di più, consulta Ruoli dei service account.

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 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 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 del account di servizio.

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

  • 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 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.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 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 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 consente una chiave dell'account di servizio.

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

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

Inizia gratuitamente