Gegevens van Kafka streamen naar Azure Stream Analytics

Apache Kafka is een open-source gedistribueerd streamingplatform dat apps gebruiken om streams van records te publiceren en te abonneren zodra ze verschijnen. Het wordt vaak gebruikt voor berichten, het bijhouden van websiteactiviteiten, metrics, logaggregatie en stroomverwerking.

Als je data via Kafka-clusters stroomt, kun je Azure Stream Analytics direct aan die clusters koppelen om die data te verwerken zonder een aangepaste consument te bouwen. De Kafka-invoer is low-code, wordt volledig beheerd door Microsoft om te voldoen aan compliancenormen voor bedrijven, en is backward compatibel met clientversies vanaf versie 0.10. Je kunt verbinding maken met Kafka-clusters binnen een virtueel netwerk of met een openbaar eindpunt, door gebruik te maken van bestaande Kafka-configuratieconventies. Ondersteunde compressietypen zijn None, Gzip, Snappy, LZ4 en Zstd.

Dit artikel laat zien hoe je een Kafka-cluster kunt configureren als invoerbron voor een Azure Stream Analytics-taak.

Kafka als invoerbron instellen

In dit artikel wordt beschreven hoe u Kafka instelt als invoerbron voor Azure Stream Analytics. Hierin worden de volgende stappen behandeld:

  1. Een Azure Stream Analytics-taak maken.
  2. Configureer uw Azure Stream Analytics-taak om beheerde identiteit te gebruiken als u mTLS of SASL_SSL beveiligingsprotocollen gebruikt.
  3. Configureer Azure Key Vault als je mTLS of SASL_SSL beveiligingsprotocollen gebruikt.
  4. Upload certificaten als geheimen naar Azure Key Vault.
  5. Ververleent Azure Stream Analytics-machtigingen voor toegang tot het geüploade certificaat.
  6. Kafka-invoer configureren in uw Azure Stream Analytics-taak.

Notitie

Afhankelijk van hoe je Kafka-cluster is geconfigureerd en het type Kafka-cluster dat je gebruikt, gelden sommige van deze stappen misschien niet voor jou. Als je bijvoorbeeld Confluent Cloud Kafka gebruikt, hoef je geen certificaat te uploaden om de Kafka-connector te gebruiken. Als je Kafka-cluster zich binnen een virtueel netwerk (VNet) bevindt of achter een firewall zit, moet je mogelijk je Azure Stream Analytics-taak configureren om toegang te krijgen tot je Kafka-onderwerp via een privéverbinding of een speciale netwerkconfiguratie.

Configureer de Kafka-invoer

Configureer de Kafka-invoer zodat je Azure Stream Analytics-job verbinding kan maken met je Kafka-cluster en uit een topic kan lezen.

Belangrijk

Als u uw Kafka-cluster wilt configureren als invoer, moet het tijdstempeltype van het invoeronderwerp LogAppendTime zijn. Het enige tijdstempeltype dat Door Azure Stream Analytics wordt ondersteund, is LogAppendTime. Azure Stream Analytics ondersteunt alleen numerieke decimale notatie.

  1. Voeg in je Azure Stream Analytics-baan een Kafka-invoer toe.

  2. Stel elke invoereigenschap in door gebruik te maken van de waarden die in de volgende tabel worden beschreven:

    Eigenschapsnaam Beschrijving
    Invoer-/uitvoeralias Een vriendelijke naam die in zoekopdrachten wordt gebruikt om je input of output te verwijzen.
    Bootstrap-serveradressen Een lijst van host/poortparen om verbinding te maken met de Kafka-cluster.
    Kafka-onderwerp Een benoemde, geordende en gepartitioneerde datastroom die de publicish-subscribe en event-driven verwerking van berichten ondersteunt.
    Beveiligingsprotocol Hoe u verbinding wilt maken met uw Kafka-cluster. Azure Stream Analytics ondersteunt mTLS, SASL_SSL, SASL_PLAINTEXT of Geen.
    Consumentengroep-id De naam van de Kafka-consumentengroep waarvan de invoer deel moet uitmaken. Azure Stream Analytics wijst het automatisch toe als je er geen opgeeft.
    Serialisatie-indeling voor gebeurtenissen Het serialisatieformaat (JSON, CSV, Avro, Parquet en Protobuf) van de binnenkomende datastroom.
  3. Sla de invoerconfiguratie op.

Authenticatie en encryptie instellen

