Auf dieser Seite wird beschrieben, wie Sie API-Schlüssel erstellen, bearbeiten und einschränken.
Einführung in API-Schlüssel
Wenn Sie einen API-Schlüssel für die Authentifizierung bei einer API verwenden, identifiziert der API-Schlüssel kein Hauptkonto. Der API-Schlüssel verknüpft die Anfrage mit dem Google Cloud-Projekt zu Abrechnungs- und Kontingentzwecken. Ohne ein Hauptkonto kann in der Anfrage nicht mithilfe der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) geprüft werden, ob der Aufrufer berechtigt ist, den angeforderten Vorgang auszuführen.
Ein API-Schlüssel besteht aus den folgenden Komponenten, die Sie zur Verwaltung und Verwendung des Schlüssels verwenden:
- String
- Der API-Schlüsselstring ist ein verschlüsselter String, z. B.
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. Wenn Sie einen API-Schlüssel zur Authentifizierung verwenden, verwenden Sie immer den String des Schlüssels. API-Schlüsseln ist keine JSON-Datei zugeordnet. - ID
- Die API-Schlüssel-ID wird von Google Cloud-Verwaltungstools verwendet, um den Schlüssel eindeutig zu identifizieren. Die Schlüssel-ID kann nicht zur Authentifizierung verwendet werden. Die Schlüssel-ID finden Sie in der URL der Bearbeitungsseite des Schlüssels in der Google Cloud Console. Sie können die Schlüssel-ID auch abrufen, indem Sie die Google Cloud CLI verwenden, um die Schlüssel in Ihrem Projekt aufzulisten.
- Anzeigename
- Der Anzeigename ist ein optionaler, beschreibender Name für den Schlüssel, den Sie beim Erstellen oder Aktualisieren des Schlüssels festlegen können.
Hinweise
Führen Sie die folgenden Aufgaben aus, um die Beispiele auf dieser Seite zu verwenden.
Authentifizierung einrichten
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.
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.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von API-Schlüsseln benötigen:
-
API Keys Admin (
roles/serviceusage.apiKeysAdmin
) -
Sie können einen API-Schlüssel über die Google Cloud Console auf bestimmte APIs beschränken:
Dienstnutzungsanzeige (
roles/serviceusage.serviceUsageViewer
)
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.
API-Schlüssel erstellen
Verwenden Sie eine der folgenden Optionen, um einen API-Schlüssel zu erstellen:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf Anmeldedaten erstellen und wählen Sie im Menü API-Schlüssel aus.
Das Dialogfeld API-Schlüssel erstellt enthält den String für den neu erstellten Schlüssel.
gcloud
Verwenden Sie den gcloud services api-keys create
-Befehl, um einen API-Schlüssel zu erstellen.
Ersetzen Sie DISPLAY_NAME
durch einen aussagekräftigen Namen für Ihren Schlüssel.
gcloud services api-keys create --display-name=DISPLAY_NAME
C++
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Verwenden Sie die keys.create
-Methode, um einen API-Schlüssel zu erstellen. Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um die Informationen für den neuen Schlüssel abzurufen.
Ersetzen Sie die folgenden Werte:
DISPLAY_NAME
: Optional. Ein beschreibender Name für Ihren Schlüssel.PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
Weitere Informationen zum Erstellen von API-Schlüsseln mithilfe der REST API finden Sie in der API-API-Dokumentation unter API-Schlüssel erstellen.
Kopieren Sie den Schlüsselstring und bewahren Sie ihn sicher auf. Mit API-Schlüsseleinschränkungen können Sie die Verwendung des Schlüssels einschränken.
Einschränkungen für API-Schlüssel anwenden
API-Schlüssel sind standardmäßig uneingeschränkt. Uneingeschränkte Schlüssel sind unsicher, da sie von jedem beliebigen Nutzer verwendet werden können. Für Produktionsanwendungen sollten Sie sowohl Anwendungseinschränkungen als auch API-Einschränkungen festlegen.
Einschränkungen für Anwendungen hinzufügen
Anwendungseinschränkungen geben an, welche Websites, IP-Adressen oder Anwendungen einen API-Schlüssel verwenden dürfen.
Sie können jeweils nur einen Einschränkungstyp einer Anwendung anwenden. Wählen Sie den für Ihren Anwendungstyp geeigneten Einschränkungstyp aus.
Wahltaste | Anwendungstyp | Hinweise |
---|---|---|
HTTP-Verweis-URLs | Webanwendungen | Gibt die Websites an, die den Schlüssel verwenden können. |
IP-Adressen | Von bestimmten Servern aufgerufene Anwendungen | Gibt die Server oder Cronjobs an, die den Schlüssel verwenden können. |
Android-Apps | Android-Anwendungen | Gibt die Android-Anwendung an, die den Schlüssel verwenden kann. |
iOS-Apps | iOS-Anwendungen | Gibt die iOS-Bundles an, die den Schlüssel verwenden können. |
HTTP-Verweis-URLs
Um die Websites einzuschränken, die Ihren API-Schlüssel verwenden können, fügen Sie eine oder mehrere HTTP-Verweis-URLs hinzu.
Sie können das Platzhalterzeichen (*
) durch das Platzhalterzeichen oder den Pfad ersetzen, aber nicht in der Mitte der URL ein Platzhalterzeichen einfügen. *.example.com
ist beispielsweise gültig und akzeptiert alle Websites, die auf .example.com
enden. mysubdomain*.example.com
ist jedoch keine gültige Einschränkung.
In den HTTP-Verweiseinschränkungen können Portnummern enthalten sein. Wenn Sie eine Portnummer angeben, werden nur Anfragen zugeordnet, die diesen Port verwenden. Wenn Sie keine Portnummer angeben, werden Anfragen von einer beliebigen Portnummer abgeglichen.
Sie können einem API-Schlüssel bis zu 1.200 HTTP-Verweis-URLs hinzufügen
Die folgende Tabelle enthält einige Beispielszenarien und Browsereinschränkungen:
Szenario | Einschränkungen |
---|---|
Bestimmte URL zulassen | Fügen Sie eine URL mit einem genauen Pfad hinzu. Beispiel:www.example.com/path www.example.com/path/path Einige Browser implementieren eine Verweisrichtlinie, die für ursprungsübergreifende Anfragen nur die Ursprungs-URL sendet. Nutzer dieser Browser können keine Schlüssel mit seitenspezifischen URL-Einschränkungen verwenden. |
Eine beliebige URL auf Ihrer Website zulassen | Sie müssen zwei URLs in der Liste allowedReferers festlegen.
|
Eine beliebige URL in einer einzelnen Subdomain oder einer Grunddomain zulassen |
Sie müssen zwei URLs in der Liste
|
Verwenden Sie eine der folgenden Optionen, um Ihren API-Schlüssel auf bestimmte Websites zu beschränken:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf den Namen des API-Schlüssels, den Sie einschränken möchten.
Wählen Sie im Abschnitt Anwendungseinschränkungen die Option HTTP-Verweis-URLs aus.
Klicken Sie für jede gewünschte Einschränkung auf Element hinzufügen, geben Sie die Einschränkung ein und klicken Sie auf Fertig.
Klicken Sie auf Speichern, um die Änderungen zu speichern und zur API-Schlüsselliste zurückzukehren.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list
die Schlüssel in Ihrem Projekt auf.Verwenden Sie den Befehl
gcloud services api-keys update
, um einem API-Schlüssel Einschränkungen für HTTP-Verweis-URLs hinzuzufügen.Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.ALLOWED_REFERRER_1
: Ihre HTTP-Referrer-URL.Sie können beliebig viele Einschränkungen hinzufügen. Verwenden Sie Kommas, um die Einschränkungen zu trennen. Sie müssen alle Verweiseinschränkungen mit dem Befehl "update" angeben. Die Verweiseinschränkungen, die aufgehoben wurden, ersetzen alle vorhandenen Verweiseinschränkungen für den Schlüssel.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden. Die ID wird im Feld
uid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Verwenden Sie die Methode keys.patch, um dem API-Schlüssel Einschränkungen für HTTP-Verweis-URLs hinzuzufügen.
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
ALLOWED_REFERRER_1
: Ihre HTTP-Referrer-URL.Sie können beliebig viele Einschränkungen hinzufügen. Verwenden Sie Kommas, um die Einschränkungen zu trennen. Sie müssen alle Verweiseinschränkungen in der Anfrage angeben Die angegebenen Verweiseinschränkungen ersetzen alle vorhandenen Verweiseinschränkungen für den Schlüssel.
PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Weitere Informationen zum Hinzufügen von HTTP-Verweiseinschränkungen zu einem Schlüssel mithilfe der REST API finden Sie in der API-Dokumentation zu API Keys unter Browsereinschränkungen hinzufügen.
IP-Adressen
Sie können eine oder mehrere IP-Adressen der Aufrufer angeben, z. B. Webserver oder Cronjobs, die Ihren API-Schlüssel verwenden dürfen. Sie können die IP-Adressen in einem der folgenden Formate angeben:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Ein Subnetz mit CIDR-Notation (
198.51.100.0/24
,2001:db8::/64
)
Die Verwendung von localhost
wird für Servereinschränkungen nicht unterstützt.
Verwenden Sie eine der folgenden Optionen, um den API-Schlüssel auf bestimmte IP-Adressen zu beschränken:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf den Namen des API-Schlüssels, den Sie einschränken möchten.
Wählen Sie im Abschnitt Anwendungseinschränkungen die IP-Adressen.
Klicken Sie für jede IP-Adresse, die Sie hinzufügen möchten, auf Element hinzufügen, geben Sie die Adresse ein und klicken Sie auf Fertig.
Klicken Sie auf Speichern, um die Änderungen zu speichern und zur API-Schlüsselliste zurückzukehren.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list
die Schlüssel in Ihrem Projekt auf.Verwenden Sie den Befehl
gcloud services api-keys update
, um einem API-Schlüssel Server-IP-Einschränkungen hinzuzufügen.Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.ALLOWED_IP_ADDR_1
: ist Ihre zulässige IP-Adresse.Sie können beliebig viele IP-Adressen hinzufügen. Verwenden Sie Kommas, um die Adressen zu trennen.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden. Die ID wird im Feld
uid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Verwenden Sie die Methode keys.patch, um einem API-Schlüssel Servereinschränkungen (IP-Adresse) hinzuzufügen.
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
ALLOWED_IP_ADDR_1
: ist Ihre zulässige IP-Adresse.Sie können beliebig viele IP-Adressen hinzufügen. Verwenden Sie Kommas, um die Einschränkungen zu trennen. Sie müssen alle IP-Adressen mit der Anfrage angeben. Die angegebenen Einschränkungen für Verweis-URLs ersetzen vorhandene IP-Adressbeschränkungen für den Schlüssel.
PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Weitere Informationen zum Hinzufügen von IP-Adressbeschränkungen für einen Schlüssel mithilfe der REST API finden Sie in der API-Dokumentation zu API Keys unter Servereinschränkungen hinzufügen.
Android-Apps
Sie können die Verwendung eines API-Schlüssels auf bestimmte Android-Apps beschränken. Sie müssen den Paketnamen und den 20-Byte-SHA1-Zertifikatfingerabdruck für jede Anwendung angeben.
Wenn Sie den API-Schlüssel in einer Anfrage verwenden, müssen Sie den Paketnamen und den Zertifikatfingerabdruck mit den folgenden HTTP-Headern angeben:
X-Android-Package
X-Android-Cert
Verwenden Sie eine der folgenden Optionen, um Ihren API-Schlüssel auf eine oder mehrere Android-Apps zu beschränken:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf den Namen des API-Schlüssels, den Sie einschränken möchten.
Wählen Sie im Abschnitt Anwendungseinschränkungen Android-Apps aus.
Klicken Sie für jede Android-App, die Sie hinzufügen möchten, auf Element hinzufügen, geben Sie den Paketnamen und den SHA1-Zertifikat-Fingerabdruck ein und klicken Sie auf Fertig.
Klicken Sie auf Speichern, um die Änderungen zu speichern und zur API-Schlüsselliste zurückzukehren.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list
die Schlüssel in Ihrem Projekt auf.Geben Sie mit dem Befehl
gcloud services api-keys update
die Android-Apps an, die einen API-Schlüssel verwenden können.Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.SHA1_FINGERPRINT
undPACKAGE_NAME
: Die App-Informationen für eine Android-App, die den Schlüssel verwenden kann.Sie können beliebig viele Anwendungen hinzufügen. Verwenden Sie zusätzliche
--allowed-application
-Flags.
gcloud services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden. Die ID wird im Feld
uid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Verwenden Sie die Methode keys.patch, um die Android-Apps anzugeben, die einen API-Schlüssel verwenden können.
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
SHA1_FINGERPRINT_1
und PACKAGE_NAME_1: Die App-Informationen für eine Android-App, die den Schlüssel verwenden kann.Sie können die Informationen für so viele Anwendungen wie nötig hinzufügen. Verwenden Sie Kommas, um die AndroidApplication-Objekte zu trennen. Sie müssen alle Anwendungen mit der Anfrage bereitstellen. Die bereitgestellten Anwendungen ersetzen alle vorhandenen zulässigen Anwendungen für den Schlüssel.
PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Weitere Informationen zum Hinzufügen von Einschränkungen für Android-Apps zu einem Schlüssel mithilfe der REST API finden Sie in der API-Dokumentation zu API Keys unter Android-Einschränkungen hinzufügen.
iOS-Apps
Sie können die Nutzung eines API-Schlüssels auf bestimmte iOS-Apps beschränken, indem Sie die Bundle-ID der einzelnen Apps angeben.
Wenn Sie den API-Schlüssel in einer Anfrage verwenden, müssen Sie die Bundle-ID mit dem HTTP-Header X-Ios-Bundle-Identifier
angeben.
Verwenden Sie eine der folgenden Optionen, um Ihren API-Schlüssel auf eine oder mehrere iOS-Apps zu beschränken:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf den Namen des API-Schlüssels, den Sie einschränken möchten.
Wählen Sie im Abschnitt Anwendungseinschränkungen iOS-App aus.
Klicken Sie für jede iOS-App, die Sie hinzufügen möchten, auf Element hinzufügen, geben Sie die Bundle-ID ein und klicken Sie dann auf Fertig.
Klicken Sie auf Speichern, um die Änderungen zu speichern und zur API-Schlüsselliste zurückzukehren.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list
die Schlüssel in Ihrem Projekt auf.Mit der Methode
gcloud services api-keys update
können Sie die iOS-Apps festlegen, die den Schlüssel verwenden können.Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.ALLOWED_BUNDLE_ID
: Die Bundle-ID einer iOS-App, die diesen API-Schlüssel verwenden soll.Sie können beliebig viele Bundle-IDs hinzufügen. Verwenden Sie Kommas, um die IDs zu trennen.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden. Die ID wird im Feld
uid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Verwenden Sie die Methode keys.patch, um die Android-Apps anzugeben, die einen API-Schlüssel verwenden können.
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
ALLOWED_BUNDLE_ID
: Die Bundle-ID einer iOS-App, die den Schlüssel verwenden kann.Sie können die Informationen für so viele Anwendungen wie nötig hinzufügen. Verwenden Sie Kommas, um die Bundle-IDs zu trennen. Sie müssen alle Bundle-IDs mit der Anfrage angeben. Die angegebenen Bundle-IDs ersetzen alle vorhandenen zulässigen Anwendungen für den Schlüssel.
PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Weitere Informationen zum Hinzufügen von iOS-App-Einschränkungen zu einem Schlüssel mithilfe der REST API finden Sie unter iOS-Einschränkungen hinzufügen in der API-Dokumentation zu API Keys.
API-Einschränkungen hinzufügen
API-Einschränkungen geben an, welche APIs mit dem API-Schlüssel aufgerufen werden können.
Verwenden Sie eine der folgenden Optionen, um API-Einschränkungen hinzuzufügen:
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf den Namen des API-Schlüssels, den Sie einschränken möchten.
Klicken Sie im Abschnitt API-Einschränkungen auf Schlüssel einschränken.
Wählen Sie alle APIs aus, für die Ihr API-Schlüssel verwendet wird.
Klicken Sie auf Speichern, um die Änderungen zu speichern und zur API-Schlüsselliste zurückzukehren.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list
die Schlüssel in Ihrem Projekt auf.Geben Sie mit dem Befehl
gcloud services api-keys update
an, für welche Dienste ein API-Schlüssel zur Authentifizierung verwendet werden kann.Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.SERVICE_1
,SERVICE_2
...: Die Dienstnamen der APIs, auf die der Schlüssel zugreifen kann.Sie müssen alle Dienstnamen mit dem Befehl "update" angeben. Ersetzen Sie durch die bereitgestellten Dienstnamen alle vorhandenen Dienste für den Schlüssel.
Sie finden den Dienstnamen, indem Sie im API-Dashboard nach der API suchen. Dienstnamen sind Strings wie
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Rufen Sie die ID des Schlüssels ab, den Sie einschränken möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden. Die ID wird im Feld
uid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Verwenden Sie die Methode keys.patch, um anzugeben, für welche Dienste ein API-Schlüssel zur Authentifizierung verwendet werden kann.
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
SERVICE_1
,SERVICE_2
...: Die Dienstnamen der APIs, auf die der Schlüssel zugreifen kann.Sie müssen alle Dienstnamen mit der Anfrage angeben. Ersetzen Sie durch die bereitgestellten Dienstnamen alle vorhandenen Dienste für den Schlüssel.
Sie finden den Dienstnamen, indem Sie im API-Dashboard nach der API suchen. Dienstnamen sind Strings wie
bigquery.googleapis.com
.PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Weitere Informationen zum Hinzufügen von API-Einschränkungen zu einem Schlüssel mithilfe der REST API finden Sie unter API-Einschränkungen hinzufügen in der API-Dokumentation zu API Keys.
Projektinformationen aus einem Schlüsselstring abrufen
Sie können anhand des Strings feststellen, welchem Google Cloud-Projekt ein API-Schlüssel zugeordnet ist.
Ersetzen Sie KEY_STRING
durch den Schlüsselstring, für den Sie Projektinformationen benötigen.
gcloud
Verwenden Sie den
gcloud services api-keys lookup
-Befehl, um die Projekt-ID aus einem Schlüsselstring abzurufen.
gcloud services api-keys lookup KEY_STRING
Java
Sie müssen die google-cloud-apikeys
-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die API-Schlüssel-Clientbibliothek installieren, um dieses Beispiel auszuführen.
REST
Verwenden Sie die
lookupKey
-Methode, um die Projekt-ID aus einem Schlüsselstring abzurufen.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
API-Schlüssel wiederherstellen
Wenn Sie einen API-Schlüssel versehentlich löschen, können Sie ihn innerhalb von 30 Tagen nach dem Löschen wiederherstellen. Nach 30 Tagen können Sie den API-Schlüssel nicht wiederherstellen.
Console
Wechseln Sie in der Google Cloud Console zur Seite Anmeldedaten:
Klicken Sie auf Gelöschte Anmeldedaten wiederherstellen.
Suchen Sie den gelöschten API-Schlüssel, den Sie wiederherstellen möchten, und klicken Sie auf Wiederherstellen.
Es kann einige Minuten dauern, bis das Wiederherstellen eines API-Schlüssels wirksam wird. Nach der Weitergabe wird der wiederhergestellte API-Schlüssel in der Liste der API-Schlüssel angezeigt.
gcloud
Rufen Sie die ID des Schlüssels ab, den Sie wiederherstellen möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Um die ID abzurufen, listen Sie mit dem Befehl
gcloud services api-keys list --show-deleted
die gelöschten Schlüssel in Ihrem Projekt auf.Verwenden Sie den
gcloud services api-keys undelete
-Befehl, um einen API-Schlüssel wiederherzustellen.gcloud services api-keys undelete KEY_ID
Ersetzen Sie die folgenden Werte:
KEY_ID
: Die ID des Schlüssels, den Sie wiederherstellen möchten.
REST
Rufen Sie die ID des Schlüssels ab, den Sie wiederherstellen möchten.
Die ID ist nicht mit dem Anzeigenamen oder dem Schlüsselstring identisch. Sie erhalten die ID, indem Sie die Methode keys.list verwenden, wobei der Abfrageparameter
showDeleted
auftrue
gesetzt ist. Die Schlüssel-ID wird im Felduid
der Antwort aufgeführt.Ersetzen Sie
PROJECT_ID
durch die Google Cloud-Projekt-ID oder den Projektnamen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
Verwenden Sie die Methode wiederherstellen, um den API-Schlüssel wiederherzustellen.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID:undelete"
Diese Anfrage gibt einen Vorgang mit langer Ausführungszeit zurück. Sie müssen den Vorgang abfragen, um festzustellen, wann der Vorgang abgeschlossen ist, und den Vorgangsstatus abzurufen.
Ersetzen Sie die folgenden Werte:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID oder Ihr Name.KEY_ID
: Die ID des Schlüssels, den Sie einschränken möchten.
Vorgänge mit langer Ausführungszeit abfragen
API-Methoden für API Keys verwenden Vorgänge mit langer Ausführungszeit. Wenn Sie die REST API zum Erstellen und Verwalten von API-Schlüsseln verwenden, wird von der ersten Methodenanfrage ein Vorgangsobjekt zurückgegeben. Sie verwenden den Vorgangsnamen, um den Vorgang mit langer Ausführungszeit abzufragen. Wenn die Anfrage mit langer Ausführungszeit abgeschlossen ist, werden durch die Abfrage die Daten der Anfrage mit langer Ausführungszeit zurückgegeben.
Zum Abfragen eines lange laufenden API Keys-API-Vorgangs verwenden Sie die Methode operations.get
.
Ersetzen Sie OPERATION_NAME
durch den Vorgangsnamen, der vom lang andauernden Vorgang zurückgegeben wird. Beispiel: operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
Limits für API-Schlüssel
Sie können bis zu 300 API-Schlüssel pro Projekt erstellen. Dies ist ein Systemlimit; es kann nicht mithilfe einer Anfrage zur Kontingenterhöhung geändert werden.
Wenn mehr API-Schlüssel erforderlich sind, müssen Sie mehrere Projekte verwenden.
Nächste Schritte
- Best Practices für die Sicherheit Ihrer API-Schlüssel
- Weitere Informationen zur API Keys API
Sofern 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-12-22 (UTC).