Zur Service Account Credentials API migrieren

Die Service Account Credentials API erstellt kurzlebige Anmeldedaten für IAM-Dienstkonten (Identity and Access Management). Sie können diese API auch verwenden, um JSON Web Tokens (JWTs) sowie Blobs von Binärdaten zu signieren, die andere Arten von Tokens enthalten.

Die IAM API enthält auch Methoden zum Signieren von JWTs und binären Blobs. Am 1. Juli 2020 wurden diese Methoden in der REST API und in allen Clientbibliotheken für die IAM API verworfen. Sie müssen vor dem 1. Juli 2021 zur Service Account Credentials API migrieren. Wenn Sie JWTs mit dem gcloud-Befehlszeilentool signieren, müssen Sie außerdem eine neue Anforderung zum JWT-Anforderungssatz hinzufügen.

Im Vergleich zur IAM API bietet die Service Account Credentials API mehr Flexibilität für die Ablaufzeit signierter JWTs. Darüber hinaus verhindert die Service Account Credentials API, dass Sie sich mit einem selbst signierten Token authentifizieren und dann ein weiteres selbst signiertes Token abrufen. Wenn ein Angreifer Zugriff auf ein signiertes Token erhält, kann er es daher nicht zum Aktualisieren des Tokens verwenden.

Auf dieser Seite wird erläutert, wie Sie Ihren vorhandenen Code aktualisieren, um die Service Account Credentials API zu verwenden. Wenn Sie uns Feedback zu dieser Änderung geben möchten, können Sie das Feedbackformular ausfüllen. Sie können auch die E-Mail-Adresse iam-sign-deprecation-public@google.com verwenden, um Support anzufordern und detailliertes Feedback zu geben.

Audit-Logs aktivieren

Wenn Sie Audit-Logs für Anfragen zum Signieren von JWTs und Blobs erhalten möchten, müssen Sie für die IAM API Audit-Logs zum Datenzugriff aktivieren. Wenn Sie Audit-Logs zum Datenzugriff für die IAM API aktivieren, werden diese Audit-Logs auch für die Service Account Credentials API aktiviert.

Es gibt einige nennenswerte Unterschiede zwischen den Logeinträgen, die mit den einzelnen APIs generiert werden:

Unterschiede bei Audit-Logeinträgen
Methodenname

IAM API

Der Methodenname (protoPayload.methodName) ist einer der folgenden:

  • google.iam.admin.v1.SignBlob
  • google.iam.admin.v1.SignJwt

Service Account Credentials API

Der Methodenname ist einer der folgenden:

  • SignBlob
  • SignJwt
Anfragetyp

IAM API

Der Anfragetyp (protoPayload.request.@type) ist einer der folgenden:

  • type.googleapis.com/google.iam.admin.v1.SignBlobRequest
  • type.googleapis.com/google.iam.admin.v1.SignJwtRequest

Service Account Credentials API

Der Anfragetyp ist einer der folgenden:

  • type.googleapis.com/google.iam.credentials.v1.SignBlobRequest
  • type.googleapis.com/google.iam.credentials.v1.SignJwtRequest
Dienstname

IAM API

Der Dienstname (protoPayload.serviceName) ist iam.googleapis.com.

Service Account Credentials API

Der Dienstname ist iamcredentials.googleapis.com.

Audit-Logs zum Datenzugriff werden auf Ihr kostenloses monatliches Kontingent für die Logging-Datenaufnahme angerechnet. Wenn Sie dieses Kontingent überschreiten, wird Ihnen die Logaufnahme in Rechnung gestellt. Weitere Informationen finden Sie unter Preise für die Operations-Suite von Google Cloud.

Code zum Signieren von JWTs migrieren

In diesem Abschnitt wird beschrieben, wie Sie Code migrieren, der JWTs zur Service Account Credentials API signiert.

JWTs mit der REST API signieren

Die folgende Tabelle zeigt die Unterschiede zwischen dem Signieren eines JWT mit der IAM REST API und dem Signieren eines JWT mit der Service Account Credentials API. Aktualisieren Sie Ihren Code entsprechend.

Unterschiede beim Signieren eines JWT
HTTP-Endpunkte

IAM API