Stel authenticatie en encryptie in om de verbinding tussen je Azure Stream Analytics-taak en je Kafka-cluster te beveiligen. Voor een stapsgewijze tutorial over het verbinden met Confluent Cloud Kafka, zie Stream data from Confluent Cloud Kafka with Azure Stream Analytics voor input en Streamdata from Azure Stream Analytics into Confluent Cloud voor output.

Belangrijk

Confluent Cloud ondersteunt authenticatie door gebruik te maken van API-sleutels, OAuth of SAML single sign-on (SSO). Azure Stream Analytics biedt geen ondersteuning voor OAuth- of SAML-verificatie voor eenmalige aanmelding (SSO). Je kunt verbinding maken met Confluent Cloud via een API-sleutel met onderwerp-niveau toegang via het SASL_SSL beveiligingsprotocol.

  1. Kies een van de vier ondersteunde beveiligingsprotocollen die overeenkomt met je Kafka-cluster, zoals beschreven in de volgende tabel:

    Eigenschapsnaam Beschrijving
    mTLS Versleuteling en verificatie. Ondersteunt DE beveiligingsmechanismen PLAIN, SCRAM-SHA-256 en SCRAM-SHA-512.
    SASL_SSL Combineert twee verschillende beveiligingsmechanismen, SASL (Simple Authentication and Security Layer) en Secure Sockets Layer (SSL), om ervoor te zorgen dat zowel authenticatie als encryptie aanwezig zijn voor gegevensoverdracht. Het SASL_SSL-protocol ondersteunt de beveiligingsmechanismen PLAIN, SCRAM-SHA-256 en SCRAM-SHA-512.
    SASL_PLAINTEXT Standaardauthenticatie met een gebruikersnaam maar zonder encryptie.
    Geen Geen verificatie en versleuteling.
  2. Configureer de inloggegevens voor het geselecteerde protocol in je Azure Stream Analytics-taak.

Integreren met Azure Key Vault

Azure Stream Analytics integreert met Azure Key Vault om opgeslagen geheimen te benaderen die nodig zijn voor authenticatie en encryptie wanneer je mTLS of SASL_SSL beveiligingsprotocollen gebruikt. Je Azure Stream Analytics-taak verbindt zich met je Azure Key Vault door beheerde identiteit te gebruiken om een veilige verbinding te garanderen en het exfiltreren van geheimen te voorkomen. Certificaten worden opgeslagen als geheimen in de sleutelkluis en moeten de PEM-indeling hebben. Om uw Azure Stream Analytics-taak te integreren met Azure Key Vault, voltooit u de volgende taken, die in de volgende secties in detail worden beschreven.

Notitie

Wanneer je truststore-certificaten gebruikt met mTLS of SASL_SSL beveiligingsprotocollen, moet je Azure Key Vault en beheerde identiteit geconfigureerd hebben voor je Azure Stream Analytics taak. Controleer de netwerkinstellingen van uw sleutelkluis om ervoor te zorgen dat openbare toegang vanuit alle netwerken is ingeschakeld. Als je key vault in een VNet zit of alleen toegang toestaat vanuit specifieke netwerken, moet je je Azure Stream Analytics-job injecteren in een VNet met de key vault, of je Azure Stream Analytics-job in een VNet injecteren en vervolgens je key vault verbinden met de VNet met de taak via service endpoints.

  1. Configureer de sleutelkluis met de vereiste rechten.
  2. Upload je certificaat als geheim naar de sleutelkluis.
  3. Configureer beheerde identiteit voor je Azure Stream Analytics-job.
  4. Geef je Stream Analytics-baan toestemming om toegang te krijgen tot het certificaat in de key vault.

Configureer de Key Vault met machtigingen

Om een sleutelkluisbron te maken, zie Quickstart: Maak een sleutelkluis aan met het Azure-portaal. Je hebt toegang van de Key Vault Administrator nodig tot je key vault om certificaten te uploaden. Om beheerdersrechten te verlenen, volgt u deze stappen:

Notitie

Je hebt Owner-machtigingen nodig om andere Key Vault-machtigingen te verlenen.

  1. Klik op Toegangsbeheer (IAM) .

  2. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  3. Wijs de rol toe door de volgende configuratie te gebruiken:

    Instelling Waarde
    Rol Key Vault-beheerder
    Toegang toewijzen aan Gebruiker, groep of service-principal
    Leden <Uw accountgegevens, of e-mailadres>

