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 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

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 processo di Analisi di flusso di Azure.
  2. Configurare il processo di Analisi di flusso di Azure per usare l'identità gestita se si usa mTLS o SASL_SSL protocolli di sicurezza.
  3. Configurare Azure Key Vault se si usa mTLS o SASL_SSL protocolli di sicurezza.
  4. Caricare i certificati come segreti in 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 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. Analisi di flusso di Azure 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 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 kafka per un processo di analisi di flusso.

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
None 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 dell'insieme di credenziali delle chiavi

Nota

Quando si usano i certificati dell'archivio attendibilità con mTLS o SASL_SSL protocolli di sicurezza, è necessario configurare l'insieme di credenziali delle chiavi di Azure e l'identità gestita per il processo di Analisi di flusso di Azure. 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.

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 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 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 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 nell'insieme di credenziali delle chiavi e riavviare il processo 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

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

Analisi di flusso di Azure richiede di configurare l'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. Selezionare la 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 al processo di Analisi di flusso le autorizzazioni per accedere al certificato nell'insieme di credenziali delle chiavi

Per consentire al processo di Analisi di flusso di Azure di leggere 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 analisi di 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 Analisi 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>

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. Per altre informazioni, vedere eseguire il processo di Analisi di flusso di Azure in una documentazione di Azure Rete virtuale.

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) 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 è possibile configurare Analisi di flusso di Azure per la connessione alla versione 0.10.
  • Analisi di flusso di Azure 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 di Analisi di flusso di Azure, contattare askasa@microsoft.com.

Passaggi successivi