Gestione dell'autenticazione alle tue istanze Event Streams

Event Streams supporta due meccanismi SASL (Simple Authentication and Security Layer) come metodi di autenticazione per Event Streams per impostazione predefinita: PLAIN e OAUTHBEARER.

Il client Kafka configurato con SASL PLAIN usa una chiave API IAM come password di testo semplice nel processo di autenticazione, Event Streams invia la chiave API a IAM per la verifica. Una volta autenticato, questo client manterrà la connessione e non richiederà una nuova autenticazione fino a quando non è disconnesso e non desidera riconnettersi.

Il client Kafka configurato con SASL OAUTHBEARER utilizza il token di accesso IAM nel processo di autenticazione, Event Streams verifica il token tramite la chiave pubblica IAM. Poiché un token di accesso IAM ha una scadenza (di solito a 1 ora), il client Kafka è richiesto per rigenerare un nuovo token e ripetere il processo di autenticazione quando il token precedente si sta avvicinando alla scadenza. Questo approccio fornisce una maggiore sicurezza rispetto a SASL PLAIN in due modi:

  1. La chiave API rimane sempre sul lato client per generare il token di accesso e non viene più inviata ai broker Kafka sulla rete, il che elimina il rischio di esposizione della chiave API.
  2. Il processo di autenticazione si verifica su base regolare quando il token di accesso è in scadenza e ciò riduce al minimo il rischio di esposizione del token.

Per un'autenticazione più sicura, SASL OAUTHBEARER è l'unico metodo di autenticazione consigliato per i clienti Kafka. Vedi Configurazione del tuo client API Kafka come configurare SASL OAUTHBEARER nei client Kafka.

Gli utenti aziendali hanno la possibilità di disabilitare SASL PLAIN nelle istanze aziendali. Utilizza il seguente comando:

ibmcloud resource service-instance-update <instance-name> -p '{"iam_token_only":true}'

Connessione a Event Streams

Per ulteriori informazioni su come ottenere una credenziale chiave di sicurezza per un'applicazione esterna, consultare Connessione a Event Streams.

Gestione dell'autorizzazione per le tue risorse Event Streams

Puoi proteggere le tue risorse Event Streams in modo dettagliato per gestire l'accesso che vuoi concedere a ogni utente per ogni risorsa.

Quando si modificano i criteri e le autorizzazioni IAM, a volte ci vogliono alcuni minuti prima che si riflettano nel servizio sottostante.

Cosa posso proteggere?

All'interno di Event Streams, si ha accesso sicuro alle seguenti risorse:

  • Cluster (cluster): È possibile controllare quali applicazioni e utenti possono connettersi al servizio.
  • Argomenti (topic): È possibile controllare la capacità di utenti e applicazioni di creare, eliminare, leggere e scrivere su un argomento.
  • Gruppi di consumatori (gruppo): È possibile controllare la capacità di un'applicazione di unirsi a un gruppo di consumatori.
  • Transazioni del produttore (txnid): È possibile controllare la capacità di utilizzare la funzionalità di produttore transazionale in Kafka (cioè, scritture singole e atomiche su più partizioni).

I livelli di accesso (detti anche ruoli) che si possono assegnare a un utente per ogni risorsa sono i seguenti.

Esempio di ruoli e azioni dell'utente Event Streams
Ruolo di accesso Descrizione delle azioni Azioni di esempio
Lettore Eseguire azioni di sola lettura all'interno di Event Streams, come la visualizzazione delle risorse. Consentire a un'applicazione di connettersi a un cluster assegnando l'accesso in lettura al tipo di risorsa del cluster.
Scrittore Gli scrittori hanno permessi che vanno oltre il ruolo di lettore, compresa la modifica delle risorse Event Streams. Consentire a un'applicazione di produrre sugli argomenti assegnando l'accesso in scrittura ai tipi di risorsa e di nome dell'argomento.
Gestore I gestori hanno autorizzazioni che vanno oltre quelle del ruolo scrittore per completare delle azioni privilegiate. Puoi inoltre creare e modificare risorse Event Streams. Consentire l'accesso completo a tutte le risorse assegnando l'accesso manage all'istanza Event Streams.

Come assegno l'accesso?

