Condividi tramite


Trasmettere dati da Kafka ad Azure Stream Analitica (anteprima)

Kafka è una piattaforma di streaming distribuita usata per pubblicare e sottoscrivere flussi di record. Kafka è progettato per consentire alle app di elaborare i record man mano che si verificano. Si tratta di un sistema open source sviluppato da Apache Software Foundation e scritto in Java e Scala.

Di seguito sono riportati i principali casi d'uso:

  • Messaggistica
  • Rilevamento delle attività del sito Web
  • Metrica
  • Aggregazione log
  • Elaborazione del flusso

Azure Stream Analitica consente di connettersi direttamente ai cluster Kafka per inserire dati. La soluzione è un codice ridotto e completamente gestita dal team di Analitica di Azure Stream presso Microsoft, consentendogli di soddisfare gli standard di conformità aziendali. L'input Kafka di ASA è compatibile con le versioni precedenti e supporta tutte le versioni con la versione più recente del client a partire dalla versione 0.10. Gli utenti possono connettersi ai cluster Kafka all'interno di una rete virtuale e di cluster Kafka con un endpoint pubblico, a seconda delle configurazioni. La configurazione si basa sulle convenzioni di configurazione Kafka esistenti. I tipi di compressione supportati sono Nessuno, Gzip, Snappy, LZ4 e Zstd.

Passaggi

Questo articolo illustra come configurare Kafka come origine di input per l'Analitica di Flusso di Azure. Esistono sei passaggi:

  1. Creare un processo di Analitica di Flusso di Azure.
  2. Configurare il processo di Analitica di Azure Stream per usare l'identità gestita se si usa mTLS o SASL_SSL protocolli di sicurezza.
  3. Configurare Azure Key Vault se si usano mTLS o SASL_SSL protocolli di sicurezza.
  4. Caricare i certificati come segreti in Azure Key Vault.
  5. Concedere a Stream di Azure Analitica le autorizzazioni per accedere al certificato caricato.
  6. Configurare l'input Kafka nel processo di Analitica di Flusso di Azure.

Nota

A seconda della configurazione del cluster Kafka e del tipo di cluster Kafka in uso, alcuni dei passaggi precedenti potrebbero non essere applicabili all'utente. Esempi: se si usa kafka cloud confluent, non sarà necessario caricare un certificato per usare il connettore Kafka. Se il cluster Kafka si trova all'interno di una rete virtuale (VNET) o dietro un firewall, potrebbe essere necessario configurare il processo di Azure Stream Analitica per accedere all'argomento Kafka usando un collegamento privato o una configurazione di rete dedicata.

Impostazione

Nella tabella seguente sono elencati i nomi delle proprietà e la relativa descrizione per la creazione di un input Kafka:

Importante

Per configurare il cluster Kafka come input, il tipo di timestamp dell'argomento di input deve essere LogAppendTime. L'unico tipo di timestamp supportato dal Analitica di Flusso di Azure è LogAppendTime. L'Analitica di Flusso di Azure supporta solo il formato decimale numerico.

Nome proprietà Descrizione
Input/Output Alias Nome descrittivo usato nelle query per fare riferimento all'input o all'output
Indirizzi del server Bootstrap Elenco di coppie host/porta per stabilire la connessione al cluster Kafka.
Argomento kafka Flusso di dati denominato, ordinato e partizionato che consente l'elaborazione basata su eventi e pubblicazione-sottoscrizione dei messaggi.
Protocollo di sicurezza Come connettersi al cluster Kafka. Azure Stream Analitica supporta mTLS, SASL_SSL, SASL_PLAINTEXT o Nessuno.
ID gruppo di consumer Nome del gruppo di consumer Kafka di cui deve far parte l'input. Se non specificato, verrà assegnato automaticamente.
Formato di serializzazione eventi Formato di serializzazione (JSON, CSV, Avro, Parquet, Protobuf) del flusso di dati in ingresso.

Screenshot che mostra come configurare l'input kafka per un flusso analitica processo.

Autenticazione e crittografia

