API-Schlüssel verwenden

In diesem Thema erfahren Anwendungsentwickler, wie sie API-Schlüssel mit Google Cloud APIs verwenden. Ein API-Schlüssel ist ein einfacher verschlüsselter String, der eine Anwendung ohne Hauptkonto identifiziert. Sie sind nützlich, um anonym auf öffentliche Daten zuzugreifen, und werden verwendet, um Ihrem Projekt API-Anfragen für Kontingente und Abrechnung zuzuordnen.

Weitere Informationen zur Authentifizierung bei Google Cloud APIs und zur Ermittlung der besten Authentifizierungsstrategie für häufige Szenarien finden Sie in der Übersicht zur Authentifizierung. Weitere Informationen zu API-Schlüsseln für Google Maps Platform APIs und SDKs erhalten Sie in der Google Maps Platform-Dokumentation.

API-Schlüssel verwalten

Wir empfehlen die Verwendung der Cloud Console zur Verwaltung von API-Schlüsseln. Rufen Sie in der Cloud Console die Seite APIs & Dienste → Anmeldedaten auf. Ihre API-Schlüssel werden im Abschnitt API-Schlüssel angezeigt. Auf dieser Seite können Sie z. B. API-Schlüssel erstellen, API-Schlüsseleinschränkungen definieren oder API-Schlüsselstrings rotieren.

API-Schlüssel erstellen

Zum Erstellen eines API-Schlüssels in einem Projekt benötigen Nutzer die einfache Rolle Bearbeiter (roles/editor) für das Projekt. Weitere Informationen finden Sie unter Definitionen für einfache Rollen.

So erstellen Sie einen API-Schlüssel:

  1. Rufen Sie in der Cloud Console APIs & Dienste → Anmeldedaten auf.

  2. Wählen Sie Anmeldedaten erstellen und dann im Drop-down-Menü die Option API-Schlüssel.

  3. Das Dialogfeld API-Schlüssel erstellt enthält den neu erstellten Schlüssel.

Sie sollten den Schlüssel kopieren und sicher aufbewahren. Wenn Sie keinen Testschlüssel verwenden, den Sie später wieder löschen, fügen Sie Einschränkungen für API-Schlüssel hinzu.

API-Schlüssel verwenden

Übergeben Sie den API-Schlüssel als Suchparameter in einem REST API-Aufruf mit dem folgenden Format. Ersetzen Sie dabei API_KEY durch Ihren API-Schlüssel:

key=API_KEY

So übergeben Sie beispielsweise einen API-Schlüssel für eine Cloud Natural Language API-Anfrage für documents.analyzeEntities:

POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

API-Schlüssel sichern

Wenn Sie API-Schlüssel in Ihren Anwendungen verwenden, achten Sie darauf, dass sie sowohl beim Speichern als auch bei der Übertragung sicher sind. Wenn Sie Ihre Anmeldedaten öffentlich preisgeben, gefährden Sie damit möglicherweise Ihr Konto und riskieren so unerwartete Mehrkosten. Sie sollten diese Best Practices befolgen, um die Sicherheit Ihrer API-Schlüssel zu wahren:

  • Betten Sie API-Schlüssel nicht direkt in Code ein. In Code eingebettete API-Schlüssel können versehentlich öffentlich zugänglich gemacht werden. Dies kann beispielsweise geschehen, wenn Sie vergessen, die Schlüssel aus freigegebenem Code zu entfernen. Anstatt Ihre API-Schlüssel in Ihre Anwendungen einzubetten, sollten Sie sie in Umgebungsvariablen oder Dateien außerhalb der Quellstruktur der Anwendung speichern.

  • Speichern Sie API-Schlüssel nicht in Dateien in der Quellstruktur der Anwendung. Wenn Sie API-Schlüssel in Dateien speichern, sollten sich diese außerhalb der Quellstruktur der Anwendung befinden, um sicherzustellen, dass Ihre Schlüssel nicht im Verwaltungssystem des Quellcodes landen. Das ist besonders wichtig, wenn Sie ein öffentliches Quellcode-Verwaltungssystem wie GitHub verwenden.

  • Richten Sie Einschränkungen für Anwendungen und API-Schlüssel ein. Dadurch können Sie die Auswirkungen eines eventuell manipulierten API-Schlüssels reduzieren.

  • Löschen Sie nicht benötigte API-Schlüssel, um das Angriffsrisiko zu minimieren.

  • Generieren Sie Ihre API-Schlüssel regelmäßig neu. Klicken Sie dazu auf der Seite Anmeldedaten für jeden Schlüssel auf Schlüssel neu generieren. Aktualisieren Sie dann Ihre Anwendungen so, dass sie die neu generierten Schlüssel verwenden. Die alten Schlüssel funktionieren noch 24 Stunden, nachdem Sie Ersatzschlüssel generiert haben.

  • Überprüfen Sie Ihren Code, bevor Sie ihn veröffentlichen. Er sollte keine API-Schlüssel oder andere private Informationen enthalten.

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.

