Für Anwendungen und Projekte, für die die APIs und SDKs der Google Maps Platform verwendet werden, sind API-Schlüssel erforderlich. Für maximale Sicherheit und minimalen Aufwand solltest du deine API-Schlüssel gleich beim Erstellen sichern.
Das ist zwar auch möglich, nachdem sie erstellt und bereits verwendet wurden, es können je nach Verwendung des Schlüssels jedoch unterschiedliche Einschränkungen gelten. Es ist sehr kompliziert, Schlüssel in Android- und iOS-Apps zu ändern oder zu ersetzen. Sie können nämlich erst komplett ersetzt werden, wenn alle Nutzer die App aktualisiert haben. Bei JavaScript- oder Webdienstanwendungen ist das Ganze wesentlich einfacher. Das Ändern oder Ersetzen der Schlüssel muss aber trotzdem sorgfältig geplant und schnell umgesetzt werden.
Die erforderlichen Sicherheitsmaßnahmen für die einzelnen Google Maps Platform-Produkte findest du in den Tabellen im Abschnitt Weitere Informationen.
API-Schlüssel einschränken
Wenn du die API-Schlüssel zum ersten Mal erstellst, solltest du eine Anwendungseinschränkung und mindestens eine API-Einschränkung für sie festlegen.
Mit Anwendungseinschränkungen wird die Nutzung eines API-Schlüssels auf eine bestimmte Plattform (Android oder iOS) oder bestimmte Websites (öffentliche IP-Adresse und Website) beschränkt. Für jeden API-Schlüssel kann nur eine Art von Anwendungseinschränkung festgelegt werden.
Mit API-Einschränkungen wird die Verwendung von API-Schlüsseln auf eine oder mehrere Google Maps Platform APIs oder SDKs beschränkt. Es werden dann nur Nutzungsanfragen für APIs oder SDKs verarbeitet, die mit einem API-Schlüssel verknüpft sind. Pro API-Schlüssel können so viele API-Einschränkungen festgelegt werden wie nötig.
Falls du deinen API-Schlüssel beim Erstellen nicht gesichert hast, generiere zusätzliche API-Schlüssel und schränke diese ein. Aktualisiere dann deine Anwendungen mit den neuen API-Schlüsseln. Aus Sicherheitsgründen wäre ein Schlüssel pro Anwendung ideal. Du kannst eingeschränkte Schlüssel aber trotzdem für mehrere Anwendungen verwenden. Die Anwendungseinschränkungen des jeweiligen Schlüssels dürfen jedoch nicht zu Kompatibilitätsproblemen mit den Anwendungen führen, für die der Schlüssel verwendet wird.
Wenn du API-Schlüssel nach dem Erstellen einschränken möchtest, solltest du dir ansehen, wie sie genutzt werden, und dafür sorgen, dass durch die Einschränkungen keine Probleme mit vorhandenen Anwendungen auftreten.
Rufe in der Google Cloud Console die Seite Messwerte auf.
Wähle Filter einblenden aus.
Wähle unter Gruppiert nach die Option Anmeldedaten aus. Jetzt siehst du, welche API-Schlüssel mit welchen Google-Diensten verwendet werden.
Klicke auf Anmeldedaten.
Hebe die Auswahl aller Anmeldedaten auf.
Wähle jeden angezeigten Schlüssel aus und klicke auf OK.
Wähle unter Gruppiert nach die Option API aus. Nun siehst du, welche API-Einschränkungen auf den Schlüssel angewendet werden müssen.
Wenn du unter Gruppiert nach die Option API-Methode auswählst, lässt sich eventuell leichter ermitteln, welche Art von Anwendungseinschränkung am besten für den jeweiligen Schlüssel geeignet ist.
Anwendungseinschränkung für einen API-Schlüssel festlegen
- Rufe die Seite Anmeldedaten auf.
Wähle den API-Schlüssel aus, für den du eine Einschränkung festlegen möchtest. Die Seite mit den Eigenschaften des API-Schlüssels wird angezeigt.
Wähle unter Schlüsseleinschränkungen die Option Anwendungseinschränkungen aus.
Wähle einen der Einschränkungstypen aus und mache alle erforderlichen Angaben gemäß der Einschränkungsliste.
Einschränkungstyp Beschreibung HTTP-Verweis-URLs Gib eine oder mehrere Verweis-URLs (Websites) an. Platzhalterzeichen sind für die Autorisierung aller Subdomains zulässig ( *.google.com
akzeptiert z. B. alle Websites, die auf.google.com
enden).IP-Adressen Gib eine IPv4- oder IPv6-Adresse oder ein Subnetz in CIDR-Notation an. Bei einer Webdienstanfrage wird die externe IP-Adresse geprüft und mit der Einschränkung des API-Schlüssels abgeglichen. Verwende also die öffentliche IP-Adresse des Servers. Android-Apps Gib den SHA-1-Fingerabdruck des Signaturzertifikats und den Namen deines Android-Pakets aus der Datei AndroidManifest.xml
an.iOS-Apps Wähle unter den Typen den entsprechenden iOS-Paket-Identifikator aus der Liste aus. Klicke auf Speichern.
API-Einschränkung für einen API-Schlüssel festlegen
Rufe die Seite Anmeldedaten auf.
Wähle den API-Schlüssel aus, den du einschränken möchtest. Die Seite API-Schlüssel einschränken und umbenennen wird geöffnet.
Gehe unter API-Einschränkungen so vor:
Klicke auf Schlüssel einschränken.
Klicke auf das Drop-down-Menü APIs auswählen und wähle die APIs oder SDKs aus, auf die deine Anwendung mit dem API-Schlüssel zugreifen soll.
Wenn eine API oder ein SDK nicht aufgeführt ist, musst du es aktivieren.
Klicke auf Speichern.
Die Einschränkung wird nach diesem Schritt in die API-Schlüsseldefinition aufgenommen. Wenn du nicht die erforderlichen Details angibst oder nicht auf „Speichern“ klickst, wird der API-Schlüssel nicht eingeschränkt. Weitere Informationen findest du auf der Seite API-Schlüssel abrufen der entsprechenden API bzw. des jeweiligen SDKs.
Ungenutzte API-Schlüssel löschen
Lösche einen API-Schlüssel nur, wenn er nicht in der Produktion verwendet wird. Wenn es keine erfolgreichen Anfragen dafür gibt, kann er wahrscheinlich gelöscht werden.
So löschst du einen API-Schlüssel:
Rufe die Seite Anmeldedaten auf.
Wähle den API-Schlüssel aus, den du löschen möchtest.
Klicke am oberen Seitenrand auf die Schaltfläche Löschen.
Das Dialogfeld Anmeldedaten löschen wird eingeblendet. Wähle dort die Option Löschen aus.
Das Löschen eines API-Schlüssels dauert einige Minuten. Danach werden Anfragen mit dem gelöschten API-Schlüssel abgelehnt.
Weitere Möglichkeiten zum Sichern deiner APIs
Vorsicht beim Neugenerieren von API-Schlüsseln
Wenn du einen API-Schlüssel neu generierst, wird ein neuer Schlüssel mit allen Einschränkungen des alten Schlüssels erstellt. Der alte API-Schlüssel wird nach 24 Stunden deaktiviert.
In dieser Zeit werden der alte und der neue Schlüssel akzeptiert, sodass du deine Anwendungen auf den neuen Schlüssel umstellen kannst. Alle Anwendungen, die noch den alten API-Schlüssel verwenden, funktionieren nach diesen 24 Stunden jedoch nicht mehr.
Rufe die Seite API-Schlüssel auf.
Wähle Auf vorherigen Schlüssel zurücksetzen aus.
Klicke im Dialogfeld Rückgängig machen auf Schlüssel zurücksetzen.
Bei einem Rollback wird die Version, die du zuletzt neu generiert hast, zur vorherigen Version und bleibt dann noch 24 Stunden lang aktiv. Du kannst zwischen diesen beiden Schlüsselversionen wechseln, bis du den Schlüssel wieder neu generierst.
Dabei wird nämlich die inaktive Version des Schlüssels überschrieben.
API-Nutzung beobachten
So prüfst du die Nutzung deiner API-Schlüssel:
Rufe die Seite Messwerte auf.
Klicke auf Filter einblenden.
Wähle unter Gruppiert nach die Option API-Methode aus.
Wähle unter Antwortcode die Option 2xx aus, um alle erfolgreichen Anfragen für diesen Schlüssel zu sehen.
Wenn du eine nicht autorisierte Nutzung feststellst, gehe so vor:
Schränke deine Schlüssel ein.
Wenn der Schlüssel in mehreren Anwendungen verwendet wird, stelle auf mehrere API-Schlüssel um, vorzugsweise mit separaten API-Schlüsseln für jede Anwendung.
Sollte die nicht autorisierte Nutzung fortgesetzt werden, musst du die entsprechenden Schlüssel neu generieren oder löschen.
Separate API-Schlüssel für jede App verwenden
Dadurch wird der Bereich der einzelnen Schlüssel eingeschränkt. Wenn ein API-Schlüssel manipuliert wurde, kannst du ihn löschen oder neu generieren, ohne etwas an deinen anderen API-Schlüsseln ändern zu müssen.
Auf mehrere API-Schlüssel umstellen
So migrierst du von einem gemeinsamen API-Schlüssel für mehrere Anwendungen zu einem eigenen API-Schlüssel für jede Anwendung:
Finde heraus, für welche Anwendungen neue Schlüssel erforderlich sind.
- Webanwendungen lassen sich am einfachsten aktualisieren, da du den Code komplett verwaltest. Du solltest die Schlüssel all deiner webbasierten Anwendungen aktualisieren.
- Bei mobilen Apps gestaltet sich das Ganze viel schwieriger. Sie müssen vom Nutzer aktualisiert werden, bevor die neuen Schlüssel zum Einsatz kommen können.
Erstelle die neuen Schlüssel und schränke sie ein.
- Lege sowohl eine Anwendungseinschränkung als auch mindestens eine API-Einschränkung fest.
Weise den einzelnen Anwendungen die Schlüssel zu.
- Bei Apps kann es Monate dauern, bis alle Nutzer die aktuelle Version mit dem neuen API-Schlüssel installiert haben.
Maps Web Service APIs oder Static Web APIs – Methoden zum Schutz von Anwendungen
API-Schlüssel und Secrets für die Signatur nicht im Quellcode der Anwendung speichern: Wenn du deine API-Schlüssel oder andere private Informationen in Umgebungsvariablen einfügst oder Dateien einschließt, die separat gespeichert sind, und dann deinen Code teilst, sind die API-Schlüssel oder Secrets nicht in den geteilten Dateien enthalten.
API-Schlüssel und Secrets für die Signatur nicht in der Quellstruktur der Anwendung speichern: Wenn du API-Schlüssel oder andere private Informationen in Dateien speicherst, solltest du diese Dateien außerhalb der Quellstruktur der Anwendung aufbewahren, damit die Schlüssel nicht im Verwaltungssystem deines Quellcodes enthalten sind. Das ist besonders dann wichtig, wenn du GitHub oder ein anderes öffentliches Verwaltungssystem für Quellcode verwendest.
Web Service APIs oder Static Web APIs – Methoden zum Schutz von mobilen Apps
Proxyserver verwenden: Der Proxyserver bietet eine solide Quelle für die Interaktion mit der entsprechenden Google Maps Platform API. Weitere Informationen zum Verwenden eines Proxyservers findest du im englischsprachigen Artikel Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries.
API-Schlüssel oder Secret für die Signatur verschleiern oder verschlüsseln: Dadurch wird das Kopieren von API-Schlüsseln und anderen privaten Daten direkt aus der App erschwert.
Weitere Informationen
In diesen Tabellen findest du die jeweiligen Einschränkungen für API-Schlüssel sowie die Best Practices für die API-Sicherheit für alle APIs, SDKs und Dienste der Google Maps Platform.
Websites mit Maps JavaScript, Embed oder Static APIs
Anwendungen und Server, für die Webdienste verwendet werden
API/SDK/Dienst | App-Einschränkung(1) | API-Einschränkung(1) | Best Practices |
---|---|---|---|
Directions API | IP-Adressen einschränken(4) | Directions API | |
Distance Matrix API | IP-Adressen einschränken(4) | Distance Matrix API | |
Elevation API | IP-Adressen einschränken(4) | Elevation API | |
Geocoding API | IP-Adressen einschränken(4) | Geocoding API | |
Geolocation API | IP-Adressen einschränken(4) | Geolocation API | |
Places API(5) | IP-Adressen einschränken(4) | Places API | |
Roads API | IP-Adressen einschränken(4) | Roads API | |
Time Zone API | IP-Adressen einschränken(4) | Time Zone API |
Android-Apps
API/SDK/Dienst | App-Einschränkung(1) | API-Einschränkung(1) | Best Practices |
---|---|---|---|
Maps SDK for Android | Android-Einschränkung | Maps SDK for Android | |
Places SDK for Android | Android-Einschränkung | Places API |
iOS-Apps
API/SDK/Dienst | App-Einschränkung(1) | API-Einschränkung(1) | Best Practices |
---|---|---|---|
Maps SDK for iOS | iOS-Einschränkung | Maps SDK for iOS | |
Places SDK for iOS | iOS-Einschränkung | Places API |
1 Du kannst uneingeschränkte API-Schlüssel für alle APIs und SDKs der Google Maps Platform verwenden. Wir empfehlen dir jedoch dringend, deine API-Schlüssel einzuschränken, besonders wenn…
die Testumgebung öffentlich sichtbar ist oder sein wird.
die entsprechende Anwendung bereit für die Produktion ist.
2 Für Apps solltest du die Verwendung des nativen Maps SDK for Android bzw. Maps SDK for iOS in Betracht ziehen.
3 Für die Maps Static API und die Street View Static API musst du zusätzlich zu einem API-Schlüssel eine digitale Signatur angeben, wenn du vorhast, das Tageskontingent von 25.000 Kartenaufrufen zu überschreiten.
Wenn du deine Anfragen signierst, musst du entscheiden, wie viele nicht signierte Anfragen du pro Tag zulassen möchtest, und deine Kontingente für nicht signierte Anfragen entsprechend anpassen.
4 Einschränkungen von IP-Adressen sind nicht immer praktikabel. Für Apps und Cloud-Umgebungen, für die dynamische IP-Adressen erforderlich sind, bieten sie sich z. B. nicht an. Wenn du in diesen Fällen Maps Web Service APIs verwendest, solltest du deine Apps mit einem Proxyserver oder einer Verschleierung sichern.
5 Für Apps bietet sich auch das native Places SDK for Android bzw. Places SDK for iOS an.