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:

  1. 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.
  2. 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.

Beispiel Event Streams Benutzerrollen und Aktionen
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, schemaoder txnid. 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, schemaund txnidan. 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.

Aktionen des Produzenten
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.

Maßnahmen für Verbraucher
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.

Maßnahmen der Verwaltung
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.

Aktionen des Schemaregisters
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.

Tabelle der Kompatibilitätsaktionen
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.

Beispielszenarios für Autorisierungen

Die folgende Tabelle beschreibt einige Beispiele von Szenarien für die Interaktion mit dem Event Streams Schemaregister, zusammen mit den Rollen, die von den beteiligten Akteuren benötigt werden. Der Prozess der Verwaltung von Schemas wird von der Anwendungsbereitstellung separat durchgeführt. Richtlinien sind also sowohl für die Dienst-ID, die Schemata in der Registrierung verwaltet, als auch für die Anwendung, die eine Verbindung zur Registrierung herstellt, erforderlich.

Beispiele für Autorisierungsszenarien
Szenario Person oder Prozessrolle Person oder Prozessressource Anwendungsrolle Anwendungsressource
Neue Schemaversionen werden in der Registry durch eine Person oder einen Prozess gespeichert, die bzw. der von den Anwendungen getrennt ist, die die Schemas verwenden. Reader
Writer
cluster
schema
Reader
Reader
cluster
schema
Beim Hinzufügen eines Schemas zur Registrierung muss eine nicht standardmäßige Regel angegeben werden, die steuert, wie sich die Versionen des Schemas entwickeln dürfen. Reader
Manager
cluster
schema
Nicht zutreffend Nicht zutreffend
Schemas werden parallel zu dem Anwendungscode verwaltet, der das Schema verwendet. Neue Schemaversionen werden zu dem Zeitpunkt erstellt, zu dem eine Anwendung versucht, die neue Schemaversion zu verwenden. Nicht zutreffend Nicht zutreffend Reader
Writer
cluster
schema
Die globale Standardregel, die die Weiterentwicklung des Schemas steuert, wird geändert. Manager cluster Nicht zutreffend Nicht zutreffend

  1. Writer für txnid ist nur für transaktionsorientierte Produkte erforderlich. ↩︎

  2. Reader für Gruppe ist nur erforderlich, wenn die Zuordnung dazu führt, dass der Konsument seine aktuelle Gruppe verlässt. ↩︎

  3. Sie benötigen keinen Zugriff auf die Schemaressource, sondern Managerzugriff auf die Clusterressource. ↩︎

  4. Sie benötigen keinen Zugriff auf die Schemaressource, sondern Managerzugriff auf die Clusterressource. ↩︎

  5. Reader, wenn die Version bereits vorhanden ist, Writer, wenn die Version vom API-Aufruf erstellt werden soll. ↩︎

  6. Sie benötigen keinen Zugriff auf die Schemaressource, sondern Managerzugriff auf die Clusterressource. ↩︎