Authentifizierung für Ihre Event Streams-Instanzen verwalten
Event Streams unterstützt standardmäßig zwei SASL-Mechanismen (Simple Authentication and Security Layer) als Authentifizierungsmethoden für Event Streams-Instanzen: PLAIN und OAUTHBEARER
Der mit SASL PLAIN konfigurierte Kafka-Client verwendet einen IAM-API-Schlüssel als Klartextkennwort im Authentifizierungsprozess. Event Streams sendet den API-Schlüssel zur Verifizierung an IAM. Nach der Authentifizierung bleibt dieser Client verbunden und erfordert keine erneute Authentifizierung, bis die Verbindung getrennt wird und die Verbindung wiederhergestellt werden soll.
Der mit SASL OAUTHBEARER konfigurierte Kafka-Client verwendet IAM-Zugriffstoken im Authentifizierungsprozess. Event Streams überprüft das Token über den öffentlichen IAM-Schlüssel. Da ein IAM-Zugriffstoken eine Ablaufzeit hat (in der Regel um 1 Stunde), ist der Kafka-Client erforderlich, um ein neues Token erneut zu generieren und den Authentifizierungsprozess erneut zu durchlaufen, wenn das vorherige Token die Ablaufzeit erreicht. Dieser Ansatz bietet eine bessere Sicherheit als SASL PLAIN auf zwei Arten:
- Der API-Schlüssel bleibt immer auf der Clientseite, um das Zugriffstoken zu generieren, und wird nicht mehr über das Netz an Kafka-Broker gesendet, wodurch das Risiko einer Gefährdung des API-Schlüssels beseitigt wird.
- Der Authentifizierungsprozess findet regelmäßig statt, wenn das Zugriffstoken abläuft, wodurch das Risiko einer Tokengefährdung minimiert wird.
Für eine sichere Authentifizierung ist SASL OAUTHBEARER die einzige empfohlene Authentifizierungsmethode für Kafka-Clients. Informationen zum Konfigurieren von SASL OAUTHBEARER in Kafka-Clients finden Sie unter Kafka-API-Client konfigurieren.
Unternehmensbenutzer haben die Möglichkeit, SASL PLAIN in ihren Unternehmensinstanzen zu inaktivieren. Verwenden Sie den folgenden Befehl:
ibmcloud resource service-instance-update <instance-name> -p '{"iam_token_only":true}'
Verbindung zu Event Streams herstellen
Weitere Informationen zum Abrufen eines Sicherheitsschlüsselberechtigungsnachweises für eine externe Anwendung finden Sie unter Verbindung zu Event Streams.
Berechtigung für Ihre Event Streams-Ressourcen verwalten
Sie können Ihre Event Streams-Ressourcen differenziert schützen, um den Zugriff zu verwalten, den Sie jedem Benutzer für die einzelnen Ressourcen erteilen möchten.
Wenn Sie IAM-Richtlinien und -Berechtigungen ändern, kann es manchmal mehrere Minuten dauern, bis sie im zugrunde liegenden Dienst angezeigt werden.
Welche Ressourcen kann ich schützen?
In Event Streams haben Sie sicheren Zugriff auf die folgenden Ressourcen:
- Cluster (Cluster): Sie können steuern, welche Anwendungen und Benutzer eine Verbindung zum Service herstellen können.
- Themen (Thema) Sie können die Fähigkeit von Benutzern und Anwendungen zum Erstellen, Löschen, Lesen und Schreiben eines Themas steuern.
- Consumergruppen (Gruppe): Sie können die Fähigkeit einer Anwendung steuern, einer Consumergruppe beizutreten.
- Producer-Transaktionen (txnid): Sie können die Fähigkeit steuern, die transaktionsorientierte Producer-Funktionalität in Kafka zu nutzen (d. h. einzelne, atomare Schreibvorgänge über mehrere Partitionen).
Die Zugriffsebenen (auch als Rolle bezeichnet), die Sie einem Benutzer für jede Ressource zuweisen können, sind wie folgt.
| Zugriffsrolle | Beschreibung der Aktionen | Beispielaktionen |
|---|---|---|
| Leseberechtigter | Schreibgeschützte Aktionen in Event Streams durchführen, z. B. Ressourcen anzeigen. | Einer App das Herstellen einer Verbindung zu einem Cluster ermöglichen, indem Lesezugriff auf einen Clusterressourcentyp zugeordnet wird. |
| Schreibberechtigter | Schreibberechtigte verfügen über Berechtigungen, die über die der Rolle des Leseberechtigten hinausgehen, wie z. B. Berechtigung zum Bearbeiten von Event Streams-Ressourcen. | Einer App das Senden von Nachrichten an Themen ermöglichen, indem Schreibzugriff auf Themenressourcentypen und Themennamenstypen zugeordnet wird. |
| Manager | Manager verfügen über Berechtigungen, die über die der Rolle des Schreibberechtigten hinausgehen und mit denen sie privilegierte Aktionen durchführen können. Darüber hinaus können sie Event Streams-Ressourcen erstellen und bearbeiten. | Uneingeschränkten Zugriff auf alle Ressourcen ermöglichen durch Zuweisen von Verwaltungszugriff für die Event Streams-Instanz |
Wie weise ich Zugriff zu?
An die zu steuernden Ressourcen sind Cloud-Richtlinien für das Identitäts- und Zugriffsmanagement (Identity and Access Management: IAM) angehängt. Jede Richtlinie legt fest, welche Zugriffsrechte ein bestimmter Benutzer haben muss und auf welche Ressourcen oder Ressourcengruppen er zugreifen kann. Eine Richtlinie besteht aus den folgenden Informationen:
- Dem Typ von Service, auf den die Richtlinie angewendet wird. Beispiel: Event Streams. Sie können für eine Richtlinie einen Geltungsbereich definieren, der alle Servicetypen einschließt.
- Der Instanz des zu schützenden Service. Sie können für eine Richtlinie einen Geltungsbereich definieren, der alle Instanzen eines Servicetyps einschließt.
- Dem Typ der zu schützenden Ressource. Gültige Werte sind
cluster,topic,group,schemaodertxnid. Das Angeben eines Typs ist optional. Falls Sie keinen Typ angeben, gilt die Richtlinie für alle Ressourcen in der Serviceinstanz. Wenn Sie mehrere Ressourcentypen angeben möchten, müssen Sie eine Richtlinie pro Ressource erstellen. - Der zu schützenden Ressource. Geben Sie für Ressourcen des Typs
topic,group,schemaundtxnidan. Falls Sie die Ressource nicht angeben, gilt die Richtlinie für alle Ressourcen des Typs, der in der Serviceinstanz angegeben ist. - Die Rolle, die dem Benutzer zugewiesen ist. Beispiel: Leseberechtigter, Schreibberechtigter oder Manager.
Weitere Informationen zu IAM finden Sie unter IBM Cloud Identity and Access Management.
Ein Beispiel für das Festlegen von Richtlinien finden Sie unter IBM Cloud IAM Service und API-Schlüssel.
Verwendung von Platzhalterzeichen
Sie können die IAM-Platzhalterzeichenfunktion nutzen, um Richtlinien für Gruppen von Ressourcen in Event Streams festzulegen. Wenn Sie z. B. allen Themen Namen wie Dept1_Topic1 und Dept1_Topic2 geben, können Sie Richtlinien
für Themen mit dem Namen Dept1_* festlegen, die dann auf alle Themen mit diesem Präfix angewendet werden. Weitere Informationen finden Sie unter Zuweisung des Zugriffs mithilfe von Platzhalterrichtlinien.
Was sind die Standardsicherheitseinstellungen?
Standardmäßig wird bei der Bereitstellung von Event Streams dem Benutzer, der die Bereitstellung durchführte, die Managerrolle für alle Ressourcen der Instanz zugewiesen. Darüber hinaus hat jeder Benutzer, der eine Managerrolle für entweder "Alle" Dienste oder "Alle" Event Streams Dienstinstanzen im selben Konto hat, ebenfalls vollen Zugriff.
Sie können dann weitere Richtlinien anwenden, um den Zugriff auf andere Benutzer zu erweitern. Sie können den Geltungsbereich einer Richtlinie entweder so definieren, dass sie für Event Streams als Ganzes gilt oder für einzelne Ressourcen innerhalb von Event Streams. Weitere Informationen finden Sie unter Gemeinsame Aktionen.
Nur Benutzer mit einer Administrationsrolle für ein Konto können Benutzern Richtlinien zuweisen. Sie können Richtlinien entweder über das IBM Cloud-Dashboard oder mithilfe des Befehls ibmcloud zuweisen.
Allgemeine Aktionen
In den folgenden Tabellen werden einige allgemeine Event Streams-Aktionen und der Zugriff, den Sie zuweisen müssen, zusammengefasst.
Clusteranforderungen
Durch die Steuerung des Zugriffs auf die Clusterressource können Sie bestimmen, welche Anwendungen und Benutzer eine Verbindung zum Service herstellen können. Zusätzlich zu den Richtlinien, die für die folgenden Ressourcentypen erforderlich
sind, ist der Zugriff auf ResourceType: Cluster und eine Role: Reader, Writer, Manager erforderlich.
Produceraktionen
In der folgenden Tabelle sind die Rollen-und Ressourcenanforderungen beschrieben, die ein Benutzer oder eine Anwendung benötigt, der bzw. die Nachrichten für Event Streamserzeugt. Zusätzlich zu den Richtlinien, die für diesen Ressourcentyp
erforderlich sind, ist der Zugriff auf ResourceType: Cluster und einen Role: Reader, Writer, Manager erforderlich.
| Produceraktionen | Thema | Gruppe | txnid |
|---|---|---|---|
| Senden Sie eine Nachricht an ein Thema. | Schreibberechtigter | Schreibberechtigter [1] | |
| Erlauben Sie einer Anwendung, zu einem Thema transaktional zu produzieren. | Schreibberechtigter | Leseberechtigter | Schreibberechtigter |
| Initialisieren Sie eine Transaktion. | Schreibberechtigter | ||
| Schreiben Sie eine Transaktion fest. | Schreibberechtigter | Schreibberechtigter | |
| Bricht eine Transaktion ab. | Schreibberechtigter | ||
| Offsets an eine Transaktion senden. | Leseberechtigter | Schreibberechtigter |
Konsumentenaktionen
In der folgenden Tabelle werden die Rollen-und Ressourcenanforderungen beschrieben, die ein Benutzer oder eine Anwendung benötigt, der bzw. die Nachrichten von Event Streamskonsumiert. Zusätzlich zu den Richtlinien, die für diesen Ressourcentyp
erforderlich sind, ist der Zugriff auf ResourceType: Cluster und einen Role: Reader, Writer, Manager erforderlich.
| Konsumentenaktionen | Thema | Gruppe | txnid |
|---|---|---|---|
| Erlauben Sie einer Anwendung, ein Thema zu konsumieren (Verbrauchergruppe). | Leseberechtigter | Leseberechtigter [2] | |
| Erlauben Sie einer Anwendung, sich mit einem bestimmten Thema zu verbinden und von dort zu konsumieren (keine Verbrauchergruppe). | Leseberechtigter | ||
| Erlauben Sie einer Anwendung, sich mit einem beliebigen Thema zu verbinden und es zu konsumieren (keine Verbrauchergruppe). | Leseberechtigter | ||
| Verwenden Sie Kafka Streams. | Manager | Leseberechtigter | |
| Konsumentengruppe löschen. | Manager | ||
| Zuordnen. | Leseberechtigter | ||
| Commit asynchron. | Leseberechtigter | Leseberechtigter | |
| Commit-Synchronisation. | Leseberechtigter | Leseberechtigter | |
| Neuverteilung erzwingen. | Leseberechtigter | ||
| Abfrage. | Leseberechtigter | ||
| Abonnieren. | Leseberechtigter | ||
| Beenden Sie das Abonnement. | Leseberechtigter | Schreibberechtigter |
Verwaltungsaktionen
Zusätzlich zu den Richtlinien, die für diesen Ressourcentyp erforderlich sind, ist der Zugriff auf ResourceType: Cluster und einen Role: Reader, Writer, Manager erforderlich.
| Verwaltungsaktionen | Thema | Gruppe | txnid |
|---|---|---|---|
| Themenkonfigurationen ändern. | Manager | ||
| Offsets für Konsumentengruppen ändern | Leseberechtigter | Leseberechtigter | |
| Erstellen Sie Partitionen. | Manager | ||
| Themen erstellen. | Manager | ||
| Offsets für Consumergruppen löschen. | Leseberechtigter | Manager | |
| Konsumentengruppen löschen. | Manager | ||
| Datensätze löschen. | Manager | ||
| Themen löschen. | Manager | ||
| Producer beschreiben. | Leseberechtigter | ||
| Zaunproduzenten. | Schreibberechtigter | ||
| Abschnittskonfigurationen schrittweise ändern. | Manager | ||
| Mitglieder aus Konsumentengruppe entfernen. | Leseberechtigter |
Schema-Registry-Aktionen
Mit Schema-Registry-Aktionen können Sie die Schemaversion ändern, z. B. Artefakt-oder Artefaktversionen erstellen, aktualisieren und löschen (nur Enterprise Plan). Artefakt ist der Begriff, den Event Streams verwendet, um zugehörige
Schemas zu beschreiben, die häufig einem bestimmten Kafka-Thema zugeordnet und von diesem verwendet werden. Der Begriff Subjekt wird häufig verwendet, um dasselbe Konzept zu beschreiben. Weitere Informationen finden Sie unter
Schemaregistry von Event Streams verwenden. Zusätzlich zu den Richtlinien, die für diesen Ressourcentyp erforderlich sind, ist der Zugriff auf ResourceType: Cluster und einen Role: Reader, Writer, Manager erforderlich.
| Schema-Registry-Aktionen | Schema |
|---|---|
| Aktuelles Artefakt abrufen. | Leseberechtigter |
| Versionen auflisten. | Leseberechtigter |
| Version abrufen. | Leseberechtigter |
| Metadaten nach Inhalt abrufen. | Leseberechtigter |
| Metadaten abrufen. | Leseberechtigter |
| Versionsmetadaten abrufen. | Leseberechtigter |
| Rufen Sie die durch die Eingabe-ID angegebene Schemazeichenfolge ab. | Leseberechtigter |
| Nur das durch die Eingabe-ID angegebene Schema abrufen. | Leseberechtigter |
| Rufen Sie die durch die Eingabe-ID angegebenen Subjektversionspaare ab. | Leseberechtigter |
| Liste der Versionen abrufen, die unter dem angegebenen Betreff registriert sind. | Leseberechtigter |
| Artefaktkompatibilitätsregel abrufen. | Leseberechtigter |
| Rufen Sie eine bestimmte Version des Schemas ab, das unter diesem Subjekt registriert ist. | Leseberechtigter |
| Schema für die angegebene Version dieses Subjekts abrufen. | Leseberechtigter |
| Registriert ein neues Schema unter dem angegebenen Subjekt (falls die Version bereits vorhanden ist) | Leseberechtigter |
| Prüfen Sie, ob ein Schema bereits unter dem angegebenen Subjekt registriert wurde. | Leseberechtigter |
| Ruft eine Liste der IDs von Schemas ab, die auf das Schema mit dem angegebenen Subjekt und der angegebenen Version verweisen | Leseberechtigter |
| Testen Sie das Eingabeschema anhand einer bestimmten Version des Schemas eines Subjekts aus Kompatibilitätsgründen. | Leseberechtigter |
| Führen Sie eine Kompatibilitätsprüfung des Schemas für eine oder mehrere Versionen im Subjekt durch. | Leseberechtigter |
| Kompatibilitätsstufe für ein Subjekt abrufen. | Leseberechtigter |
| Registriert ein neues Schema unter dem angegebenen Subjekt (wenn die Version erstellt werden soll) | Schreibberechtigter |
| Artefakt erstellen. | Schreibberechtigter |
| Artefakt aktualisieren. | Schreibberechtigter |
| Artefakt inaktivieren. | Schreibberechtigter |
| Version erstellen. | Schreibberechtigter |
| Version löschen. | Manager |
| Artefaktstatus aktualisieren. | Manager |
| Aktualisiert den Versionsstatus. | Manager |
| Artefakt löschen. | Manager |
| Artefaktkompatibilitätsregel erstellen. | Manager |
| Artefaktkompatibilitätsregel aktualisieren. | Manager |
| Aktualisiert die Kompatibilitätsstufe für das angegebene Subjekt. | Manager |
| Artefaktkompatibilitätsregel löschen. | Manager |
| Löscht das angegebene Subjekt und die zugehörige Kompatibilitätsstufe, falls registriert. | Manager |
| Löscht eine bestimmte Version des Schemas, das unter diesem Subjekt registriert ist. | Manager |
| Löscht die angegebene Konfiguration der Kompatibilitätsstufe auf Subjektebene und setzt sie auf den globalen Standardwert zurück. | Manager |
| Aktualisieren Sie die globale Kompatibilitätsregel. [3] | |
| Aktualisieren Sie die globale Kompatibilitätsstufe. [4] |
Aktionen für Schemaregistry-Kompatibilität
Für die Interoperation mit vorhandenen Anwendungen unterstützt die Event Streams-Schemaregistry eine Untergruppe der Confluent Schema Registry-API v7.2. Zum Ausführen dieser Aktionen benötigen Sie den folgenden Zugriff auf Ressourcenebene.
| Aktionen für Schemaregistry-Kompatibilität | Schema |
|---|---|
| Rufen Sie die durch die Eingabe-ID angegebene Schemazeichenfolge ab. | Leseberechtigter |
| Ruft nur das durch die Eingabe-ID angegebene Schema ab. | Leseberechtigter |
| Rufen Sie die Schematypen ab, die in der Schemaregistry registriert sind. | |
| Rufen Sie die durch die Eingabe-ID angegebenen Subjektversionspaare ab. | Leseberechtigter |
| Eine Liste der registrierten Subjekte abrufen. | |
| Liste der Versionen abrufen, die unter dem angegebenen Betreff registriert sind. | Leseberechtigter |
| Löscht das angegebene Subjekt und die zugehörige Kompatibilitätsstufe, falls registriert. | Manager |
| Rufen Sie eine bestimmte Version des Schemas ab, das unter diesem Subjekt registriert ist. | Leseberechtigter |
| Schema für die angegebene Version dieses Subjekts abrufen. | Leseberechtigter |
| Registriert ein neues Schema unter dem angegebenen Subjekt. | Leser/Writer [5] |
| Prüfen Sie, ob ein Schema bereits unter dem angegebenen Subjekt registriert wurde. | Leseberechtigter |
| Löscht eine bestimmte Version des Schemas, das unter diesem Subjekt registriert ist | Manager |
| Ruft eine Liste der IDs von Schemas ab, die auf das Schema mit dem angegebenen Subjekt und der angegebenen Version verweisen | Leseberechtigter |
| Testen Sie das Eingabeschema anhand einer bestimmten Version des Schemas eines Subjekts aus Kompatibilitätsgründen. | Leseberechtigter |
| Führen Sie eine Kompatibilitätsprüfung des Schemas für eine oder mehrere Versionen im Subjekt durch. | Leseberechtigter |
| Globale Kompatibilitätsstufe aktualisieren. [6] | |
| Globale Kompatibilitätsstufe abrufen. | |
| Aktualisiert die Kompatibilitätsstufe für das angegebene Subjekt. | Manager |
| Kompatibilitätsstufe für ein Subjekt abrufen. | Leseberechtigter |
| Löscht die angegebene Konfiguration der Kompatibilitätsstufe auf Subjektebene und wird auf den globalen Standardwert zurückgesetzt. | Manager |
Zugriff auf die Schemaregistry verwalten
Das Autorisierungsmodell für die Schemaregistrierung verwendet dieselbe Art von Richtlinien, die im Abschnitt Verwalten der Autorisierung für Ihre Event Streams in diesem Dokument beschrieben sind.
IAM-Ressourcen
Mit dem neuen schema IAM-Ressourcentyp ist es möglich, Richtlinien zu erstellen, die den Zugriff mit unterschiedlichen Granularitätsgraden steuern, wie in den folgenden Beispielen.
- Bestimmtes Schema.
- Eine Menge von Schemata, die durch einen Platzhalterausdruck ausgewählt werden.
- Alle Schemas, die von einer Instanz von IBM Event Streams gespeichert wurden.
- Alle Schemas, die von allen Instanzen von IBM Event Streams in einem Konto gespeichert wurden.
Event Streams enthält bereits das Konzept eines Ressourcentyps 'Cluster'. Sie wird verwendet, um den gesamten Zugriff auf die Serviceinstanz zu kontrollieren, wobei für den Zugriff auf jeden Kafka oder HTTPS-Endpunkt mindestens die Rolle "Reader" erforderlich ist. Diese Verwendung des Ressourcentyps "Cluster" gilt auch für das Schemaregister, wobei für den Zugriff auf das Register mindestens die Rolle "Leser" erforderlich ist.