Przesyłanie strumieniowe danych z platformy Kafka do usługi Azure Stream Analytics

Apache Kafka to otwartoźródłowa platforma rozproszona do streamingu, której aplikacje wykorzystują do publikowania i subskrypcji strumieni rekordów w miarę ich powstawania. Jest powszechnie wykorzystywany do przesyłania wiadomości, śledzenia aktywności na stronie internetowej, metryk, agregacji logów oraz przetwarzania strumieni.

Jeśli Twoje dane przepływają przez klastry Kafka, możesz połączyć Azure Stream Analytics bezpośrednio z tymi klastrami, aby pobierać i przetwarzać te dane, bez tworzenia własnego konsumenta. Łącznik Kafka wymaga niewielkiej ilości kodu, jest w pełni zarządzany przez firmę Microsoft, aby spełniać firmowe standardy zgodności, i zapewnia zgodność wsteczną z wersjami klienta od 0.10 wzwyż. Możesz łączyć się z klastrami Kafki wewnątrz sieci wirtualnej lub z publicznym punktem końcowym, korzystając z istniejących konwencji konfiguracji Kafki. Obsługiwane typy kompresji to None, Gzip, Snappy, LZ4 i Zstd.

Ten artykuł pokazuje, jak skonfigurować klaster Kafka jako źródło wejściowe dla zadania Azure Stream Analytics.

Ustaw Kafkę jako źródło wejściowe

W tym artykule pokazano, jak skonfigurować platformę Kafka jako źródło danych wejściowych dla usługi Azure Stream Analytics. Obejmuje on następujące kroki:

  1. Utwórz zadanie usługi Azure Stream Analytics.
  2. Skonfiguruj zadanie usługi Azure Stream Analytics, aby używać tożsamości zarządzanej, jeśli używasz protokołów zabezpieczeń mTLS lub SASL_SSL.
  3. Konfiguruj Azure Key Vault, jeśli używasz mTLS lub SASL_SSL protokołów bezpieczeństwa.
  4. Przekaż certyfikaty jako wpisy tajne do usługi Azure Key Vault.
  5. Udziel uprawnień usługi Azure Stream Analytics, aby uzyskać dostęp do przekazanego certyfikatu.
  6. Skonfiguruj wejście Kafka w zadaniu Azure Stream Analytics.

Uwaga

W zależności od konfiguracji klastra Kafka i rodzaju klastra Kafka, którego używasz, niektóre z tych kroków mogą Cię nie dotyczyć. Na przykład, jeśli używasz Confluent Cloud Kafka, nie musisz przesyłać certyfikatu, aby korzystać z konektora Kafka. Jeśli Twój klaster Kafka znajduje się w sieci wirtualnej (VNet) lub za zaporą sieciową, możesz musieć skonfigurować zadanie Azure Stream Analytics, aby uzyskać dostęp do tematu Kafka za pomocą prywatnego łącza lub dedykowanej konfiguracji sieciowej.

Skonfiguruj wejście Kafka

Skonfiguruj dane wejściowe Kafka tak, aby zadanie usługi Azure Stream Analytics mogło połączyć się z klastrem Kafka i odczytywać dane z tematu.

Ważne

Aby skonfigurować klaster Kafka jako wejście, typ znacznika czasu topiku wejściowego powinien być ustawiony na LogAppendTime. Jedynym typem znacznika czasu obsługiwanym przez usługę Azure Stream Analytics jest LogAppendTime. Usługa Azure Stream Analytics obsługuje tylko format liczbowy dziesiętny.

  1. W zadaniu usługi Azure Stream Analytics dodaj dane wejściowe platformy Kafka.

  2. Ustaw każdą właściwość wejściową, używając wartości opisanych w poniższej tabeli:

    Nazwa właściwości Opis
    Alias danych wejściowych/wyjściowych Przyjazna nazwa używana w zapytaniach do odwoływania się do danych wejściowych lub wyjściowych.
    Adresy serwerów bootstrap Lista par host/port do połączenia z klastrem Kafka.
    Temat platformy Kafka Strumień danych o określonej nazwie, uporządkowany i podzielony na partycje, który obsługuje model publikowania-subskrypcji oraz przetwarzanie komunikatów sterowane zdarzeniami.
    Protokół zabezpieczeń Jak chcesz nawiązać połączenie z klastrem platformy Kafka. Usługa Azure Stream Analytics obsługuje protokoły mTLS, SASL_SSL, SASL_PLAINTEXT lub brak.
    Identyfikator grupy odbiorców Nazwa grupy odbiorców platformy Kafka, której częścią powinny być dane wejściowe. Azure Stream Analytics automatycznie przypisuje go, jeśli go nie podasz.
    Format serializacji zdarzeń Format serializacji (JSON, CSV, Avro, Parquet oraz Protobuf) przychodzącego strumienia danych.
  3. Zapisz konfigurację wejścia.

Ustaw uwierzytelnianie i szyfrowanie

