Informationen zu API-Schlüsseln

Bei einem Schlüssel einer Anwendungsprogrammierschnittstelle (API-Schlüssel) handelt es sich um einen eindeutigen Code, der an eine API übergeben wird, um die aufrufende Anwendung oder den aufrufenden Benutzer zu identifizieren. API-Schlüssel werden verwendet, um zu verfolgen und zu steuern, wie die API verwendet wird, um so z. B. Verwendung in böswilliger Absicht oder Missbrauch der API zu verhindern. Der API-Schlüssel dient oft als eindeutige Kennung und zugleich als geheimes Token für die Authentifizierung. Ihm ist eine Gruppe von Zugriffsberechtigungen zugewiesen, die für die jeweils zugeordnete Identität spezifisch sind.

Um Ihre API-Schlüssel anzuzeigen, gehen Sie in der Konsole IBM Cloud zu Verwalten > Zugriff (IAM) > API-Schlüssel.

IBM Cloud-API-Schlüssel für Benutzer

IBM Cloud®-API-Schlüssel werden der Identität eines Benutzers zugeordnet. Jeder API-Schlüssel, den ein Benutzer erstellt, hat denselben Zugriff, der dem Benutzer in allen Konten, in denen er Mitglied ist, zugewiesen wird. Da der API-Schlüssel den gesamten Benutzerzugriff erbt, kann er den Zugriff auf Ressourcen in jedem Konto ermöglichen, für das der Benutzer Berechtigungen hat. Aus diesem Grund müssen Benutzer-API-Schlüssel ähnlich wie ein Benutzername und ein Passwort behandelt werden und dürfen niemals weitergegeben werden.

Funktionale IDs verwenden

IBM Cloud-API-Schlüssel für Benutzer können bei der Erstellung einer Funktions-ID zugeordnet werden. Bei einer Funktions-ID handelt es sich um eine Benutzer-ID, die erstellt wurde, um ein Programm, eine Anwendung oder einen Service darzustellen. Die Funktions-ID kann zu einem Konto eingeladen werden und nur die Zugriffsberechtigung für einen bestimmten Zweck zugewiesen bekommen, z. B. für die Interaktion mit einer bestimmten Ressource oder Anwendung.

Wenn ein Dienst einen Benutzer-API-Schlüssel für die Interaktion mit anderen Diensten oder Anwendungen benötigt, verwenden Sie einen Benutzer-API-Schlüssel mit funktionaler ID. Durch die Verwendung des API-Schlüssels, der mit der Funktions-ID verknüpft ist, gewähren Sie nur den Zugang, der für diesen Dienst erforderlich ist. Die gemeinsame Nutzung eines API-Schlüssels mit einer echten Benutzer-ID durch einen Dienst ermöglicht dem Dienst den Zugriff auf alle Ressourcen, auf die der Benutzer über mehrere Konten zugreifen kann, wovon dringend abgeraten wird.

Nur der Benutzer, dem der API-Schlüssel zugeordnet ist, und ein Administrator für den IAM-Dienst können ihn löschen. Sie können IBM Cloud API-Schlüssel in der Befehlszeilenschnittstelle (CLI) oder als Teil der Automatisierung verwenden, um sich als Ihre Benutzeridentität anzumelden. Sie können IBM Cloud-API-Schlüssel aber auch verwenden, um auf APIs der klassischen Infrastruktur zuzugreifen.

Weitere Informationen zur Verwendung eines API-Schlüssels, der Ihrer Benutzeridentität zugeordnet ist, finden Sie in API-Schlüssel für Benutzer verwalten.

Andere Typen von API-Schlüsseln

Zusätzlich zu Ihren IBM Cloud API-Schlüsseln sind auch andere Arten von API-Schlüsseln verfügbar:

API-Schlüssel für Service-IDs
Service-IDs werden verwendet, um eine Verbindung zwischen einer Anwendung innerhalb oder außerhalb von IBM Cloud und einem IBM Cloud-Service herzustellen. API-Schlüssel für Service-IDs übernehmen alle Zugriffsberechtigungen, die der spezifischen Service-ID zugewiesen sind. Weitere Informationen finden Sie unter API-Schlüssel für Service-IDs verwalten.
API-Schlüssel der klassischen Infrastruktur
API-Schlüssel für die klassische Infrastruktur sind API-Schlüssel, die zum Aufrufen der APIs für Services der klassischen Infrastruktur verwendet werden. Sie können immer nur jeweils einen API-Schlüssel für die klassische Infrastruktur erstellen. Weitere Informationen finden Sie unter API-Schlüssel für klassische Infrastruktur verwalten.
Servicespezifische API-Schlüssel
Einige Dienste in IBM Cloud können einen API-Schlüssel bereitstellen, wenn Sie mit dem Dienst arbeiten. Dies sind automatisch generierte API-Schlüssel, die mit einer Dienst-ID verbunden sind. Wenn Sie z. B. die Produktdetails eines Watson-Dienstes auf der Seite Ressourcenliste anzeigen, können Sie auf der Seite Dienstanmeldeinformationen eine Anmeldeinformation erstellen, die einen API-Schlüssel und ein Geheimnis enthält, das für diesen Dienst spezifisch ist.

IBM Cloud-API-Schlüssel können auch für den Zugriff auf APIs der klassischen Infrastruktur verwendet werden.

Verstehen der besten Sicherheitsverfahren für API-Schlüssel

Die Implementierung der folgenden Best Practices für API-Schlüssel kann dazu beitragen, die Sicherheit Ihrer Workloads zu erhöhen:

  • Vermeiden Sie die Einbettung von Schlüsseln in Code, um das Risiko der Aufdeckung zu minimieren.
  • Drehen Sie die API-Schlüssel regelmäßig, um das Fenster der Verwundbarkeit zu begrenzen. Secrets Manager kann Ihnen dabei helfen, dies zu automatisieren. Weitere Informationen finden Sie unter Rotieren Ihrer Geheimnisse.
  • Wenden Sie bei der Vergabe von Berechtigungen das Prinzip der geringsten Berechtigung an.
  • Halten Sie die Sicherheitskontakte auf dem Laufenden, um rechtzeitig benachrichtigt zu werden.
  • Überwachen Sie Activity Tracker Event Routing auf verdächtige API-Schlüsselverwendung.
  • Legen Sie gegebenenfalls Ablaufdaten für API-Schlüssel fest.
  • Konfigurieren Sie die Einstellung "Leck-Aktion", um einen API-Schlüssel automatisch zu deaktivieren oder zu löschen, wenn er in einem Leck entdeckt wird.

Mit API-Schlüsseln arbeiten

Um die IBM Cloud API-Schlüssel zu verwalten, die mit Ihrer Benutzeridentität verknüpft sind oder auf die Sie Zugriff haben, um sie für andere Benutzer des Kontos zu verwalten, gehen Sie in der Konsole IBM Cloud zu Verwalten > Zugriff (IAM) > API-Schlüssel.

Auf der Seite IBM Cloud API-Schlüssel können Sie Ihre eigenen IBM Cloud API-Schlüssel erstellen, bearbeiten oder löschen. Sie können auch alle klassischen Infrastruktur-API-Schlüssel für Benutzer in Ihrer Benutzerhierarchie verwalten. Wenn Sie der Kontobesitzer oder ein Benutzer mit dem erforderlichen Zugriff zur Verwaltung der API-Schlüssel anderer Benutzer im Konto sind, können Sie den Filter Ansicht verwenden, um diese API-Schlüssel aufzulisten und zu verwalten.

Ablauf des API-Schlüssels

