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 (z. B. Maps JavaScript API) finden Sie im Abschnitt Weitere Informationen.
API-Schlüssel einschränken
Wenn Sie die API-Schlüssel zum ersten Mal erstellen, sollten Sie eine Anwendungseinschränkung und mindestens eine API-Einschränkung dafür 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 Sie unter Gruppiert nach die Option API-Methode auswählen, 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
- Rufen Sie 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 Geben Sie mindestens eine Verweis-URL (Website) an. Platzhalterzeichen sind für die Autorisierung aller Subdomains zulässig ( *.google.com
akzeptiert z. B. alle Websites, die auf.google.com
enden). Geben Siehttps://
undhttp://
unverändert an. Für andere Arten von Verweis-URL-Protokollen müssen Sie eine spezielle Darstellung verwenden.file:///path/to/
muss z. B. als__file_url__//path/to/*
formatiert werden. Wenn Sie Verweis-URLs aktiviert haben, sollten Sie die Nutzung genau beobachten, um sicherzugehen, dass Ihre Erwartungen erfüllt werden. Folgende Protokolle für Verweis-URLs werden unterstützt:about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
.IP-Adressen Geben Sie 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. Verwenden Sie 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. Klicken Sie auf Speichern.
API-Einschränkung für einen API-Schlüssel festlegen
Rufen Sie 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 finden Sie auf der Seite API-Schlüssel abrufen der entsprechenden API bzw. des jeweiligen SDK.
Nicht verwendete 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:
Rufen Sie 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 von 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 Sie zuletzt neu generiert haben, 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üfen Sie die Nutzung Ihrer 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 Anwendung verwenden
Dadurch wird der Bereich der einzelnen Schlüssel eingeschränkt. Wenn ein API-Schlüssel manipuliert wurde, können Sie ihn löschen oder neu generieren, ohne etwas an Ihren anderen API-Schlüsseln ändern zu müssen.
Zu mehreren API-Schlüsseln migrieren
So migrieren Sie 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 mobilen 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 finden Sie 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 den folgenden Tabellen finden Sie 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 |
---|---|---|---|
Address Validation API | IP-Adressen einschränken(4) | Address Validation API | |
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.