Dienstkonten deaktivieren und aktivieren

Auf dieser Seite wird erläutert, wie Sie Dienstkonten mit der Identity and Access Management (IAM) API, der Cloud de Confiance Console und der gcloud CLI deaktivieren und aktivieren.

Hinweis

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dienstkontoadministrator (roles/iam.serviceAccountAdmin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Dienstkonten 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.

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

Dienstkonto deaktivieren

Ähnlich wie beim Löschen eines Dienstkontos haben Anwendungen beim Deaktivieren eines Dienstkontos darüber keinen Zugriff mehr auf Cloud de Confiance -Ressourcen. Wenn Sie das Compute Engine-Standarddienstkonto deaktivieren, haben die Instanzen keinen Zugriff mehr auf Ressourcen im Projekt. Wenn Sie versuchen, ein bereits deaktiviertes Dienstkonto zu deaktivieren, hat dies keine Auswirkungen.

Im Gegensatz zum Löschen eines Dienstkontos können deaktivierte Dienstkonten bei Bedarf problemlos wieder aktiviert werden. Es wird empfohlen, ein Dienstkonto vor dem Löschen zu deaktivieren, um sicherzustellen, dass keine kritischen Anwendungen das Dienstkonto verwenden. Weitere Informationen finden Sie unter Deaktivieren Sie nicht verwendete Dienstkonten, bevor sie gelöscht werden.

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie ein Projekt aus.

  3. Klicken Sie auf den Namen des Dienstkontos, das Sie deaktivieren möchten.

  4. Klicken Sie unter Dienstkontostatus auf Dienstkonto deaktivieren und dann auf Deaktivieren, um die Änderung zu bestätigen.

gcloud

  1. Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.

    Cloud Shell aktivieren

    Unten in der Cloud de Confiance Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Deaktivieren Sie mit dem Befehl gcloud iam service-accounts disable ein Dienstkonto.

    Befehl:

    gcloud iam service-accounts disable SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com

    Ausgabe:

    Disabled service account SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com

C++

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C++ 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.

namespace iam = ::google::cloud::iam_admin_v1;
[](std::string const& name) {
  iam::IAMClient client(iam::MakeIAMConnection());
  google::iam::admin::v1::DisableServiceAccountRequest request;
  request.set_name(name);
  auto response = client.DisableServiceAccount(request);
  if (!response.ok()) throw std::runtime_error(response.message());
  std::cout << "ServiceAccount successfully disabled.\n";
}

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C# 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.


using System;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Iam.v1;
using Google.Apis.Iam.v1.Data;

public partial class ServiceAccounts
{
    public static void DisableServiceAccount(string email)
    {
        var credential = GoogleCredential.GetApplicationDefault()
            .CreateScoped(IamService.Scope.CloudPlatform);
        var service = new IamService(new IamService.Initializer
        {
            HttpClientInitializer = credential
        });

        var request = new DisableServiceAccountRequest();

        string resource = "projects/-/serviceAccounts/" + email;
        service.Projects.ServiceAccounts.Disable(request, resource).Execute();
        Console.WriteLine("Disabled service account: " + email);
    }
}

Go

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Go 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 (
	"context"
	"fmt"
	"io"

	iam "google.golang.org/api/iam/v1"
)

// disableServiceAccount disables a service account.
func disableServiceAccount(w io.Writer, email string) error {
	// email:= service-account@your-project.iam.gserviceaccount.com
	ctx := context.Background()
	service, err := iam.NewService(ctx)
	if err != nil {
		return fmt.Errorf("iam.NewService: %w", err)
	}

	request := &iam.DisableServiceAccountRequest{}
	_, err = service.Projects.ServiceAccounts.Disable("projects/-/serviceAccounts/"+email, request).Do()
	if err != nil {
		return fmt.Errorf("Projects.ServiceAccounts.Disable: %w", err)
	}
	fmt.Fprintf(w, "Disabled service account: %v", email)
	return nil
}

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 com.google.iam.admin.v1.DisableServiceAccountRequest;
import java.io.IOException;

public class DisableServiceAccount {

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

    disableServiceAccount(projectId, serviceAccountName);
  }

  // Disables a service account.
  public static void disableServiceAccount(String projectId, String accountName)
          throws IOException {
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);

    // 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.disableServiceAccount(DisableServiceAccountRequest.newBuilder()
              .setName(String.format("projects/%s/serviceAccounts/%s", projectId, email))
              .build());

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

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Python 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 time

from google.cloud import iam_admin_v1
from google.cloud.iam_admin_v1 import types


def disable_service_account(project_id: str, account: str) -> types.ServiceAccount:
    """Disables a service account.

    project_id: ID or number of the Google Cloud project you want to use.
    account: ID or email which is unique identifier of the service account.
    """

    iam_admin_client = iam_admin_v1.IAMClient()
    request = types.DisableServiceAccountRequest()
    name = f"projects/{project_id}/serviceAccounts/{account}"
    request.name = name

    iam_admin_client.disable_service_account(request=request)
    time.sleep(5)  # waiting to make sure changes applied

    get_request = types.GetServiceAccountRequest()
    get_request.name = name

    service_account = iam_admin_client.get_service_account(request=get_request)
    if service_account.disabled:
        print(f"Disabled service account: {account}")
    return service_account

