Best Practices für die Verwaltung von API-Schlüsseln

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 API-Schlüssel öffentlich freigeben, kann dies zu unerwarteten Kosten in Ihrem Konto oder zu unbefugtem Zugriff auf Ihre Daten führen. Damit die Sicherheit Ihrer API-Schlüssel gewährleistet ist, sollten Sie die folgenden Best Practices einhalten.

Fügen Sie Ihrem Schlüssel API-Schlüsseleinschränkungen hinzu.

Durch Hinzufügen von Einschränkungen können Sie die Verwendung eines API-Schlüssels einschränken und so die Auswirkungen eines manipulierten API-Schlüssels reduzieren.

Weitere Informationen finden Sie unter Einschränkungen für API-Schlüssel anwenden.

Suchparameter vermeiden, um Ihren API-Schlüssel an Google APIs zu senden

Wenn Sie Ihren API-Schlüssel als Abfrageparameter an APIs übergeben, ist er in der URL enthalten und kann durch URL-Scans gestohlen werden. Verwenden Sie stattdessen den x-goog-api-key-HTTP-Header oder eine Clientbibliothek.

Nicht benötigte API-Schlüssel löschen, um das Angriffsrisiko zu minimieren

Behalten Sie nur die API-Schlüssel bei, die Sie aktiv verwenden, um Ihre Angriffsfläche so klein wie möglich zu halten.

API-Schlüssel nicht in Clientcode einfügen oder in Code-Repositories sichern

API-Schlüssel, die im Quellcode fest codiert oder in einem Repository gespeichert sind, können von böswilligen Akteuren abgefangen oder gestohlen werden. Der Client sollte Anfragen an den Server weiterleiten, der die Anmeldedaten hinzufügen und die Anfrage ausstellen kann.

API-Schlüssel, die an Dienstkonten gebunden sind, nicht in der Produktionsumgebung verwenden

API-Schlüssel, die an Dienstkonten gebunden sind, sollen Entwicklern, die Google Cloud APIs ausprobieren, den Einstieg erleichtern. Verwenden Sie sie nicht in Produktionsumgebungen. Stattdessen sollten Sie auf sicherere Alternativen umstellen, z. B. auf IAM-Richtlinien (Identity and Access Management) und kurzlebige Dienstkontoanmeldedaten, und dabei die Sicherheitsgrundsätze des geringsten Privilegs beachten.

Hier sind die Gründe, warum Sie so schnell wie möglich von der Verwendung eines an ein Dienstkonto gebundenen API-Schlüssels zu sichereren Methoden migrieren sollten:

  • API-Schlüssel werden zusammen mit Anfragen gesendet. Dadurch ist es wahrscheinlicher, dass der Schlüssel offengelegt oder protokolliert wird.

  • API-Schlüssel sind Inhaber-Anmeldedaten. Wenn also jemand einen API-Schlüssel stiehlt, der an ein Dienstkonto gebunden ist, kann er ihn verwenden, um sich als dieses Dienstkonto zu authentifizieren und auf dieselben Ressourcen zuzugreifen, auf die das Dienstkonto zugreifen kann.

  • Bei API-Schlüsseln, die an Dienstkonten gebunden sind, wird die Identität des Endnutzers in den Audit-Logs verschleiert. Wenn Sie die Aktionen einzelner Nutzer erfassen möchten, muss jeder Nutzer eigene Anmeldedaten haben.

Umfangreiches Monitoring und Logging implementieren

Wenn Sie die API-Nutzung im Blick behalten, können Sie sich bei unautorisierter Nutzung benachrichtigen lassen. Weitere Informationen finden Sie unter Cloud Monitoring – Übersicht und Cloud Logging – Übersicht.

API-Schlüssel isolieren

Stellen Sie jedem Teammitglied einen eigenen API-Schlüssel für jede Anwendung zur Verfügung. So können Sie den Zugriff besser kontrollieren, einen Audit-Trail erstellen und die Auswirkungen eines manipulierten API-Schlüssels reduzieren.

API-Schlüssel regelmäßig rotieren

Sie sollten regelmäßig neue API-Schlüssel erstellen, Ihre Anwendungen zur Verwendung der neuen API-Schlüssel aktualisieren und die alten Schlüssel löschen.

Weitere Informationen finden Sie unter API-Schlüssel rotieren.

Sicherere Methode zum Autorisieren des Zugriffs in Betracht ziehen

Hilfe bei der Auswahl einer Authentifizierungsmethode finden Sie unter Authentifizierungsmethoden.