Ustaw uwierzytelnianie i szyfrowanie, aby zabezpieczyć połączenie między swoją pracą w Azure Stream Analytics a klastrem Kafka. Aby uzyskać krok po kroku samouczek dotyczący łączenia się z Confluent Cloud Kafka, zobacz Stream data from Confluent Cloud Kafka with Azure Stream Analytics dla input oraz Stream data from Azure Stream Analytics into Confluent Cloud dla output.

Ważne

Confluent Cloud obsługuje uwierzytelnianie za pomocą kluczy API, OAuth lub pojedynczego logowania SAML (SSO). Usługa Azure Stream Analytics nie obsługuje uwierzytelniania OAuth ani logowania jednokrotnego SAML. Możesz połączyć się z Confluent Cloud, używając klucza API z dostępem na poziomie tematu za pomocą protokołu bezpieczeństwa SASL_SSL.

  1. Wybierz jeden z czterech obsługiwanych protokołów bezpieczeństwa, który odpowiada Twojemu klastrowi Kafka, zgodnie z opisaniem w poniższej tabeli:

    Nazwa właściwości Opis
    mTLS Szyfrowanie i uwierzytelnianie. Obsługuje mechanizmy zabezpieczeń PLAIN, SCRAM-SHA-256 i SCRAM-SHA-512.
    SASL_SSL Łączy dwa różne mechanizmy bezpieczeństwa: SASL (Simple Authentication and Security Layer) oraz Secure Sockets Layer (SSL), aby zapewnić zarówno uwierzytelnianie, jak i szyfrowanie do transmisji danych. Protokół SASL_SSL obsługuje mechanizmy zabezpieczeń PLAIN, SCRAM-SHA-256 i SCRAM-SHA-512.
    SASL_PLAINTEXT Standardowe uwierzytelnianie z nazwą użytkownika, ale bez szyfrowania.
    Brak Brak uwierzytelniania i szyfrowania.
  2. Skonfiguruj dane uwierzytelniające dla wybranego protokołu w swoim zadaniu Azure Stream Analytics.

Integracja z usługą Azure Key Vault

Azure Stream Analytics integruje się z Azure Key Vault, aby uzyskać dostęp do przechowywanych sekretów potrzebnych do uwierzytelniania i szyfrowania, gdy używasz protokołów mTLS lub SASL_SSL bezpieczeństwa. Twoje zadanie Azure Stream Analytics łączy się z Azure Key Vault za pomocą zarządzanej tożsamości, aby zapewnić bezpieczne połączenie i uniknąć ujawniania sekretów. Certyfikaty są przechowywane jako wpisy tajne w magazynie kluczy i muszą być w formacie PEM. Aby zintegrować swoje zadanie Azure Stream Analytics z Azure Key Vault, wykonaj następujące zadania, które szczegółowo opisują poniższe sekcje.

Uwaga

Gdy używasz certyfikatów magazynu zaufanego z protokołami mTLS lub SASL_SSL bezpieczeństwa, musisz mieć skonfigurowaną Azure Key Vault i zarządzaną tożsamość dla swojej Azure Stream Analytics pracy. Sprawdź ustawienia sieciowe magazynu kluczy, aby upewnić się, że wybrano opcję Zezwalaj na dostęp publiczny ze wszystkich sieci . Jeśli Twój sejf kluczy znajduje się w VNecie lub pozwala na dostęp tylko z określonych sieci, musisz wstrzyknąć swoje zadanie Azure Stream Analytics do VNet-u zawierającego sejf kluczy, albo wstrzyknąć zadanie Azure Stream Analytics do VNet, a następnie połączyć skarbiec kluczy z zadaniem zawierającym VNet, korzystając z punktów końcowych usług.

  1. Skonfiguruj sejf kluczy z wymaganymi uprawnieniami.
  2. Prześlij swój certyfikat do sejfu kluczy jako sekret.
  3. Konfiguruj zarządzaną tożsamość dla swojej pracy w Azure Stream Analytics.
  4. Nadaj zadaniu usługi Stream Analytics uprawnienia dostępu do certyfikatu w usłudze Key Vault.

Konfiguruj sejf kluczy z uprawnieniami

Aby utworzyć zasób magazynu kluczy, zobacz Szybki start: tworzenie magazynu kluczy przy użyciu witryny Azure Portal. Potrzebujesz dostępu administratora Key Vault do swojego key vault, aby przesłać certyfikaty. Aby przyznać dostęp administratora, postępuj zgodnie z następującymi krokami:

Uwaga

Potrzebujesz uprawnień właściciela , aby przyznawać inne uprawnienia do sejfu kluczy.

  1. Wybierz pozycję Kontrola dostępu (IAM).

  2. Wybierz Dodaj>przypisanie roli, aby otworzyć stronę Dodaj przypisanie roli.

  3. Przypisz rolę, używając następującej konfiguracji:

    Ustawienie Wartość
    Rola Administrator magazynu kluczy
    Przypisz dostęp do Użytkownik, grupa lub jednostka usługi
    Członkowie <Informacje o koncie lub adres e-mail>

Prześlij certyfikat do sejfu kluczy