Upload het certificaat naar de sleutelkluis

Zorg ervoor dat je Azure CLI lokaal hebt geconfigureerd met PowerShell. Voor richtlijnen bij het opzetten van Azure CLI, zie Get start with Azure CLI.

De volgende stappen uploaden het certificaat als geheim naar je sleutelkluis.

Belangrijk

Je moet Key Vault Administrator-rechten hebben voor je key vault voordat dit commando goed werkt. Je moet het certificaat als geheim uploaden. U moet Azure CLI gebruiken om certificaten als geheimen te uploaden naar uw sleutelkluis. Je Azure Stream Analytics-taak faalt wanneer het certificaat dat voor authenticatie wordt gebruikt verloopt. Om dit probleem op te lossen, werk je het certificaat in je key vault bij of vervang je het opnieuw en start je Azure Stream Analytics-baan opnieuw.

  1. Meld u aan bij Azure CLI.

    az login
    
  2. Maak verbinding met het abonnement dat de sleutelkluis bevat.

    az account set --subscription <subscription name>
    
  3. Upload het certificaat als geheim. Vervang <your key vault> het door de naam van de sleutelkluis, <name of the secret> met een naam die je het geheim wilt geven, en <file path to certificate> met het pad naar je certificaatbestand. U kunt met de rechtermuisknop klikken en het pad naar het certificaat kopiëren.

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

    Voorbeeld:

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

Beheerde identiteit configureren

Azure Stream Analytics vereist beheerde identiteit om toegang te krijgen tot de sleutelkluis. Configureer je Azure Stream Analytics-job om managed identity te gebruiken door naar het tabblad Managed Identity te gaan onder Configure.

Om beheerde identiteit te configureren, volgt u deze stappen:

  1. Selecteer het tabblad Beheerde Identiteit onder Configureer.

    Screenshot die laat zien hoe je managed identity configureert voor een Azure Stream Analytics-taak.

  2. Selecteer Switch Identity en selecteer de identiteit die met de taak wordt gebruikt: systeem-toegewezen identiteit of gebruikers-toegewezen identiteit.

  3. Voor door de gebruiker toegewezen identiteit selecteer je het abonnement waar je gebruikersidentiteit zich bevindt en selecteer je de naam van je identiteit.

  4. Bekijk en selecteer Opslaan.

Verleen de Stream Analytics taakrechten om toegang te krijgen tot het certificaat

Als u het geheim in uw sleutelkluis wilt lezen voor uw Azure Stream Analytics-taak, moet de taak gemachtigd zijn om toegang te krijgen tot de sleutelkluis.

Om rechten te verlenen aan je Stream Analytics-baan, volg je deze stappen:

  1. Klik op Toegangsbeheer (IAM) .

  2. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  3. Wijs de rol toe door de volgende configuratie te gebruiken:

    Instelling Waarde
    Rol Key Vault Secrets-gebruiker
    Beheerde identiteit Stream Analytics-taak voor door het systeem toegewezen beheerde identiteit of door de gebruiker toegewezen beheerde identiteit
    Leden <Naam van uw Stream Analytics-taak> of <-naam van door de gebruiker toegewezen identiteit>

Kafka-invoerbeperkingen en overwegingen

Als je Kafka-cluster zich binnen een virtueel netwerk of achter een firewall bevindt, configureer dan je Azure Stream Analytics-taak om toegang te krijgen tot je Kafka-onderwerp via een privéverbinding of een speciale netwerkconfiguratie. Voor meer informatie, zie Run your Azure Stream Analytics job in an Azure Virtual Network.

Houd rekening met de volgende beperkingen wanneer je Kafka als invoerbron gebruikt:

  1. Wanneer je je Azure Stream Analytics-job configureert om Virtual Network/SWIFT te gebruiken, configureer de taak dan met minstens zes streamingunits of één V2-streamingunit.
  2. Wanneer je mTLS of SASL_SSL gebruikt met Azure Key Vault, moet je je Java Key Store omzetten naar PEM-formaat.
  3. De minimale versie van Kafka waar Azure Stream Analytics verbinding mee kan maken is versie 0.10.
  4. Azure Stream Analytics ondersteunt geen authenticatie naar Confluent Cloud door gebruik te maken van OAuth of SAML single sign-on (SSO). Je moet een API-sleutel gebruiken via het SASL_SSL-protocol.

Neem voor directe hulp met de Kafka-invoer van Azure Stream Analytics contact op met askasa@microsoft.com