Die IAM API verwendet die folgenden HTTP-Methoden und -Endpunkte:

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signJwt

    In dieser URL ist project-id die Projekt-ID und sa-email die E-Mail-Adresse des Dienstkontos.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

    In dieser URL ersetzt das Platzhalterzeichen - die Projekt-ID und sa-email die E-Mail-Adresse für das Dienstkonto.

Service Account Credentials API

Verwenden Sie die folgende HTTP-Methode und den folgenden Endpunkt. Ersetzen Sie das Platzhalterzeichen nicht durch die Projekt-ID:

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

In dieser URL ist sa-email die E-Mail-Adresse des Dienstkontos.

Anfragetext

IAM API

Der Anfragetext enthält das Feld payload. Der Wert ist die zu signierende JWT-Nutzlast. Die Nutzlast muss ein JSON-Objekt sein, das als String serialisiert ist und einen JWT-Anfragensatz enthält.

Wenn Sie eine Ablaufzeitanforderung (exp) angeben, darf diese höchstens eine Stunde in der Zukunft liegen. Wenn Sie die exp-Anforderung weglassen, wird sie automatisch hinzugefügt und auf eine Stunde festgelegt.

Service Account Credentials API

Der Anfragetext enthält das Feld payload, das mit der IAM API bis auf das Verhalten der Ablaufzeitanforderung (exp) identisch ist:

  • Wenn Sie die exp-Anforderung bereitstellen, darf diese nicht mehr als 12 Stunden in der Zukunft liegen.
  • Wenn Sie die exp-Anforderung weglassen, wird sie nicht automatisch hinzugefügt. Wenn Sie das signierte JWT für die Authentifizierung bei Google APIs oder bei einer anderen API verwenden, die die exp-Anforderung benötigt, müssen Sie diese Anforderung angeben.
Antworttext

Beide APIs verwenden dieselben Felder im Antworttext.

JWTs mit einer Clientbibliothek signieren

Die Clientbibliotheken für die Service Account Credentials API unterscheiden sich von den Clientbibliotheken für die IAM API.

Zum Anwenden der Service Account Credentials API fügen Sie die Clientbibliothek zu Ihrer Anwendung hinzu und aktualisieren Sie Ihren Code, um die neue Clientbibliothek zu verwenden:

C#

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für C# hinzu. Verwenden Sie die Methode SignJwt(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für C# nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Go

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Go hinzu. Verwenden Sie IamCredentialsClient.SignJwt() function, um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Go nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Java

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Java hinzu. Verwenden Sie die Methode IamCredentialsClient#signJwt(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Java nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Node.js

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Node.js hinzu. Verwenden Sie die Methode signJwt(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Node.js nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

PHP

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für PHP hinzu. Verwenden Sie die Methode signJwt(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für PHP nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Python

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Python hinzu. Verwenden Sie die Methode sign_jwt(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Python nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Ruby

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Ruby hinzu. Verwenden Sie die Methode sign_service_account_jwt(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Ruby nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Code zum Signieren von binären Blobs migrieren

In diesem Abschnitt wird beschrieben, wie Sie Code migrieren, der binäre Blobs zur Service Account Credentials API signiert.

Binäre Blobs mit der REST API signieren

Die folgende Tabelle zeigt die Unterschiede zwischen dem Signieren eines binären Blobs mit der IAM REST API und dem Signieren eines binären Blobs mit der Service Account Credentials API. Aktualisieren Sie Ihren Code entsprechend:

Unterschiede beim Signieren eines binären Blobs
HTTP-Endpunkte

IAM API

Die IAM API verwendet die folgenden HTTP-Methoden und -Endpunkte:

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signBlob

    In dieser URL ist project-id die Projekt-ID und sa-email die E-Mail-Adresse des Dienstkontos.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

    In dieser URL ersetzt das Platzhalterzeichen - die Projekt-ID und sa-email die E-Mail-Adresse für das Dienstkonto.

Service Account Credentials API

Verwenden Sie die folgende HTTP-Methode und den folgenden Endpunkt. Ersetzen Sie das Platzhalterzeichen nicht durch die Projekt-ID:

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

In dieser URL ist sa-email die E-Mail-Adresse des Dienstkontos.

Anfragetext

IAM API

Der Anfragetext enthält das Feld bytesToSign. Der Wert ist ein base64-codierter String, der das zu signierende binäre Blob darstellt.

Service Account Credentials API

Der Anfragetext enthält das Feld payload, das denselben Wert wie das Feld bytesToSign in der IAM API hat.

Antworttext

IAM API

Der Antworttext enthält das Feld keyId, das den Schlüssel zum Signieren des Blobs angibt, und das Feld signature, das einen base64-codierten String enthält, der die Signatur darstellt.

Service Account Credentials API

Der Antworttext enthält das Feld keyId, das mit dem Feld keyId in der IAM API identisch ist, sowie das Feld signedBlob, das mit dem Feld signature in der IAM API identisch ist.

Binäre Blobs mit einer Clientbibliothek signieren

Die Clientbibliotheken für die Service Account Credentials API unterscheiden sich von den Clientbibliotheken für die IAM API.

Zum Anwenden der Service Account Credentials API fügen Sie die Clientbibliothek zu Ihrer Anwendung hinzu und aktualisieren Sie Ihren Code, um die neue Clientbibliothek zu verwenden:

C++

Wenn Sie Blobs mit der C++-Clientbibliothek von Cloud Storage signieren, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 0.9.0 oder höher von google-cloud-cpp durch.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

C#

Wenn Sie die IAM-Clientbibliothek für C# verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für C# hinzu. Verwenden Sie die Methode SignBlob(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für C# nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie das Firebase Admin DotNet SDK verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 1.17.1 oder höher von firebase-admin-dotnet aus.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Go

Wenn Sie die IAM-Clientbibliothek für Go verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Go hinzu. Verwenden Sie IamCredentialsClient.SignBlob() function, um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Go nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie das Firebase Admin Go SDK verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 4.1.0 oder höher von firebase-admin-go aus.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Java

Wenn Sie die IAM-Clientbibliothek für Java verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Java hinzu. Verwenden Sie die Methode IamCredentialsClient#signBlob(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Java nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie die Google-Authentifizierungsbibliothek für Java verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 0.14.0 oder höher von google-auth-library-java durch.

Wenn Sie das Firebase Admin Java SDK verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 7.0.1 oder höher von firebase-admin-java aus.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Node.js

Wenn Sie die IAM-Clientbibliothek für Node.js verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Node.js hinzu. Verwenden Sie die Methode signBlob(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Node.js nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie die Google-Authentifizierungsbibliothek für Node.js verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 6.0.0 oder höher von google-auth-library-nodejs durch.

Wenn Sie das Firebase Admin Node.js SDK verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 8.13.0 oder höher von firebase-admin-node durch.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

PHP

Wenn Sie die IAM-Clientbibliothek für PHP verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für PHP hinzu. Verwenden Sie die Methode signBlob(), um eine Signatur zu erstellen.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für PHP nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie die Google-Authentifizierungsbibliothek für PHP verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 1.5.0 oder höher von google-auth-library-php durch.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Python

Wenn Sie die IAM-Clientbibliothek für Python verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Python hinzu. Verwenden Sie die Methode sign_blob(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Python nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie die Google-Authentifizierungsbibliothek für Python verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 1.21.2 oder höher von google-auth-library-python durch.

Wenn Sie den Python-Client für Cloud Storage verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Führen Sie ein Upgrade auf Version 1.30.0 oder höher von python-storage durch.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Ruby

Wenn Sie die IAM-Clientbibliothek für Ruby verwenden, entweder direkt oder als Abhängigkeit einer anderen Clientbibliothek:

Fügen Sie Ihrer Anwendung die Clientbibliothek für Dienstkonto-Anmeldedaten für Ruby hinzu. Verwenden Sie die Methode sign_service_account_blob(), um eine Signatur zu generieren.

Der Name des Dienstkontos muss das Platzhalterzeichen - für die Projekt-ID verwenden:

Gültig: Name mit Platzhalterzeichen

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ungültig: Name mit Projekt-ID

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Wenn Sie die IAM-Clientbibliothek für Ruby nicht mehr verwenden, können Sie sie aus Ihrer Anwendung entfernen.

Wenn Sie Blobs mit einer anderen Clientbibliothek signieren:

Kontaktieren Sie iam-sign-deprecation-public@google.com, um Unterstützung zu erhalten.

Code migrieren, der das gcloud-Tool verwendet

Das gcloud-Befehlszeilentool stellt Befehle bereit, die die IAM API zum Signieren von JWTs und binären Blobs verwendet. Dazu gehören:

Am oder nach dem 1. Juli 2021 aktualisieren wir diese Befehle, um die Service Account Credentials API zu verwenden. Diese Änderung hat keine Auswirkungen auf Befehle zum Signieren von Blobs.

Wenn Sie JWTs mit dem gcloud-Tool signieren, müssen Sie vor dem 1. Juli 2021 die folgenden Schritte ausführen:

  1. Prüfen Sie, ob Sie die Ablaufzeit (exp) in die JWT-Anforderung aufgenommen haben.

    Wenn Sie diese Anforderung bereits eingefügt haben, müssen Sie keine Änderungen vornehmen. Sie können die restlichen Schritte überspringen.

    Wenn Sie diese Anforderung nicht angeben, fahren Sie mit dem nächsten Schritt fort.

  2. Prüfen Sie, ob Sie das signierte JWT zur Authentifizierung mit Google APIs verwenden oder mit einer anderen API, die die exp-Anforderung benötigt.

    Wenn Sie diese Anforderung weglassen, legt die IAM API sie automatisch auf eine Stunde in der Zukunft fest. Im Gegensatz dazu legt die Service Account Credentials API dieses Feld nicht automatisch fest.

    Wenn Sie sicher sind, dass Sie die exp-Anforderung nicht benötigen, müssen Sie keine Änderungen vornehmen. Sie können die restlichen Schritte überspringen.

    Wenn Sie wissen, dass Sie die exp-Anforderung benötigen oder sich nicht sicher sind, fahren Sie mit dem nächsten Schritt fort.

  3. Aktualisieren Sie Ihren Code, um JWTs zu erstellen, sodass die exp-Anforderung dem JWT-Anforderungssatz hinzugefügt wird.

    Sie können die exp-Anforderung bis zu eine Stunde in der Zukunft festlegen.

Kontingente prüfen

Das Kontingent für die Service Account Credentials API ist unabhängig vom Kontingent für die IAM API. Wenn Sie eine Kontingenterhöhung erhalten haben, um JWTs und Blobs mit der IAM API zu signieren, müssen Sie möglicherweise auch eine Erhöhung für die Service Account Credentials API anfordern.

So zeigen Sie Ihr Kontingent und die tatsächliche Nutzung für beide APIs an und fragen bei Bedarf eine Kontingenterhöhung an:

  1. Wechseln Sie in der Cloud Console zur Seite Kontingente.

    Zur Seite "Kontingente"

  2. Wählen Sie ein Projekt aus. Sie können auf ein aktuelles Projekt oder auf Projekt auswählen klicken, um in allen Ihren Projekte zu suchen.

  3. Geben Sie im Textfeld Tabelle filtern Sign requests per minute ein und wählen Sie den angezeigten Wert aus.

  4. Wählen Sie im Textfeld Tabelle filtern aus der Drop-down-Liste OR aus.

  5. Geben Sie im Textfeld Filtertabelle den Wert Generate credentials ein und wählen Sie den angezeigten Wert aus.

    Die Cloud Console zeigt Ihre aktuelle Nutzung zum Signieren von JWTs und Blobs in der letzten Minute, Ihre maximale Nutzung pro Minute in den letzten 7 Tagen und Ihr aktuelles Kontingent an, das in der Spalte Limit angezeigt wird.

  6. Vergleichen Sie die Kontingente für jede Zeile in der Tabelle. Ihr Kontingent für die Service Account Credentials API muss höher sein als die maximale Nutzung der IAM API in den letzten 7 Tagen.

  7. Optional: Wenn Ihr Kontingent für die Service Account Credentials API zu niedrig ist, klicken Sie auf das Kästchen für die Service Account Credentials API und anschließend auf Kontingente bearbeiten. Füllen Sie das Formular aus, um eine Kontingenterhöhung zu beantragen.

  8. Wiederholen Sie diese Schritte für jedes Projekt, in dem Sie die IAM API zum Signieren von JWTs und Blobs verwenden.

Weitere Informationen