Upewnij się, że masz lokalnie skonfigurowane narzędzie Azure CLI w programie PowerShell. Aby uzyskać wskazówki dotyczące konfiguracji Azure CLI, zobacz Get start with Azure CLI.

Poniższe kroki umożliwiają przekazanie certyfikatu jako wpisu tajnego do magazynu kluczy.

Ważne

Aby to polecenie działało poprawnie, musisz mieć uprawnienia administratora Key Vault do swojego key vault. Musisz przesłać certyfikat jako tajemnicę. Aby załadować certyfikaty jako wpisy tajne do magazynu kluczy, musisz użyć Azure CLI. Twoje zadanie Azure Stream Analytics kończy się niepowodzeniem, gdy certyfikat używany do uwierzytelniania wygaśnie. Aby rozwiązać ten problem, zaktualizuj lub wymień certyfikat w sejfie kluczy i zrestartuj zadanie Azure Stream Analytics.

  1. Zaloguj się do Azure CLI.

    az login
    
  2. Połącz się z subskrypcją, która zawiera Twój skarbiec kluczy.

    az account set --subscription <subscription name>
    
  3. Prześlij certyfikat jako sekret. Zastąp <your key vault> nazwę sejfu klucza, <name of the secret> dowolną nazwę, którą chcesz nadać sekretowi, oraz <file path to certificate> ścieżkę do pliku certyfikatu. Możesz kliknąć prawym przyciskiem myszy i skopiować ścieżkę do certyfikatu.

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

    Na przykład:

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

Konfigurowanie tożsamości zarządzanej

Azure Stream Analytics wymaga zarządzanej tożsamości, aby uzyskać dostęp do sejfu kluczy. Skonfiguruj swoje zadanie Azure Stream Analytics tak, aby korzystało z zarządzanej tożsamości, przechodząc do zakładki Managed Identity w sekcji Konfiguruj.

Aby skonfigurować zarządzaną tożsamość, należy postępować zgodnie z następującymi krokami:

  1. Wybierz zakładkę Zarządzana Tożsamość w sekcji Konfiguruj.

    Zrzut ekranu pokazujący, jak skonfigurować zarządzaną tożsamość dla zadania Azure Stream Analytics.

  2. Wybierz Switch Identity i wybierz tożsamość do użycia w zadaniu: tożsamość przypisaną przez system lub tożsamość przypisaną przez użytkownika.

  3. W przypadku tożsamości przypisanej przez użytkownika wybierz subskrypcję, w której znajduje się twoja tożsamość przypisana przez użytkownika, a następnie wybierz nazwę tożsamości.

  4. Przejrzyj i wybierz Zapisz.

Przyznaj zadaniu Stream Analytics uprawnienia do dostępu do certyfikatu

Aby zadanie usługi Azure Stream Analytics mogło odczytywać tajemnicę w magazynie kluczy, zadanie musi mieć uprawnienia dostępu do magazynu kluczy.

Aby przyznać uprawnienia do pracy w Stream Analytics, postępuj zgodnie z następującymi krokami:

  1. Wybierz pozycję Kontrola dostępu (IAM).

  2. Wybierz Dodaj>przypisanie roli, aby otworzyć stronę Dodaj przypisanie roli.

  3. Przypisz rolę, używając następującej konfiguracji:

    Ustawienie Wartość
    Rola Użytkownik sekretów usługi Key Vault
    Tożsamość zarządzana Zadanie usługi Stream Analytics dla tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika
    Członkowie <Nazwa zadania> usługi Stream Analytics lub <nazwy tożsamości przypisanej przez użytkownika>

Ograniczenia i kwestie dotyczące danych wejściowych Kafka

Jeśli Twój klaster Kafka znajduje się w sieci wirtualnej lub za zaporą sieciową, skonfiguruj zadanie Azure Stream Analytics tak, aby uzyskać dostęp do tematu Kafka za pomocą prywatnego linku lub dedykowanej konfiguracji sieciowej. Więcej informacji można znaleźć w artykule Uruchom swoje zadanie Azure Stream Analytics w Azure Virtual Network.

Weź pod uwagę następujące ograniczenia, gdy używasz Kafki jako źródła wejściowego:

  1. Gdy konfigurujesz swoje zadanie Azure Stream Analytics na Virtual Network/SWIFT, skonfiguruj zadanie z co najmniej sześcioma jednostkami streamingowymi lub jedną jednostką streamingową V2.
  2. Gdy używasz mTLS lub SASL_SSL z Azure Key Vault, musisz przekonwertować swój Java Key Store na format PEM.
  3. Minimalna wersja Kafki, do której Azure Stream Analytics może się połączyć, to wersja 0.10.
  4. Azure Stream Analytics nie obsługuje uwierzytelniania do Confluent Cloud poprzez użycie OAuth lub SAML single sign-on (SSO). Musisz użyć klucza API za pomocą protokołu SASL_SSL.

Aby uzyskać bezpośrednią pomoc dotyczącą danych wejściowych Kafka w usłudze Azure Stream Analytics, skontaktuj się z askasa@microsoft.com.