Dienstkontoschlüssel deaktivieren und aktivieren

Auf dieser Seite wird erläutert, wie Sie Dienstkontoschlüssel mit derTrusted Cloud console, der Google Cloud CLI, der Identity and Access Management API oder einer der Google Cloud-Clientbibliotheken aktivieren und deaktivieren.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Service Account Key Admin (roles/iam.serviceAccountKeyAdmin) für das Projekt oder für das Dienstkonto, dessen Schlüssel Sie verwalten möchten, zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Deaktivieren und Aktivieren von Dienstkontoschlüsseln benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Weitere Informationen finden Sie unter Dienstkontenrollen.

Einfache IAM-Rollen enthalten auch Berechtigungen zum Verwalten von Dienstkontoschlüsseln. In einer Produktionsumgebung sollten Sie keine einfachen Rollen zuweisen, Sie können sie aber in einer Entwicklungs- oder Testumgebung gewähren.

Dienstkontoschlüssel deaktivieren

Wenn Sie einen Dienstkontoschlüssel deaktivieren, können Sie den Schlüssel nicht für die Authentifizierung bei Google APIs nutzen. Sie können jederzeit deaktivierte Schlüssel aktivieren.

Bevor Sie einen Dienstkontoschlüssel löschen, sollten Sie den Schlüssel deaktivieren und warten, bis Sie sicher sind, dass der Schlüssel nicht mehr benötigt wird. Anschließend können Sie den Schlüssel löschen.

Sie können deaktivierte Schlüssel in der Trusted Cloud Console ansehen, aber nicht mit derTrusted Cloud Console deaktivieren. Verwenden Sie stattdessen die gcloud CLI oder die REST API.

gcloud

Deaktivieren Sie mit dem Befehl gcloud iam service-accounts keys disable einen Dienstkontoschlüssel.

Ersetzen Sie die folgenden Werte:

  • KEY_ID: Die ID des zu deaktivierenden Schlüssels. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu deaktivierenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.
  • SA_NAME: Der Name des Dienstkontos, zu dem der Schlüssel gehört.
  • PROJECT_ID: Ihre Trusted Cloud -Projekt-ID
gcloud iam service-accounts keys disable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com \
    --project=PROJECT_ID

Ausgabe:

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

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Java API.

Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.


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

Mit der projects.serviceAccounts.keys.disable-Methode wird ein Dienstkontoschlüssel deaktiviert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Trusted Cloud -Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • SA_NAME: den Namen des Dienstkontos, dessen Schlüssel Sie deaktivieren möchten.
  • KEY_ID: Die ID des Schlüssels, den Sie deaktivieren möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu deaktivierenden Schlüssel und kopieren Sie seine ID am Ende von Feld name, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was auf keys/ folgt.

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
}

Dienstkontoschlüssel aktivieren

Nachdem Sie einen Dienstkontoschlüssel deaktiviert haben, können Sie ihn jederzeit wieder aktivieren und dann für die Authentifizierung bei Google APIs verwenden.

Sie können die Trusted Cloud Console nicht verwenden, um Dienstkontoschlüssel zu aktivieren. Verwenden Sie stattdessen die gcloud CLI oder die REST API.

gcloud

Führen Sie den Befehl gcloud iam service-accounts keys enable aus, um einen Dienstkontoschlüssel zu aktivieren.

Ersetzen Sie die folgenden Werte:

  • KEY_ID: Die ID des zu aktivierenden Schlüssels. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den abzurufenden Schlüssel und kopieren Sie seine ID, um die ID des Schlüssels zu ermitteln.
  • SA_NAME: Der Name des Dienstkontos, zu dem der Schlüssel gehört.
  • PROJECT_ID: Ihre Trusted Cloud -Projekt-ID.
gcloud iam service-accounts keys enable KEY_ID \
    --iam-account=SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com\
    --project=PROJECT_ID

Ausgabe:

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

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Java API.

Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.


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

Die projects.serviceAccounts.keys.enable-Methode aktiviert einen Dienstkontoschlüssel.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Trusted Cloud -Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • SA_NAME: den Namen des Dienstkontos, dessen Schlüssel Sie aktivieren möchten.
  • KEY_ID: Die ID des Schlüssels, den Sie aktivieren möchten. Listen Sie alle Schlüssel für das Dienstkonto auf, identifizieren Sie den zu aktivierenden Schlüssel und kopieren Sie seine ID am Ende von Feld name, um die ID des Schlüssels zu finden. Die ID des Schlüssels ist alles, was auf keys/ folgt.

HTTP-Methode und URL:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
}

Nächste Schritte