Wenn ein API-Schlüssel erstellt oder aktualisiert wird, können Sie ein Ablaufdatum festlegen. Wenn ein Ablaufdatum angegeben ist, ist der API-Schlüssel nach diesem Datum ungültig. Abgelaufene API-Schlüssel werden 90 Tage nach Ablauf der Gültigkeit automatisch gelöscht. Einige Tage vor Ablauf eines API-Schlüssels wird über den Benachrichtigungsdienst IBM Cloud eine Benachrichtigung an den Benutzer, der den API-Schlüssel besitzt (bei Schlüsseln auf Benutzerebene), oder an den Kontoinhaber (bei API-Schlüsseln mit Dienst-ID) gesendet.

Schutz vor ausgelaufenen API-Schlüsseln

API-Schlüssel sind leistungsstarke Berechtigungsnachweise, die den Zugriff auf Ihre IBM Cloud Ressourcen und Dienste ermöglichen. Wenn diese Schlüssel versehentlich in öffentlichen Repositories, Protokollen oder an anderen Orten auftauchen, können sie erhebliche Sicherheitsrisiken darstellen. Böswillige Akteure suchen aktiv in öffentlichen Repositories nach durchgesickerten Zugangsdaten und können diese schnell für unbefugten Zugriff, Krypto-Mining oder andere böswillige Aktivitäten ausnutzen - oft innerhalb weniger Minuten nach der Aufdeckung. Je nach dem Zugriff, der der mit dem Schlüssel verbundenen Benutzer- oder Dienst-ID gewährt wird, können bösartige Akteure in der Lage sein:

  • Daten abrufen oder löschen.
  • Bereitstellung von Ressourcen auf Ihrem Konto, einschließlich Ressourcen, die für das Bitcoin-Mining verwendet werden können.
  • Führen Sie weitere Aktionen in den Diensten Ihres Kontos durch.
  • Sie erstellen zusätzliche IDs oder API-Schlüssel innerhalb Ihres Kontos, um sich dauerhaften Zugang zu verschaffen - auch nachdem Sie den kompromittierten Schlüssel ausgetauscht haben.

IBM Cloud nutzt die Funktionen zum Scannen von Geheimnissen von Plattformen wie GitHub und GitLab, um offene API-Schlüssel zu identifizieren. Wenn festgestellt wird, dass ein Schlüssel entwendet wurde, können Sie oder Ihr Sicherheitsteam auf der Grundlage der für diesen Schlüssel konfigurierten Disposition schnell die entsprechenden Maßnahmen ergreifen. Abhängig von Ihrer Konfiguration kann IBM die folgenden Aktionen durchführen:

Deaktivieren Sie den durchgesickerten Schlüssel
Der API-Schlüssel wird sofort von IBM deaktiviert, um eine unbefugte Nutzung zu verhindern, während Sie die Situation untersuchen und die nächsten Schritte festlegen. Dieser Ansatz wird für die meisten Schlüssel empfohlen, außer in Situationen, in denen eine Bewertung durchgeführt wurde und das Risiko aufgrund eines exponierten Schlüssels gering ist. Wenn ein Schlüssel deaktiviert ist, schlagen die API-Aufrufe Ihrer Anwendung an Cloud-Dienste fehl, was zu einem Ausfall führen kann.
Löschen Sie den durchgesickerten Schlüssel
Der API-Schlüssel wird von IBM bei Erkennung dauerhaft gelöscht. Dies bietet den stärksten Schutz, erfordert aber die Erstellung eines neuen Schlüssels. Wenn ein Schlüssel gelöscht wird, schlagen die API-Aufrufe Ihrer Anwendung an Cloud-Dienste fehl, was zu einem Ausfall führen kann.
Keine Aktion
Es werden keine automatischen Maßnahmen ergriffen. Sie erhalten möglicherweise weiterhin Benachrichtigungen über die Exposition, müssen das Problem jedoch manuell beheben.