Le politiche Cloud IAM (Identity and Access Management) sono collegate alle risorse da controllare. Ogni criterio definisce il livello di accesso che un determinato utente deve avere e a quale risorsa o insieme di risorse. Una politica consiste nelle seguenti informazioni:

  • Il tipo di servizio a cui si applica la politica. Ad esempio, Event Streams. Puoi definire l'ambito di una politica per includere tutti i tipi di servizio.
  • L'istanza del servizio da proteggere. Puoi definire l'ambito di una politica per includere tutte le istanze di un tipo di servizio.
  • Il tipo di risorsa da proteggere. I valori validi sono cluster, topic, group, schema o txnid. La specifica di un tipo è facoltativa. Se non specifichi un tipo, la politica si applica allora a tutte le risorse nell'istanza del servizio. Se vuoi specificare più di un tipo di risorsa, devi creare una politica per risorsa.
  • La risorsa da proteggere. Specificare per le risorse di tipo topic, group, schema e txnid. Se non specifichi la risorsa, la politica si applica allora a tutte le risorse del tipo specificato nell'istanza del servizio.
  • Il ruolo assegnato all'utente. Ad esempio, Lettore, Scrittore o Gestore.

Per ulteriori informazioni su IAM, vedi IBM Cloud Identity and Access Management.

Per un esempio di come impostare i criteri, vedere IBM Cloud IAM Service IDs and API Keys.

Utilizzo di caratteri jolly

Puoi avvalerti della funzionalità di utilizzo dei caratteri jolly IAM per impostare le politiche per i gruppi di risorse su Event Streams. Ad esempio, se si assegnano a tutti gli argomenti nomi come Dept1_Topic1 e Dept1_Topic2, è possibile impostare criteri per gli argomenti che si chiamano Dept1_* e questi criteri vengono applicati a tutti gli argomenti con quel prefisso. Per ulteriori informazioni, vedere Assegnazione dell'accesso tramite criteri jolly.

Quali sono le impostazioni di sicurezza predefinite?

Per impostazione predefinita, quando viene eseguito il provisioning di Event Streams, all'utente che ne ha eseguito il provisioning viene concesso il ruolo di gestore per tutte le risorse dell'istanza. Inoltre, qualsiasi utente che abbia un ruolo di manager per i servizi "Tutti" o "Tutte" le istanze del servizio Event Streams nello stesso account ha accesso completo.

È quindi possibile applicare altri criteri per estendere l'accesso ad altri utenti. Puoi definire l'ambito di una politica da applicare a Event Streams nel suo inseme oppure a singole risorse in Event Streams. Per ulteriori informazioni, vedere Azioni comuni.

Solo gli utenti con un ruolo di amministrazione per un account possono assegnare criteri agli utenti. Assegnare le politiche utilizzando il dashboard IBM Cloud oppure utilizzando i comandi ** ibmcloud **.

Azioni comuni

Le seguenti tabelle riepilogano alcune azioni comuni Event Streams e l'accesso che devi assegnare.

Requisiti cluster

Controllando l'accesso alla risorsa cluster, è possibile stabilire quali applicazioni e utenti possono connettersi al servizio. Oltre alle politiche richieste per i seguenti tipi di risorsa, è richiesto l'accesso a ResourceType: Cluster e a Role: Reader, Writer, Manager.

Azioni del produttore

La seguente tabella descrive i requisiti di ruolo e di risorsa necessari a un utente o a una applicazione che produce messaggi a Event Streams. Oltre alle politiche richieste per questo tipo di risorsa, è richiesto l'accesso a ResourceType: Cluster e a Role: Reader, Writer, Manager.

Azioni del produttore
Azioni del produttore Argomento Gruppo txnid
Inviare un messaggio a un argomento. Scrittore Scrittore [1]
Consentire a un'applicazione di produrre su un argomento in modo transazionale. Scrittore Lettore Scrittore
Inizializza una transazione. Scrittore
Eseguire il commit di una transazione. Scrittore Scrittore
Interrompere una transazione. Scrittore
Inviare offset a una transazione. Lettore Scrittore

Azioni del consumer

La seguente tabella descrive i requisiti del ruolo e della risorsa necessari a un utente o a un'applicazione che utilizza i messaggi da Event Streams. Oltre alle politiche richieste per questo tipo di risorsa, è richiesto l'accesso a ResourceType: Cluster e a Role: Reader, Writer, Manager.

Azioni dei consumatori
Azioni del consumer Argomento Gruppo txnid
Consentire a un'applicazione di consumare un argomento (gruppo di consumatori). Lettore Lettore [2]
Consentire a un'app di connettersi e consumare da un argomento specifico (nessun gruppo di consumatori). Lettore
Consentire a un'app di connettersi e consumare da qualsiasi argomento (nessun gruppo di consumatori). Lettore
Utilizza stream Kafka. Gestore Lettore
Eliminare il gruppo di consumatori. Gestore
Assegna. Lettore
Commit asincrono. Lettore Lettore
Sincronizzazione commit. Lettore Lettore
Applica ribilanciamento. Lettore
Scansione ciclica. Lettore
Sottoscrivi. Lettore
Annulla sottoscrizione. Lettore Scrittore

