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 löschen und wiederherstellen.
Hinweis
Aktivieren Sie die IAM API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von RollenRichten Sie die Authentifizierung ein.
Wählen Sie den Tab aus, der Ihrer geplanten Verwendung der Beispiele auf dieser Seite entspricht:
Console
Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud 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.
C#
Wenn Sie die .NET-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
C++
Wenn Sie die C++-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Go
Wenn Sie die Go-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Wenn Sie die Java-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Wenn Sie die Python-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
-
Sie müssen die Informationen zu IAM-Dienstkonten verstehen
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Löschen und Wiederherstellen von Dienstkonten benötigen:
-
So löschen Sie Dienstkonten:
Dienstkonten löschen (
roles/iam.serviceAccountDeleter) -
Zum Löschen und Wiederherstellen von Dienstkonten:
Service Account Admin (
roles/iam.serviceAccountAdmin)
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 löschen
Wenn Sie ein Dienstkonto löschen, haben Anwendungen darüber keinen Zugriff mehr aufGoogle Cloud -Ressourcen. Wenn Sie die standardmäßigen App Engine- und Compute Engine-Dienstkonten löschen, haben die App Engine-Anwendungen und Compute Engine-VM-Instanzen, die diese Dienstkonten verwenden, keinen Zugriff mehr auf Ressourcen in dem Projekt.
Beim Löschen von Dienstkonten ist Vorsicht geboten. Achten Sie darauf, dass das Dienstkonto, das Sie löschen möchten, von Ihren kritischen Anwendungen nicht mehr verwendet wird. Wenn Sie unsicher sind, ob ein Dienstkonto verwendet wird, empfehlen wir Ihnen, das Dienstkonto zu deaktivieren, anstatt es zu löschen. Deaktivierte Dienstkonten lassen sich wieder aktivieren, wenn sie noch benötigt werden. Weitere Informationen finden Sie unter Deaktivieren Sie nicht verwendete Dienstkonten, bevor sie gelöscht werden.
Wenn Sie ein gelöschtes Dienstkonto wiederherstellen möchten, können Sie es wiederherstellen, falls seit dem Löschen 30 Tage oder weniger vergangen sind. Nach 30 Tagen entfernt IAM das Dienstkonto endgültig. Google Cloudkann das Dienstkonto nicht wiederherstellen, wenn es endgültig entfernt wurde, auch wenn Sie eine Supportanfrage stellen.
Um das Risiko des Löschens eines erforderlichen Dienstkontos weiter zu reduzieren, können Sie auch Empfehlungen zu Änderungsrisiken aktivieren. Empfehlungen zu Änderungsrisiken geben Warnungen aus, wenn Sie versuchen, Dienstkonten zu löschen, die Google Cloud als wichtig identifiziert hat.
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
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud 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.
-
Führen Sie den Befehl
gcloud iam service-accounts deleteaus, um ein Dienstkonto zu löschen.Befehl:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.comAusgabe:
Deleted service account SA_NAME@PROJECT_ID.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.
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.
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.
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.
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.
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.comoder 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.
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, nachdem 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.comhat.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 Log-Explorer auf.
Geben Sie im Abfrageeditor die folgende Abfrage ein und ersetzen Sie dabei
SERVICE_ACCOUNT_EMAILdurch 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
protoPayloaddes Logeintrags und suchen Sie nach dem FeldresourceName.

Die numerische ID ist alles, was auf
serviceAccountsim FeldresourceNamefolgt.
- Wenn die Suchergebnisse nur einen
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
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud 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.
-
Stellen Sie mit dem Befehl
gcloud beta iam service-accounts undeleteein 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
- Dienstkonten auflisten und bearbeiten
- Informieren Sie sich über den Prozess zum Zuweisen von IAM-Rollen für alle Hauptkontotypen, einschließlich Dienstkonten.
- Dienstkonten an Ressourcen anhängen
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie 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