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.
Hinweise
Enable the IAM API.
Richten Sie die Authentifizierung ein.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, 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.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten in der Dokumentation zur Google Cloud-Authentifizierung.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten in der Dokumentation zur Google Cloud-Authentifizierung.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten in der Dokumentation zur Google Cloud-Authentifizierung.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten in der Dokumentation zur Google Cloud-Authentifizierung.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten in der Dokumentation zur Google Cloud-Authentifizierung.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
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:
-
Zum Löschen von Dienstkonten:
Delete Service Accounts (
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 verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
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 löschen
Wenn Sie ein Dienstkonto löschen, haben Anwendungen darüber keinen Zugriff mehr auf Google 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.
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 Cloud kann 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, wobeiNUMERIC_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
-
In the Google Cloud console, 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.
-
Führen Sie den Befehl
gcloud iam service-accounts delete
aus, um ein Dienstkonto zu löschen.Befehl:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Ausgabe:
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.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.
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
-
In the Google Cloud console, 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.
-
Stellen Sie mit dem Befehl
gcloud beta iam service-accounts undelete
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
- 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 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 startenSofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-10-14 (UTC).