Azioni di amministrazione

Oltre alle politiche richieste per questo tipo di risorsa, è richiesto l'accesso a ResourceType: Cluster e a Role: Reader, Writer, Manager.

Azioni dell'amministrazione
Azioni di amministrazione Argomento Gruppo txnid
Modificare le configurazioni degli argomenti. Gestore
Modifica gli offset del gruppo di consumatori. Lettore Lettore
Creare partizioni. Gestore
Creare argomenti. Gestore
Eliminare gli offset del gruppo di consumatori. Lettore Gestore
Eliminare i gruppi di consumatori. Gestore
Eliminare i record. Gestore
Elimina argomenti. Gestore
Descrivere i produttori. Lettore
Produttori di recinzioni. Scrittore
Modificare in modo incrementale le configurazioni degli argomenti. Gestore
Rimuovere i membri dal gruppo consumer. Lettore

Azioni registro schema

Con le azioni Registro di schema, è possibile modificare la versione dello schema, ad esempio creare, aggiornare ed eliminare le versioni della risorsa utente o della risorsa utente (solo piano Enterprise). Risorsa utente è il termine che Event Streams utilizza per descrivere gli schemi correlati, spesso associati e utilizzati da un particolare argomento Kafka. Il termine soggetto viene utilizzato spesso per descrivere lo stesso concetto. Per ulteriori informazioni, consultare Utilizzo di Event Streams Schema Registry. Oltre alle politiche richieste per questo tipo di risorsa, è richiesto l'accesso a ResourceType: Cluster e a Role: Reader, Writer, Manager.

Azioni del Registro Schema
Azioni registro schema Schema
Ottieni l'ultima risorsa utente. Lettore
Elenca versioni. Lettore
Ottieni versione. Lettore
Ottenere i metadati in base al contenuto. Lettore
Richiama metadati. Lettore
Richiamare i metadati della versione. Lettore
Richiamare la stringa di schema identificata dall'ID input. Lettore
Richiamare solo lo schema identificato dall'ID di input. Lettore
Ottieni le coppie soggetto - versione identificate dall'ID input. Lettore
Ottenere un elenco di versioni registrate sotto l'oggetto specificato. Lettore
Ottenere la regola di compatibilità della risorsa utente. Lettore
Ottenere una versione specifica dello schema registrato in questo oggetto. Lettore
Ottenere lo schema per la versione specificata di questo oggetto. Lettore
Registrare un nuovo schema sotto l'oggetto specificato (se la versione esiste già). Lettore
Controllare se uno schema è già stato registrato nell'oggetto specificato. Lettore
Ottenere un elenco di ID degli schemi che fanno riferimento allo schema con l'oggetto e versione forniti. Lettore
Verificare la compatibilità dello schema di input rispetto a una particolare versione dello schema di un soggetto. Lettore
Eseguire un controllo di compatibilità sullo schema rispetto a una o più versioni nell'oggetto. Lettore
Ottenere il livello di compatibilità per un oggetto. Lettore
Registrare un nuovo schema nel soggetto specificato (se la versione deve essere creata). Scrittore
Crea risorsa utente. Scrittore
Aggiorna risorsa utente. Scrittore
Disabilitare la risorsa utente. Scrittore
Crea versione. Scrittore
Elimina versione. Gestore
Aggiornare lo stato della risorsa utente. Gestore
Aggiorna stato versione. Gestore
Elimina risorsa utente. Gestore
Creare la regola di compatibilità della risorsa utente. Gestore
Aggiornare la regola di compatibilità della risorsa utente. Gestore
Aggiornare il livello di compatibilità per l'oggetto specificato. Gestore
Eliminare la regola di compatibilità della risorsa utente. Gestore
Elimina il soggetto specificato e il relativo livello di compatibilità associato, se registrato. Gestore
Eliminare una versione specifica dello schema registrato in questo oggetto. Gestore
Elimina la configurazione del livello di compatibilità del livello oggetto specificato e ritorna al valore predefinito globale. Gestore
Aggiornare la regola di compatibilità globale. [3]
Aggiornare il livello di compatibilità globale. [4]

Azioni di compatibilità registro dello schema

Per l'interoperabilità con le applicazioni esistenti, il registro dello schema Event Streams supporta una sottoserie dell'API Confluent Schema Registry v7.2. Per eseguire queste operazioni, hai bisogno del seguente accesso a livello di risorsa.

