Condividi tramite


Trasmettere dati da Kafka ad Analisi di flusso di Azure

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 vengono generati. 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
  • Metriche
  • Aggregazione log
  • Elaborazione del flusso

Analisi di flusso di Azure consente di connettersi direttamente ai cluster Kafka per inserire dati. La soluzione è un codice ridotto e completamente gestita dal team di Analisi di flusso di Azure presso Microsoft, consentendogli di soddisfare gli standard di conformità aziendali. L'input Kafka è 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 Analisi di flusso di Azure. Esistono sei passaggi:

  1. Creare un job di Stream Analytics di Azure.
  2. Configura il processo di Azure Stream Analytics per usare l'identità gestita se si utilizzano i protocolli di sicurezza mTLS o SASL_SSL.
  3. Configurare Azure Key Vault se si utilizzano i protocolli di sicurezza mTLS o SASL_SSL.
  4. Carica i certificati come segreti nel Azure Key Vault.
  5. Concedere le autorizzazioni di Analisi di flusso di Azure per accedere al certificato caricato.
  6. Configurare l'input Kafka nel processo di Analisi 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 Analisi di flusso di Azure 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 da Analisi di flusso di Azure è LogAppendTime. Analisi di flusso di Azure supporta solo il formato decimale numerico.

Nome proprietà Descrizione
Input/Output Alias Nome amichevole 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 desideri connetterti al cluster Kafka. Azure Stream Analytics supporta mTLS, SASL_SSL, SASL_PLAINTEXT o Nessuno.
ID gruppo consumatori Nome del gruppo di consumer Kafka di cui deve far parte l'input. Se non viene specificato, viene 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 di Kafka per un'analisi dei flussi.

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 Secure Sockets Layer (SSL) 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
nessuno Nessuna autenticazione e crittografia.

Importante

Confluent Cloud supporta l'autenticazione usando chiavi API, OAuth o SAML Single Sign-On (SSO). Analisi di flusso di Azure non supporta l'autenticazione di 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 Confluent Kafka, vedere la documentazione:

Integrazione con Key Vault

Nota

Quando si usano i certificati dell'archivio di fiducia con i protocolli di sicurezza mTLS o SASL_SSL, è necessario configurare Azure Key Vault e l'identità gestita per il lavoro di Azure Stream Analytics. Controllare le impostazioni di rete dell'insieme di credenziali per assicurarsi che l'opzione Consenti accesso pubblico da tutte le reti sia selezionata. Supponiamo che il tuo Key Vault sia in un VNet o consenta solo l'accesso da reti specifiche. In tal caso, è necessario inserire il processo ASA in una rete virtuale contenente il Key Vault o inserire il processo ASA in una rete virtuale, quindi connettere il Key Vault alla rete virtuale contenente il processo usando gli endpoint servizio.

Analisi di flusso di Azure 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 Analisi di flusso di Azure si connette ad Azure Key Vault usando l'identità gestita per garantire una connessione sicura e evitare l'esfiltrazione dei segreti. I certificati vengono archiviati come segreti nel servizio di gestione delle chiavi e devono essere in formato PEM.

Configurare Key Vault con i permessi

È 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 di 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 nel Key Vault tramite l'Azure CLI

Importante

Per il corretto funzionamento di questo comando, è necessario disporre delle autorizzazioni di accesso "Amministratore Key Vault" al tuo Key Vault. Devi caricare il certificato come segreto. È necessario usare Azure CLI per caricare i certificati come segreti nel key vault. Il processo di Analisi di flusso di Azure avrà esito negativo quando scade il certificato usato per l'autenticazione. Per risolvere questo problema, è necessario aggiornare/sostituire il certificato nel deposito delle chiavi e riavviare il job di Analisi di flusso di Azure.

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

Collegarsi alla sottoscrizione che contiene il Key Vault:

az account set --subscription <subscription name>

Il comando seguente può caricare il certificato come segreto nel tuo Key Vault:

<your key vault> è il nome del key vault a cui si desidera caricare il certificato. <name of the secret> è qualsiasi nome che vuoi assegnare al tuo segreto e come viene visualizzato nella cassaforte delle chiavi. <file path to certificate> è il percorso in cui si trova il tuo 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

Analisi di flusso di Azure richiede di configurare un'identità gestita per accedere al Key Vault. È possibile configurare il processo ASA per utilizzare l'identità gestita passando alla scheda Identità Gestita sul lato sinistro nella sezione Configura.

Screenshot che mostra come configurare l'Identità Gestita per un processo ASA.

  1. Selezionare la scheda Identità gestita sotto Configura.
  2. Fare clic su Cambia identità e selezionare l'identità da usare con l'operazione: identità assegnata dal sistema o identità assegnata dall'utente.
  3. Per l'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 le autorizzazioni al processo di Analisi di flusso per accedere al certificato nell'insieme di credenziali delle chiavi

Perché il processo di Analisi di flusso di Azure possa leggere il segreto nell'insieme di credenziali delle chiavi, deve disporre dell'autorizzazione di accesso all'insieme di credenziali delle chiavi. Usare la procedura seguente per concedere permessi speciali al job di analisi dei flussi:

  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 Analisi di flusso per l'identità gestita assegnata dal sistema o l'identità gestita assegnata dall'utente
Membri <Nome del tuo processo di Analisi di flusso> o <nome dell'identità assegnata dall'utente>

Integrazione della rete virtuale

Se il cluster Kafka si trova all'interno di una rete virtuale o dietro un firewall, configurare il processo di Analisi di flusso di Azure per accedere all'argomento Kafka usando un collegamento privato o una configurazione di rete dedicata. Consultate la documentazione Eseguire il processo di Analisi di flusso di Azure in una rete virtuale di Azure per ulteriori informazioni.

Limiti

  • Quando si configurano i processi di Analisi di flusso di Azure per l'uso di Rete virtuale/SWIFT, il processo deve essere configurato con almeno sei (6) unità di streaming o un'unità di streaming V2 (1).
  • Quando si usa mTLS o SASL_SSL con Azure Key Vault, è necessario convertire l'archivio chiavi Java in formato PEM.
  • Puoi configurare Analisi di flusso di Azure per connettersi alla versione 0.10, che è la versione minima di Kafka supportata.
  • Azure Stream Analytics non supporta l'autenticazione a Confluent Cloud utilizzando 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 di Azure Stream Analytics, contattare askasa@microsoft.com.

Passaggi successivi