So richten Sie Einschränkungen für API-Schlüssel ein:

  1. Rufen Sie in der Cloud Console APIs & Dienste → Anmeldedaten auf.

  2. Wählen Sie den Namen eines vorhandenen API-Schlüssels aus.

Einschränkungen für Anwendungen hinzufügen

Anwendungseinschränkungen legen fest, welche Websites, IP-Adressen oder Anwendungen einen API-Schlüssel verwenden können. Richten Sie Anwendungseinschränkungen je nach Art Ihrer Anwendung ein. Sie können nur einen Einschränkungstyp pro API-Schlüssel festlegen.

Wählen Sie den für Ihre Anwendung geeigneten Einschränkungstyp aus.

  • Verwenden Sie Keine nur zu Testzwecken.

  • Verwenden Sie HTTP-Verweis-URLs für API-Clients, die in einem Webbrowser ausgeführt werden, damit nur die angegebenen Seiten die API aufrufen können. Da diese Arten von Anwendungen ihre API-Schlüssel veröffentlichen, sollten Sie ein Dienstkonto verwenden. Beispiele finden Sie im Abschnitt HTTP-Einschränkungen hinzufügen weiter unten.

  • Verwenden Sie IP-Adressen, um den Zugriff mit API-Schlüsseln auf bestimmte IP-Adressen zu beschränken.

  • Verwenden Sie Android-Apps für Android-Anwendungen. Bei dieser Option müssen Sie Ihren Paketnamen und den SHA1-Signaturzertifikat-Fingerabdruck angeben.

  • Verwenden Sie iOS-Apps für iOS-Anwendungen. Für diese Option muss mindestens eine iOS-Bundle-ID hinzugefügt werden, um API-Aufrufe auf bestimmte iOS-Bundles zu beschränken.

HTTP-Einschränkungen hinzufügen

Für von Webanwendungen verwendete API-Schlüssel sollten HTTP-Einschränkungen gelten. So richten Sie HTTP-Einschränkungen ein:

  • Wählen Sie im Abschnitt Anwendungseinschränkungen die Option HTTP-Verweis-URLs (Websites) aus.

  • Geben Sie mindestens eine Einschränkung im Abschnitt Website-Einschränkungen ein.

  • Wenn Ihre Domain sowohl HTTP als auch HTTPS unterstützt, müssen beide Einschränkungen separat hinzugefügt werden.

  • Für die Subdomain und/oder den Pfad können Sie optional Platzhalterzeichen (*) verwenden.

Die folgende Tabelle zeigt Beispielszenarien und -einschränkungen, von der größtmöglichen bis zur minimalen Einschränkung. Wir empfehlen, das restriktivste Beispiel zu verwenden, das zu Ihrem Anwendungsfall passt.

Szenario Einschränkungen
Bestimmte URL zulassen

Fügen Sie eine einzelne Einschränkung mit einem genauen Pfad hinzu. Beispiel:

  • https://www.example.com/path
  • http://www.example.com/path/path
Eine beliebige URL in einer einzelnen Subdomain oder einer Grunddomain zulassen

Sie müssen mindestens zwei Einschränkungen festlegen, um eine gesamte Domain zuzulassen.

  1. Legen Sie eine Einschränkung für die Domain ohne den abschließenden Schrägstrich fest. Beispiel:
    • https://www.example.com
    • http://sub.example.com
    • http://example.com
  2. Legen Sie eine zweite Einschränkung für die Domain fest, die einen Platzhalter für den Pfad enthält. Beispiel:
    • https://www.example.com/*
    • http://sub.example.com/*
    • http://example.com/*
  3. Wenn Ihre Domain sowohl HTTP als auch HTTPS zulässt, müssen Sie zusätzliche Einschränkungen separat hinzufügen.
URLs für Subdomains in einer einzelnen Domain zulassen

Sie müssen mindestens zwei Einschränkungen festlegen.

  1. Legen Sie eine Einschränkung für die Domain mit einem Platzhalter für die Subdomain und ohne den abschließenden Schrägstrich fest. Beispiel:
    • https://*.example.com
  2. Legen Sie eine zweite Einschränkung für die Domain fest, die einen Platzhalter für den Pfad enthält. Beispiel:
    • https://*.example.com/*
  3. Wenn Ihre Domain sowohl HTTP als auch HTTPS zulässt, müssen Sie zusätzliche Einschränkungen separat hinzufügen.

API-Einschränkungen hinzufügen

API-Einschränkungen geben an, welche APIs mit dem API-Schlüssel aufgerufen werden können. Für alle API-Schlüssel, die in Produktionsanwendungen verwendet werden, sollten API-Einschränkungen eingerichtet sein.

So legen Sie API-Einschränkungen fest:

  1. Wählen Sie im Abschnitt API-Einschränkungen Schlüssel einschränken aus.

  2. Wählen Sie aus der Drop-down-Liste alle APIs aus, die Ihr API-Schlüssel aufrufen muss.

  3. Klicken Sie auf Speichern.

Weitere Informationen