Auf dieser Seite werden einige gängige Probleme beschrieben, die bei der Verwendung von Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) auftreten können.
Informationen zur Funktionsweise von ADC und dazu, wo Anmeldedaten gefunden werden, finden Sie unter Funktionsweise von Standardanmeldedaten für Anwendungen.
Nutzeranmeldedaten funktionieren nicht
Wenn Ihre API-Anfrage eine Fehlermeldung zurückgibt, die angibt, dass Nutzeranmeldedaten von dieser API nicht unterstützt werden, die API nicht im Projekt aktiviert ist oder kein Kontingentprojekt festgelegt ist, lesen Sie die folgenden Informationen.
Es gibt zwei Arten von Google Cloud APIs:
Ressourcenbasierte APIs, die das Projekt verwenden, das mit den Ressourcen verknüpft ist, auf die bei der Abrechnung und dem Kontingent zugegriffen wird.
Clientbasierte APIs, die das mit dem Client verknüpfte Projekt verwenden, das auf die Ressourcen für Abrechnung und Kontingente zugreift.
Wenn Sie Nutzeranmeldedaten für die Authentifizierung bei einer clientbasierten API angeben, müssen Sie das Projekt angeben, das für die Abrechnung und das Kontingent verwendet werden soll. Dieses Projekt wird als Kontingentprojekt bezeichnet.
Es gibt verschiedene Möglichkeiten, ein Kontingentprojekt anzugeben. Dazu gehören:
Aktualisieren Sie Ihre ADC-Datei, um ein anderes Projekt als Kontingentprojekt zu verwenden:
gcloud auth application-default set-quota-project
YOUR_PROJECT Wenn Sie die API über die gcloud CLI aufrufen, können Sie das Kontingentprojekt in der gcloud CLI-Konfiguration festlegen:
gcloud config set billing/quota_project
YOUR_PROJECT Wenn Sie die REST- oder RPC-API direkt aufrufen, verwenden Sie den HTTP-Header
x-goog-user-project
, um in jeder Anfrage ein Kontingentprojekt anzugeben. Weitere Informationen finden Sie unter Kontingentprojekt mit REST-Anfrage festlegen.
Sie benötigen die IAM-Berechtigung serviceusage.services.use
für ein Projekt, um es als Abrechnungsprojekt festlegen zu können. Die Berechtigung serviceusage.services.use
ist in der IAM-Rolle "Service Usage-Nutzer" enthalten. Wenn Sie die Berechtigung serviceusage.services.use
für ein Projekt nicht haben, wenden Sie sich an Ihren Sicherheitsadministrator oder einen Projektinhaber, der Ihnen die Rolle "Service Usage-Nutzer" im Projekt zuweisen kann.
Weitere Informationen zu Kontingentprojekten finden Sie unter Kontingentprojekte – Übersicht. Weitere Informationen zum Festlegen des Kontingentprojekts finden Sie unter Kontingentprojekt festlegen.
Anmeldedaten falsch
Wenn Ihre Anmeldedaten offenbar nicht den erwarteten Zugriff gewähren oder nicht gefunden werden, prüfen Sie Folgendes:
Wenn Sie die gcloud CLI verwenden, um in einer lokalen Umgebung auf Google Cloud zuzugreifen, müssen Sie wissen, welche Anmeldedaten Sie verwenden. Wenn Sie die gcloud CLI verwenden, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI mit dem Befehl
gcloud auth login
bereitgestellt haben. Sie verwenden nicht die Anmeldedaten, die Sie für ADC angegeben haben. Weitere Informationen zu diesen beiden Gruppen von Anmeldedaten finden Sie unter Authentifizierungskonfiguration der gcloud CLI und ADC-Konfiguration.Achten Sie darauf, dass die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
nur festgelegt ist, wenn Sie einen Dienstkontoschlüssel oder eine andere JSON-Datei für ADC verwenden. Die von der Umgebungsvariablen referenzierten Anmeldedaten haben Vorrang vor anderen Anmeldedaten, einschließlich der Identitätsföderation von Arbeitslasten für GKE.Bestätigen Sie, dass das Hauptkonto die erforderlichen IAM-Rollen hat. Wenn Sie Nutzeranmeldedaten verwenden, müssen die Rollen der E-Mail-Adresse zugewiesen sein, die dem Nutzer-Konto zugeordnet ist. Wenn Sie ein Dienstkonto verwenden, muss dieses Dienstkonto die erforderlichen Rollen haben.
Wenn Sie mit der API-Anfrage einen API-Schlüssel angeben, hat der API-Schlüssel an beliebiger Stelle Vorrang vor ADC. Wenn Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
festgelegt haben und einen API-Schlüssel verwenden, gibt die API möglicherweise eine Warnung zurück, dass die Anmeldedaten, die Sie für ADC angegeben haben, ignoriert werden. Deaktivieren Sie die UmgebungsvariableGOOGLE_APPLICATION_CREDENTIALS
, um die Warnung zu beenden.
Unbekannter Anmeldedatentyp
Wenn Ihre API-Anfrage einen Fehler zurückgibt, der "Fehler beim Erstellen von Anmeldedaten aus JSON" enthält Unbekannter Anmeldedatentyp. Achten Sie darauf, dass Sie gültige Anmeldedaten verwenden. Client-ID-Dateien werden nicht mit den Anmeldedaten für ADC unterstützt.
Zugriff blockiert, wenn Bereiche verwendet werden
Wenn Sie versuchen, eine lokale ADC-Datei zu erstellen, und ein Fehler wie „Diese App ist blockiert“ oder „Zugriff blockiert: Autorisierungsfehler“ zurückgegeben wird, versuchen Sie möglicherweise, Bereiche zu verwenden, die vom Standardbefehl zur ADC-Einrichtung nicht unterstützt werden. Dieses Problem wird in der Regel durch das Hinzufügen von Bereichen für Anwendungen außerhalb von Google Cloud verursacht, z. B. durch Google Drive.
Standardmäßig enthalten die Zugriffstokens, die aus einer mit Nutzeranmeldedaten erstellten lokalen ADC-Datei generiert wurden, den cloudweiten Bereich https://www.googleapis.com/auth/cloud-platform
.
Um Bereiche explizit anzugeben, verwenden Sie das Flag –-scopes
mit dem Befehl gcloud auth application-default login
.
Wenn Sie Bereiche für Dienste außerhalb von Google Cloud wie Google Drive hinzufügen möchten, erstellen Sie eine OAuth-Client-ID und geben diese mit dem –-client-id-file
-Befehl an den gcloud auth application-default login
-Befehl weiter, wobei Sie Ihre Bereiche mit dem -–scopes
-Flag angeben.