Bevor Sie eine Entscheidung treffen, ist es wichtig, die Sicherheitsfolgen einer Schlüsselenthüllung gegen die Folgen eines Anwendungsausfalls abzuwägen. IBM empfiehlt, die Option "Deaktivieren" für die meisten Schlüssel zu verwenden, außer in Situationen, in denen eine Bewertung durchgeführt wurde und das Risiko der Enthüllung eines Schlüssels aufgrund des begrenzten Zugriffs gering ist. Wenn Ihr Unternehmen aufgrund von Produktionsanforderungen die Einstellung "Nichts tun" für bestimmte API-Schlüssel benötigt, empfiehlt IBM Ihnen, Ihre Sicherheitslage regelmäßig zu analysieren, kompensierende Kontrollen wie häufige Schlüsselrotation zu implementieren und die Aktivierung des automatischen Schutzes zu planen, wenn Ihre Umgebung dies zulässt.

Weitere Informationen finden Sie unter Überprüfen von durchgesickerten Benutzer-API-Schlüsseln oder Überprüfen von durchgesickerten Dienst-ID-API-Schlüsseln.

Erforderlicher Zugriff zum Verwalten von API-Schlüsseln

Standardmäßig verfügen Sie immer über den erforderlichen Zugriff, um eigene API-Schlüssel zu erstellen und diese API-Schlüssel nach Bedarf zu aktualisieren und zu löschen. Sie können auch Ihren eigenen klassischen Infrastruktur-API-Schlüssel und die klassischen Infrastruktur-API-Schlüssel aller Benutzer verwalten, von denen Sie in der klassischen Infrastruktur-Benutzerhierarchie ein Vorfahre sind.

Wenn die IAM-Kontoeinstellung "Erstellung von API-Schlüsseln einschränken " aktiviert ist, wird die Erstellung von API-Schlüsseln für alle Mitglieder des Kontos, einschließlich des Kontobesitzers, gesperrt, es sei denn, ihnen wird explizit Zugriff gewährt. Weitere Informationen finden Sie in Erstellen von API-Schlüsseln durch Benutzer einschränken.

Wenn Sie der Kontoeigner sind oder über den entsprechenden Zugriff verfügen, können Sie auf die API-Schlüssel anderer Benutzer oder auf API-Schlüssel für Service-IDs anhand des Filters Anzeigen auf der Seite 'API-Schlüssel' zugreifen. Sie können die API-Schlüssel abhängig von dem Ihnen zugewiesenen Zugriff bearbeiten oder löschen. Es werden Ihnen nur die Filteroptionen für den Typ der API-Schlüssel angezeigt, für die Sie über die Zugriffsberechtigung zum Anzeigen und Verwalten verfügen.

Tabelle 1. Erforderlicher Zugang für die API-Schlüsselverwaltung auf der Seite API-Schlüssel
Filteroptionen Angezeigte API-Schlüssel Erforderlicher Zugriff Zulässige Aktionen
Meine IBM Cloud-API-Schlüssel Ihre IBM Cloud-API-Schlüssel Kein Zugriff erforderlich Anzeigen, erstellen, bearbeiten, löschen
Alle IBM Cloud-API-Schlüssel für Benutzer Alle von sämtlichen Benutzern im Konto erstellten IBM Cloud-API-Schlüssel Administratorrolle für IAM Identity Service Anzeigen, bearbeiten und löschen
Alle API-Schlüssel für Service-IDs Alle für Service-IDs im Konto erstellten API-Schlüssel Administratorrolle für IAM Identity Service Anzeigen, bearbeiten und löschen
API-Schlüssel der klassischen Infrastruktur Eigener API-Schlüssel für die klassische Infrastruktur sowie API-Schlüssel der klassischen Infrastruktur der Benutzer, für die Sie in der Benutzerhierarchie als Vorfahre definiert sind Kein Zugriff erforderlich, außer dass Sie in der Benutzerhierarchie als Vorfahre angegeben sind Details anzeigen und löschen