È possibile usare quattro tipi di protocolli di sicurezza per connettersi ai cluster Kafka:

Nome proprietà Descrizione
mTLS Crittografia e autenticazione. Supporta meccanismi di sicurezza PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512.
SASL_SSL Combina due diversi meccanismi di sicurezza, SASL (Simple Authentication and Security Layer) e SSL (Secure Sockets Layer) per garantire che sia l'autenticazione che la crittografia siano disponibili per la trasmissione dei dati. Il protocollo SASL_SSL supporta meccanismi di sicurezza PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512.
SASL_PLAINTEXT autenticazione standard con nome utente e password senza crittografia
None Nessuna autenticazione e crittografia.

Importante

Confluent Cloud supporta l'autenticazione usando chiavi API, OAuth o SAML Single Sign-On (SSO). Azure Stream Analitica non supporta l'autenticazione OAuth o SAML Single Sign-On (SSO). È possibile connettersi al cloud confluente usando una chiave API con accesso a livello di argomento tramite il protocollo di sicurezza SASL_SSL.

Per un'esercitazione dettagliata sulla connessione al cloud kakfa confluente, vedere la documentazione:

Integrazione dell'insieme di credenziali delle chiavi

Nota

Quando si usano certificati dell'archivio attendibili con mTLS o protocolli di sicurezza SASL_SSL, è necessario configurare l'insieme di credenziali delle chiavi di Azure e l'identità gestita per il processo di Analitica di Azure Stream. Controllare le impostazioni di rete dell'insieme di credenziali delle chiavi per assicurarsi che l'opzione Consenti l'accesso pubblico da tutte le reti sia selezionata. Si supponga che l'insieme di credenziali delle chiavi si trova in una rete virtuale o consenta solo l'accesso da reti specifiche. In tal caso, è necessario inserire il processo ASA in una rete virtuale contenente l'insieme di credenziali delle chiavi o inserire il processo ASA in una rete virtuale, quindi connettere l'insieme di credenziali delle chiavi alla rete virtuale contenente il processo usando gli endpoint di servizio.

Flusso di Azure Analitica si integra perfettamente con Azure Key Vault per accedere ai segreti archiviati necessari per l'autenticazione e la crittografia quando si usano mTLS o SASL_SSL protocolli di sicurezza. Il processo di Analitica di Flusso di Azure si connette all'insieme di credenziali delle chiavi di Azure usando l'identità gestita per garantire una connessione sicura ed evitare l'esfiltrazione dei segreti. I certificati vengono archiviati come segreti nell'insieme di credenziali delle chiavi e devono essere in formato PEM.

Configurare l'insieme di credenziali delle chiavi con le autorizzazioni

È possibile creare una risorsa dell'insieme di credenziali delle chiavi seguendo la documentazione Avvio rapido: Creare un insieme di credenziali delle chiavi usando il portale di Azure Per caricare i certificati è necessario avere l'accesso "Amministratore dell'insieme di credenziali delle chiavi". Seguire questa procedura per concedere l'accesso amministratore:

Nota

Per concedere altre autorizzazioni per l'insieme di credenziali delle chiavi, è necessario disporre delle autorizzazioni "Proprietario".

  1. Seleziona Controllo di accesso (IAM).

  2. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.

  3. Assegnare il ruolo usando la configurazione seguente:

Impostazione Valore
Ruolo Amministratore di Key Vault
Assegna accesso a Utente, gruppo o entità servizio
Membri <Informazioni o messaggi di posta elettronica dell'account>

Caricare il certificato nell'insieme di credenziali delle chiavi tramite l'interfaccia della riga di comando di Azure

Importante

Per il corretto funzionamento di questo comando, è necessario disporre delle autorizzazioni di "Amministratore dell'insieme di credenziali delle chiavi" per consentire il corretto funzionamento del certificato. È necessario caricare il certificato come segreto. È necessario usare l'interfaccia della riga di comando di Azure per caricare i certificati come segreti nell'insieme di credenziali delle chiavi. Il processo di Analitica di Flusso di Azure avrà esito negativo quando scade il certificato usato per l'autenticazione. Per risolvere questo problema, è necessario aggiornare/sostituire il certificato nell'insieme di credenziali delle chiavi e riavviare il processo di Analitica di Azure Stream.