Tabella delle azioni di compatibilità
Azioni di compatibilità registro dello schema Schema
Richiamare la stringa di schema identificata dall'ID input. Lettore
Richiama solo lo schema identificato dall'ID di input. Lettore
Ottenere i tipi di schema registrati con il registro schema.
Ottieni le coppie soggetto - versione identificate dall'ID input. Lettore
Ottenere un elenco di soggetti registrati.
Ottenere un elenco di versioni registrate sotto l'oggetto specificato. Lettore
Elimina il soggetto specificato e il relativo livello di compatibilità associato, se registrato. Gestore
Ottenere una versione specifica dello schema registrato in questo oggetto. Lettore
Ottenere lo schema per la versione specificata di questo oggetto. Lettore
Registrare un nuovo schema nell'oggetto specificato. Lettore / Scrittore [5]
Controllare se uno schema è già stato registrato nell'oggetto specificato. Lettore
Elimina una versione specifica dello schema registrato in questo oggetto. Gestore
Ottenere un elenco di ID degli schemi che fanno riferimento allo schema con l'oggetto e versione forniti. Lettore
Verificare la compatibilità dello schema di input rispetto a una particolare versione dello schema di un soggetto. Lettore
Eseguire un controllo di compatibilità sullo schema rispetto a una o più versioni nell'oggetto. Lettore
Aggiornare il livello di compatibilità globale. [6]
Ottenere il livello di compatibilità globale.
Aggiornare il livello di compatibilità per l'oggetto specificato. Gestore
Ottenere il livello di compatibilità per un oggetto. Lettore
Elimina la configurazione del livello di compatibilità del livello oggetto specificato e ritorna al valore predefinito globale. Gestore

Gestione dell'accesso al registro dello schema

Il modello di autorizzazione per Schema Registry utilizza lo stesso stile di politiche descritte nella sezione Gestione dell'autorizzazione per le tue risorse Event Streams di questo documento.

Risorse IAM

Con il nuovo tipo di risorsa schema IAM, è possibile creare politiche che controllano l'accesso utilizzando diversi gradi di granularità, come nei seguenti esempi.

  • Uno schema specifico.
  • Una serie di schemi selezionata da un'espressione jolly.
  • Tutti gli schemi archiviati da un'istanza di IBM Event Streams.
  • Tutti gli schemi archiviati da tutte le istanze di IBM Event Streams in un account.

Event Streams ha già il concetto di tipo di risorsa cluster. Viene utilizzato per controllare tutti gli accessi all'istanza del servizio, con il ruolo minimo di Reader richiesto per accedere a qualsiasi endpoint Kafka o HTTPS. Questo utilizzo del tipo di risorsa cluster viene applicato anche al Registro schema, per cui è richiesto un ruolo minimo di Lettore per accedere al registro.

Scenari di autorizzazione di esempio

La seguente tabella descrive alcuni esempi di scenari per l'interazione con il registro dello schema Event Streams, insieme ai ruoli richiesti dagli attori coinvolti. Il processo di gestione degli schemi viene gestito separatamente per distribuire le applicazioni. Quindi le politiche sono richieste sia per l'ID servizio che gestisce schemi nel registro che per l'applicazione che si connette al registro.

Esempi di scenari di autorizzazione
Scenario Ruolo persona o processo Risorsa persona o processo Ruolo Applicazione Risorsa applicazione
Le nuove versioni dello schema vengono inserite nel registro da una persona o un processo separato dalle applicazioni che utilizzano gli schemi. Reader
Writer
cluster
schema
Reader
Reader
cluster
schema
L'aggiunta di un schema al registro deve specificare una regola non predefinita che controlli il modo in cui le versioni dello schema possono evolversi. Reader
Manager
cluster
schema
Non applicabile Non applicabile
Gli schemi sono gestiti insieme al codice applicazione che utilizza lo schema. Le nuove versioni dello schema vengono create nel momento in cui un'applicazione tenta di utilizzare la nuova versione dello schema. Non applicabile Non applicabile Reader
Writer
cluster
schema
La regola predefinita globale che controlla l'evoluzione dello schema viene modificata. Manager cluster Non applicabile Non applicabile

  1. Il programma di scrittura su txnid è richiesto solo per i prodotti transazionali. ↩︎

  2. Il lettore sul gruppo è richiesto solo se l'assegnazione fa sì che il consumatore lasci il gruppo corrente. ↩︎

  3. Non è necessario accedere alla risorsa schema, ma è richiesto l'accesso Gestione sulla risorsa cluster. ↩︎

  4. Non è necessario accedere alla risorsa schema, ma è richiesto l'accesso Gestione sulla risorsa cluster. ↩︎

  5. Lettore se la versione esiste già, Scrittore se la versione deve essere creata dalla chiamata API. ↩︎

  6. Non è necessario accedere alla risorsa schema, ma è richiesto l'accesso Gestione sulla risorsa cluster. ↩︎