Auf dieser Seite wird erläutert, wie Sie Dienstkonten mit der Identity and Access Management (IAM) API, der Google Cloud Console und dem gcloud
-Befehlszeilentool erstellen und verwalten.
Standardmäßig können Sie jedem Projekt bis zu 100 Dienstkonten hinzufügen, die den Zugriff auf Ihre Ressourcen steuern. Sie haben auch die Möglichkeit, gegebenenfalls eine Kontingenterhöhung anzufordern. Weitere Informationen zu Kontingenten und Limits finden Sie in diesem Artikel.
Hinweis
IAM API aktivieren.
Sie müssen die Informationen zu IAM-Dienstkonten verstehen
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Dienstkonten benötigen:
-
Um Dienstkonten und Dienstkonto-Metadaten aufzurufen: Dienstkonten anzeigen (
roles/iam.serviceAccountViewer
) -
Um Dienstkonten aufzurufen und zu erstellen: Dienstkonten erstellen (
roles/iam.serviceAccountCreator
) -
Um Dienstkonten aufzurufen und zu löschen: Dienstkonten löschen (
roles/iam.serviceAccountDeleter
) -
Um Dienstkonten vollständig zu verwalten (aufrufen, erstellen, aktualisieren, deaktivieren, aktivieren, löschen, wiederherstellen und Zugriff darauf verwalten): Dienstkontoadministrator (
roles/iam.serviceAccountAdmin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Weitere Informationen zu diesen Rollen finden Sie unter Dienstkontenrollen.
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 erstellen
Wenn Sie ein Dienstkonto erstellen, müssen Sie eine alphanumerische ID angeben (in den Beispielen unten SA_NAME
). Beispiel: my-service-account
. Die ID muss zwischen 6 und 30 Zeichen lang sein und alphanumerische Zeichen in Kleinschreibung sowie Bindestriche enthalten. Nachdem Sie ein Dienstkonto erstellt haben, können Sie den Namen nicht mehr ändern.
Der Name des Dienstkontos wird in der E-Mail-Adresse angezeigt, die während der Erstellung bereitgestellt wird. Sie hat folgendes Format: SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Jedes Dienstkonto hat außerdem eine dauerhafte und eindeutige numerische ID, die automatisch erstellt wird.
Außerdem geben Sie beim Erstellen eines Dienstkontos diese Informationen an:
SA_DESCRIPTION
ist eine optionale Beschreibung für das Dienstkonto.SA_DISPLAY_NAME
ist ein Anzeigename für das Dienstkonto.PROJECT_ID
ist die ID des Google Cloud-Projekts.
Nachdem Sie ein Dienstkonto erstellt haben, müssen Sie möglicherweise 60 Sekunden oder länger warten, bis Sie das Dienstkonto verwenden können. Dieses Verhalten tritt auf, weil Lesevorgänge Eventual Consistency haben. Es kann einige Zeit dauern, bis das neue Dienstkonto sichtbar ist. Wenn Sie versuchen, ein Dienstkonto direkt nach dem Erstellen zu lesen oder zu verwenden und eine Fehlermeldung erhalten, können Sie die Anfrage mit exponentiellem Backoff wiederholen.
Console
- Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zu „Dienstkonto erstellen“
Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt. - Wählen Sie ein Cloud-Projekt aus.
- Geben Sie einen Dienstkontonamen ein, der in der Cloud Console angezeigt werden soll.
Die Cloud Console generiert anhand dieses Namens eine Dienstkonto-ID. Bearbeiten Sie gegebenenfalls die ID. Sie können die ID später nicht mehr ändern.
- Optional: Geben Sie eine Beschreibung für das Dienstkonto ein.
- Wenn Sie die Zugriffssteuerungen derzeit nicht festlegen möchten, klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen. Klicken Sie auf Erstellen und fortfahren und fahren Sie mit dem nächsten Schritt fort, wenn Sie die Zugriffssteuerungen jetzt festlegen möchten.
- Optional: Wählen Sie eine oder mehrere IAM-Rollen aus, die dem Dienstkonto für das Projekt zugewiesen werden sollen.
- Klicken Sie auf Weiter, wenn Sie alle Rollen hinzugefügt haben.
- Optional: Fügen Sie im Feld Rolle „Dienstkontonutzer“ Mitglieder hinzu, die die Identität des Dienstkontos annehmen können.
- Optional: Fügen Sie im Feld Rolle "Dienstkontoadministrator" Mitglieder hinzu, die das Dienstkonto verwalten können.
- Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
gcloud CLI
Führen Sie den Befehl
gcloud iam service-accounts create
aus, um das Dienstkonto zu erstellen.gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Ersetzen Sie die folgenden Werte:
SA_NAME
: der Name des DienstkontosDESCRIPTION
: eine optionale Beschreibung des DienstesDISPLAY_NAME
: ein Dienstkontoname, der in der Google Cloud Console angezeigt werden soll
Optional: Führen Sie den Befehl
gcloud projects add-iam-policy-binding
aus, um dem Dienstkonto eine IAM-Rolle für Ihr Projekt zuzuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Ersetzen Sie die folgenden Werte:
PROJECT_ID
: die Projekt-IDSA_NAME
: der Name des DienstkontosROLE_NAME
: ein Rollenname, z. B.roles/compute.osLogin
Optional: Damit Nutzer die Identität des Dienstkontos annehmen können, müssen Sie den Befehl
gcloud iam service-accounts add-iam-policy-binding
ausführen. Damit gewähren Sie einem Nutzer die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser
) für das Dienstkonto:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Ersetzen Sie die folgenden Werte:
PROJECT_ID
: die Projekt-IDSA_NAME
: der Name des DienstkontosUSER_EMAIL
: die E-Mail-Adresse des Nutzers
REST
Mit der Methode serviceAccounts.create
wird ein Dienstkonto erstellt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NAME
: Die alphanumerische ID Ihres Dienstkontos. Dieser Name muss zwischen 6 und 30 Zeichen lang sein und kann alphanumerische Zeichen in Kleinbuchstaben sowie Bindestriche enthalten.SA_DESCRIPTION
: Optional. Eine Beschreibung des Dienstkontos.SA_DISPLAY_NAME
: Ein für Nutzer lesbarer Name des Dienstkontos.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
JSON-Text anfordern:
{ "accountId": "SA_NAME", "serviceAccount": { "description": "SA_DESCRIPTION", "displayName": "SA_DISPLAY_NAME" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" }
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.
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.
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.
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.
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.
Nachdem Sie ein Dienstkonto erstellt haben, weisen Sie dem Dienstkonto mindestens eine Rolle zu, damit es Aufgaben für Sie erfüllen kann.
Wenn das Dienstkonto auf Ressourcen in anderen Projekten zugreifen muss, müssen Sie außerdem in der Regel die APIs für diese Ressourcen in dem Projekt aktivieren, in dem Sie das Dienstkonto erstellt haben.
Dienstkonten auflisten
Sie können die nutzerverwalteten Dienstkonten in einem Projekt auflisten, um die Prüfung von Dienstkonten und Schlüsseln zu erleichtern, oder als Teil eines benutzerdefinierten Tools zur Verwaltung von Dienstkonten.
Sie können die Dienst-Agents oder andere von Google verwaltete Dienstkonten, die in den Zulassungsrichtlinien und Audit-Logs Ihres Projekts angezeigt werden, nicht auflisten. Von Google verwaltete Dienstkonten befinden sich nicht in Ihrem Projekt und Sie können nicht direkt darauf zugreifen.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Auf der Seite Dienstkonten werden alle nutzerverwalteten Dienstkonten im ausgewählten Projekt aufgeführt.
gcloud CLI
Führen Sie den Befehl gcloud iam service-accounts list
aus, um alle nutzerverwalteten Dienstkonten in einem Projekt aufzulisten.
Befehl:
gcloud iam service-accounts list
Die Ausgabe ist die Liste aller nutzerverwalteten Dienstkonten im Projekt:
NAME EMAIL SA_DISPLAY_NAME_1 SA_NAME_1@PROJECT_ID.iam.gserviceaccount.com SA_DISPLAY_NAME_2 SA_NAME_2@PROJECT_ID.iam.gserviceaccount.com
REST
Mit der Methode serviceAccounts.list
werden alle nutzerverwalteten Dienstkonten in Ihrem Projekt aufgelistet.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.
HTTP-Methode und URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "accounts": [ { "name": "projects/my-project/serviceAccounts/sa-1@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "sa-1@my-project.iam.gserviceaccount.com", "description": "My first service account", "displayName": "Service account 1", "etag": "BwUpTsLVUkQ=", "oauth2ClientId": "987654321098765432109" }, { "name": "projects/my-project/serviceAccounts/sa-2@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "234567890123456789012", "email": "sa-2@my-project.iam.gserviceaccount.com", "description": "My second service account", "displayName": "Service account 2", "etag": "UkQpTwBVUsL=", "oauth2ClientId": "876543210987654321098" } ] }
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.
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.
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.
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.
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.
Dienstkonto aktualisieren
Der Anzeigename und die Beschreibung eines Dienstkontos werden häufig verwendet, um zusätzliche Informationen über das Dienstkonto zu erfassen, etwa den Zweck des Dienstkontos oder eine Kontaktperson für das Konto.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf die E-Mail-Adresse des Dienstkontos, das Sie umbenennen möchten.
Geben Sie den neuen Namen in das Feld Name ein und klicken Sie auf Speichern.
gcloud CLI
Aktualisieren Sie mit dem Befehl gcloud iam service-accounts update
ein Dienstkonto.
Befehl:
gcloud iam service-accounts update \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --description="UPDATED_SA_DESCRIPTION" \ --display-name="UPDATED_DISPLAY_NAME"
Die Ausgabe ist das umbenannte Dienstkonto:
description: UPDATED_SA_DESCRIPTION displayName: UPDATED_DISPLAY_NAME name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mit der Methode serviceAccounts.patch
wird ein Dienstkonto aktualisiert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_ID
: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im FormatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
oder die eindeutige numerische ID des Dienstkontos sein.SA_NAME
: Die alphanumerische ID Ihres Dienstkontos. Dieser Name muss zwischen 6 und 30 Zeichen lang sein und kann alphanumerische Zeichen in Kleinbuchstaben sowie Bindestriche enthalten.- Ersetzen Sie mindestens eines der folgenden:
UPDATED_DISPLAY_NAME
: Ein neuer Anzeigename für das Dienstkonto.UPDATED_DESCRIPTION
: Eine neue Beschreibung des Dienstkontos.
HTTP-Methode und URL:
PATCH https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
JSON-Text anfordern:
{ "serviceAccount": { "email": "SA_NAME@PROJECT_ID.iam.gserviceaccount.com", "displayName": "UPDATED_DISPLAY_NAME", "description": "UPDATED_DESCRIPTION" }, "updateMask": "displayName,description" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My updated service account", "description": "An updated description of my service account" }
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.
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.
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.
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.
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.
Dienstkonto deaktivieren
Ähnlich wie beim Löschen eines Dienstkontos haben Anwendungen beim Deaktivieren eines Dienstkontos darüber keinen Zugriff mehr auf Google Cloud-Ressourcen. Wenn Sie die standardmäßigen App Engine- und Compute Engine-Dienstkonten deaktivieren, können die Instanzen nicht mehr auf Ressourcen im Projekt zugreifen. 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.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf den Namen des Dienstkontos, das Sie deaktivieren möchten.
Klicken Sie unter Dienstkontostatus auf Dienstkonto deaktivieren und dann auf Deaktivieren, um die Änderung zu bestätigen.
gcloud CLI
Deaktivieren Sie mit dem Befehl gcloud iam service-accounts disable
ein Dienstkonto.
Befehl:
gcloud iam service-accounts disable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Disabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mit der Methode serviceAccounts.disable
wird ein Dienstkonto sofort deaktiviert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_ID
: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im FormatSA_NAME@PROJECT_ID.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.
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.
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.
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.
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.
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.
Dienstkonto aktivieren
Nach der Aktivierung eines deaktivierten Dienstkontos erhalten Anwendungen darüber wieder Zugriff auf Google Cloud-Ressourcen.
Sie können jederzeit ein deaktiviertes Dienstkonto wieder aktivieren. Wenn Sie versuchen, ein bereits aktiviertes Dienstkonto zu aktivieren, hat dies keine Auswirkungen.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Klicken Sie auf den Namen des Dienstkontos, das Sie aktivieren möchten.
Klicken Sie unter Dienstkontostatus auf Dienstkonto aktivieren und dann auf Aktivieren, um die Änderung zu bestätigen.
gcloud CLI
Aktivieren Sie mit dem Befehl gcloud iam service-accounts enable
ein Dienstkonto.
Befehl:
gcloud iam service-accounts enable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Enabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mit der Methode serviceAccounts.enable
wird ein zuvor deaktiviertes Dienstkonto aktiviert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_ID
: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im FormatSA_NAME@PROJECT_ID.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.
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.
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.
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.
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.
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.
Dienstkonto löschen
Wenn Sie ein Dienstkonto löschen, haben Anwendungen darüber keinen Zugriff mehr auf Google Cloud-Ressourcen. Wenn Sie die App Engine- und Compute Engine-Dienstkonten löschen, haben die Instanzen keinen Zugriff mehr auf Ressourcen in dem Projekt.
Seien Sie bei Löschvorgängen vorsichtig. Achten Sie darauf, dass ein Dienstkonto nicht mehr von kritischen Anwendungen verwendet wird, bevor Sie es löschen. Wenn Sie nicht sicher sind, ob ein Dienstkonto aktuell verwendet wird, sollten Sie das Dienstkonto deaktivieren, bevor Sie es löschen. Deaktivierte Dienstkonten können problemlos wieder aktiviert werden, wenn sie noch verwendet werden.
Wenn Sie ein Dienstkonto löschen und dann ein neues Dienstkonto mit dem gleichen Namen erstellen, wird das neue Dienstkonto als separate Identität behandelt. Es übernimmt nicht die Rollen, die dem gelöschten Dienstkonto zugewiesen wurden. Wenn Sie dagegen ein Dienstkonto löschen und dann wiederherstellen, ändert sich die Identität des Dienstkontos nicht und das Dienstkonto behält seine Rollen bei.
Wenn ein Dienstkonto gelöscht wird, werden seine Rollenbindungen nicht sofort entfernt. Sie werden spätestens nach 60 Tagen automatisch aus dem System gelöscht. Bis dahin wird das Dienstkonto in Rollenbindungen mit dem Präfix deleted:
und dem Suffix ?uid=NUMERIC_ID
angezeigt, wobei NUMERIC_ID
eine eindeutige numerische ID für das Dienstkonto ist.
Gelöschte Dienstkonten werden nicht auf Ihr Dienstkontokontingent angerechnet.
Console
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:
Wählen Sie ein Projekt aus.
Wählen Sie das Dienstkonto aus, das Sie löschen möchten, und klicken Sie auf Löschen
.
gcloud CLI
Löschen Sie mit dem Befehl gcloud iam service-accounts delete
ein Dienstkonto.
Befehl:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mit der Methode serviceAccounts.delete
wird ein Dienstkonto gelöscht.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_ID
: Die ID Ihres Dienstkontos. Dies kann entweder die E-Mail-Adresse des Dienstkontos im FormatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
oder die eindeutige numerische ID des Dienstkontos sein.
HTTP-Methode und URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei Erfolg ist der Antworttext leer.
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.
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.
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.
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.
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.
Dienstkonto wiederherstellen
In einigen Fällen können Sie mit dem Befehl undelete
ein gelöschtes Dienstkonto wiederherstellen. Sie können ein gelöschtes Dienstkonto wiederherstellen, wenn es die folgenden Kriterien erfüllt:
Das Dienstkonto wurde vor weniger als 30 Tagen gelöscht.
Nach 30 Tagen entfernt IAM das Dienstkonto endgültig. Google Cloud kann das Dienstkonto nicht wiederherstellen, wenn es endgültig entfernt wurde, auch wenn Sie eine Supportanfrage stellen.
Es ist kein Dienstkonto mit dem gleichen Namen wie das gelöschte Dienstkonto vorhanden.
Angenommen, Sie löschen versehentlich das Dienstkonto
my-service-account@project-id.iam.gserviceaccount.com
. Sie benötigen weiterhin ein Dienstkonto mit diesem Namen, also erstellen Sie ein neues Dienstkonto, das ebenfalls den Namenmy-service-account@project-id.iam.gserviceaccount.com
hat.Das neue Dienstkonto übernimmt nicht die Berechtigungen des gelöschten Dienstkontos. Tatsächlich ist es völlig unabhängig vom gelöschten Dienstkonto. Sie können das ursprüngliche Dienstkonto jedoch nicht wiederherstellen, da das neue Dienstkonto denselben Namen hat.
Löschen Sie das neue Dienstkonto und versuchen Sie, das ursprüngliche Dienstkonto wiederherzustellen, um dieses Problem zu beheben.
Wenn Sie das Dienstkonto nicht wiederherstellen können, können Sie ein neues Dienstkonto mit demselben Namen erstellen, alle Rollen aus dem gelöschten Dienstkonto widerrufen und dem neuen Dienstkonto dieselben Rollen zuweisen. Weitere Informationen finden Sie unter Richtlinien mit gelöschten Hauptkonten.
Numerische ID eines gelöschten Dienstkontos ermitteln
Wenn Sie ein Dienstkonto wiederherstellen, müssen Sie seine numerische ID angeben. Die numerische ID ist eine 21-stellige Zahl, z. B. 123456789012345678901
, die das Dienstkonto eindeutig identifiziert. Wenn Sie beispielsweise ein Dienstkonto löschen und dann ein neues Dienstkonto mit dem gleichen Namen erstellen, haben das ursprüngliche Dienstkonto und das neue Dienstkonto unterschiedliche numerische IDs.
Wenn Sie wissen, dass eine Bindung in einer „allow”-Richtlinie das gelöschte Dienstkonto enthält, können Sie die „allow”-Richtlinie abrufen und dann die numerische ID in der „allow”-Richtlinie suchen. Die numerische ID wird an den Namen des gelöschten Dienstkontos angehängt. In dieser „allow”-Richtlinie lautet die numerische ID für das gelöschte Dienstkonto beispielsweise 123456789012345678901
:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
Numerische IDs werden nur an die Namen gelöschter Hauptkonten angehängt.
Alternativ können Sie in Ihren Audit-Logs nach dem Vorgang DeleteServiceAccount
suchen, durch den das Dienstkonto gelöscht wurde:
Rufen Sie in der Google Cloud Console die Seite Logs-Explorer auf.
Geben Sie im Abfrageeditor die folgende Abfrage ein und ersetzen Sie dabei
SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse Ihres Dienstkontos (z. B.my-service-account@project-id.iam.gserviceaccount.com
):resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
Wenn das Dienstkonto vor mehr als einer Stunde gelöscht wurde, klicken Sie auf
Letzte Stunde, wählen Sie einen längeren Zeitraum aus der Drop-down-Liste aus und klicken Sie dann auf Anwenden.Klicken Sie auf Abfrage ausführen. Der Log-Explorer zeigt die
DeleteServiceAccount
-Vorgänge an, die die Dienstkonten mit dem von Ihnen angegebenen Namen betrafen.Ermitteln und notieren Sie die numerische ID des gelöschten Dienstkontos. Dazu haben Sie folgende Möglichkeiten:
Wenn die Suchergebnisse nur einen
DeleteServiceAccount
-Vorgang enthalten, suchen Sie im Bereich Logfelder im Feld Eindeutige ID die numerische ID.Wenn die Suchergebnisse mehr als ein Log enthalten, gehen Sie so vor:
Suchen Sie den richtigen Logeintrag. Klicken Sie neben einem Logeintrag auf den Erweiterungspfeil
, um den richtigen Logeintrag zu finden. Prüfen Sie die Details des Logeintrags und legen Sie fest, ob im Logeintrag der Vorgang angezeigt wird, den Sie rückgängig machen möchten. Wiederholen Sie diesen Vorgang, bis Sie den richtigen Logeintrag gefunden haben.Suchen Sie im richtigen Logeintrag nach der numerischen ID des Dienstkontos. Um die numerische ID zu ermitteln, maximieren Sie das Feld
protoPayload
des Logeintrags und suchen Sie nach dem FeldresourceName
.Die numerische ID ist alles, was auf
serviceAccounts
im FeldresourceName
folgt.
Dienstkonto mit numerischer ID wiederherstellen
Wenn Sie die numerische ID für das gelöschte Dienstkonto gefunden haben, können Sie versuchen, das Dienstkonto wiederherzustellen.
gcloud CLI
Stellen Sie mit dem Befehl gcloud beta iam service-accounts undelete
aus, ein Dienstkonto wieder her.
Befehl:
gcloud beta iam service-accounts undelete ACCOUNT_ID
Ausgabe:
restoredAccount: email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: PROJECT_ID uniqueId: 'ACCOUNT_ID'
REST
Mit der Methode serviceAccounts.undelete
wird ein gelöschtes Dienstkonto wiederhergestellt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project
.SA_NUMERIC_ID
: Die eindeutige numerische ID des Dienstkontos.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Wenn das Konto wiederhergestellt werden kann, erhalten Sie einen 200 OK
-Antwortcode mit Details zum wiederhergestellten Dienstkonto. Dieser sieht in etwa so aus:
{ "restoredAccount": { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" } }
Nächste Schritte
- Informieren Sie sich über den Prozess zum Zuweisen von IAM-Rollen für alle Hauptkontotypen, einschließlich Dienstkonten.
- Entdecken Sie, wie Sie mithilfe von Rollenempfehlungen Berechtigungen für alle Hauptkonten, einschließlich Dienstkonten, herabstufen können.
- So erlauben Sie Hauptkonten, sich als Dienstkonten auszugeben.
- Mehr über das Erstellen und Verwalten von Dienstkontoschlüsseln
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Jetzt kostenlos starten