REST

Mit der Methode serviceAccounts.disable wird ein Dienstkonto sofort deaktiviert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Cloud de Confiance Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • SA_ID: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im Format SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com oder die eindeutige numerische ID des Dienstkontos sein.

HTTP-Methode und URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:disable

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

Bei Erfolg ist der Antworttext leer.

Dienstkonto aktivieren

Nach der Aktivierung eines deaktivierten Dienstkontos erhalten Anwendungen über dieses Dienstkonto wieder Zugriff aufCloud de Confiance -Ressourcen.

Sie können jederzeit ein deaktiviertes Dienstkonto wieder aktivieren. Wenn Sie versuchen, ein bereits aktiviertes Dienstkonto zu aktivieren, hat dies keine Auswirkungen.

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie ein Projekt aus.

  3. Klicken Sie auf den Namen des Dienstkontos, das Sie aktivieren möchten.

  4. Klicken Sie unter Dienstkontostatus auf Dienstkonto aktivieren und dann auf Aktivieren, um die Änderung zu bestätigen.

gcloud

  1. Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.

    Cloud Shell aktivieren

    Unten in der Cloud de Confiance Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie den Befehl gcloud iam service-accounts enable aus, um ein Dienstkonto zu aktivieren.

    Befehl:

    gcloud iam service-accounts enable SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com

    Ausgabe:

    Enabled service account SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com

C++

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C++ 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.

namespace iam = ::google::cloud::iam_admin_v1;
[](std::string const& name) {
  iam::IAMClient client(iam::MakeIAMConnection());
  google::iam::admin::v1::EnableServiceAccountRequest request;
  request.set_name(name);
  auto response = client.EnableServiceAccount(request);
  if (!response.ok()) throw std::runtime_error(response.message());
  std::cout << "ServiceAccount successfully enabled.\n";
}

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C# 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.


using System;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Iam.v1;
using Google.Apis.Iam.v1.Data;

public partial class ServiceAccounts
{
    public static void EnableServiceAccount(string email)
    {
        var credential = GoogleCredential.GetApplicationDefault()
            .CreateScoped(IamService.Scope.CloudPlatform);
        var service = new IamService(new IamService.Initializer
        {
            HttpClientInitializer = credential
        });

        var request = new EnableServiceAccountRequest();

        string resource = "projects/-/serviceAccounts/" + email;
        service.Projects.ServiceAccounts.Enable(request, resource).Execute();
        Console.WriteLine("Enabled service account: " + email);
    }
}

Go

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Go 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 (
	"context"
	"fmt"
	"io"

	iam "google.golang.org/api/iam/v1"
)

// enableServiceAccount enables a service account.
func enableServiceAccount(w io.Writer, email string) error {
	// email:= service-account@your-project.iam.gserviceaccount.com
	ctx := context.Background()
	service, err := iam.NewService(ctx)
	if err != nil {
		return fmt.Errorf("iam.NewService: %w", err)
	}

	request := &iam.EnableServiceAccountRequest{}
	_, err = service.Projects.ServiceAccounts.Enable("projects/-/serviceAccounts/"+email, request).Do()
	if err != nil {
		return fmt.Errorf("Projects.ServiceAccounts.Enable: %w", err)
	}
	fmt.Fprintf(w, "Enabled service account: %v", email)
	return nil
}

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 com.google.iam.admin.v1.EnableServiceAccountRequest;
import java.io.IOException;


public class EnableServiceAccount {

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

    enableServiceAccount(projectId, serviceAccountName);
  }

  // Enables a service account.
  public static void enableServiceAccount(String projectId, String accountName)
          throws IOException {
    String email = String.format("%s@%s.iam.gserviceaccount.com", accountName, projectId);

    // 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.enableServiceAccount(EnableServiceAccountRequest.newBuilder()
              .setName(String.format("projects/%s/serviceAccounts/%s", projectId, email))
              .build());

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

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur Python 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 time

from google.cloud import iam_admin_v1
from google.cloud.iam_admin_v1 import types


def enable_service_account(project_id: str, account: str) -> types.ServiceAccount:
    """Enables a service account.

    project_id: ID or number of the Google Cloud project you want to use.
    account: ID or email which is unique identifier of the service account.
    """

    iam_admin_client = iam_admin_v1.IAMClient()
    request = types.EnableServiceAccountRequest()
    name = f"projects/{project_id}/serviceAccounts/{account}"
    request.name = name

    iam_admin_client.enable_service_account(request=request)
    time.sleep(5)  # waiting to make sure changes applied

    get_request = types.GetServiceAccountRequest()
    get_request.name = name

    service_account = iam_admin_client.get_service_account(request=get_request)
    if not service_account.disabled:
        print(f"Enabled service account: {account}")
    return service_account

REST

Mit der Methode serviceAccounts.enable wird ein zuvor deaktiviertes Dienstkonto aktiviert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Cloud de Confiance Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • SA_ID: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im Format SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com oder die eindeutige numerische ID des Dienstkontos sein.

HTTP-Methode und URL:

POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:enable

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

Bei Erfolg ist der Antworttext leer.

Nächste Schritte