Assicurarsi di aver configurato l'interfaccia della riga di comando di Azure in locale con PowerShell. È possibile visitare questa pagina per ottenere indicazioni sulla configurazione dell'interfaccia della riga di comando di Azure: Introduzione all'interfaccia della riga di comando di Azure

Accedere all'interfaccia della riga di comando di Azure:

az login

Connettersi alla sottoscrizione contenente l'insieme di credenziali delle chiavi:

az account set --subscription <subscription name>

Il comando seguente può caricare il certificato come segreto nell'insieme di credenziali delle chiavi:

<your key vault> è il nome dell'insieme di credenziali delle chiavi in cui si vuole caricare il certificato. <name of the secret> è qualsiasi nome che si vuole assegnare al segreto e come viene visualizzato nell'insieme di credenziali delle chiavi. <file path to certificate> è il percorso in cui si trova il certificato. È possibile fare clic con il pulsante destro del mouse e copiare il percorso del certificato.

az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>

Ad esempio:

az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem

Configurare l'identità gestita

Azure Stream Analitica richiede la configurazione dell'identità gestita per accedere all'insieme di credenziali delle chiavi. È possibile configurare il processo asa per l'uso dell'identità gestita passando alla scheda Identità gestita sul lato sinistro in Configura.

Screenshot che mostra come configurare l'identità gestita per un processo asa.

  1. Fare clic sulla scheda Identità gestita in Configura.
  2. Selezionare Cambia identità e selezionare l'identità da usare con il processo: identità assegnata dal sistema o identità assegnata dall'utente.
  3. Per identità assegnata dall'utente, selezionare la sottoscrizione in cui si trova l'identità assegnata dall'utente e selezionare il nome dell'identità.
  4. Rivedere e salvare.

Concedere a Stream Analitica autorizzazioni di processo per accedere al certificato nell'insieme di credenziali delle chiavi

Affinché il processo di Analitica di Azure Stream legga il segreto nell'insieme di credenziali delle chiavi, il processo deve disporre dell'autorizzazione per accedere all'insieme di credenziali delle chiavi. Usare la procedura seguente per concedere autorizzazioni speciali al processo di analitica flusso:

  1. Seleziona Controllo di accesso (IAM).

  2. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.

  3. Assegnare il ruolo usando la configurazione seguente:

Impostazione Valore
Ruolo Utente dei segreti dell'insieme di credenziali delle chiavi
Identità gestita Processo di Analitica di flusso per l'identità gestita assegnata dal sistema o l'identità gestita assegnata dall'utente
Membri <Nome del processo o <del nome dell'identità assegnata dall'utente di Stream Analitica>>

Integrazione rete virtuale

Se il cluster Kafka si trova all'interno di una rete virtuale (VNET) o dietro un firewall, potrebbe essere necessario configurare il processo di Azure Stream Analitica per accedere all'argomento Kafka usando un collegamento privato o una configurazione di rete dedicata. Per altre informazioni, vedere eseguire il processo di Analitica di Azure Stream in una documentazione di Azure Rete virtuale.

Limiti

  • Quando si configurano i processi di Analitica di Flusso di Azure per l'uso di VNET/SWIFT, il processo deve essere configurato con almeno sei (6) unità di streaming o un'unità di streaming V2 (1) V2.
  • Quando si usa mTLS o SASL_SSL con Azure Key Vault, è necessario convertire l'archivio chiavi Java in formato PEM.
  • La versione minima di Kafka a cui è possibile configurare l'Analitica di Flusso di Azure per la connessione è la versione 0.10.
  • Azure Stream Analitica non supporta l'autenticazione per il cloud confluent usando OAuth o SAML Single Sign-On (SSO). È necessario usare la chiave API tramite il protocollo SASL_SSL

Nota

Per assistenza diretta sull'uso dell'input kafka Analitica flusso di Azure, contattare askasa@microsoft.com.

Passaggi successivi