Udostępnij za pośrednictwem


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

Kafka to rozproszona platforma przesyłania strumieniowego używana do publikowania i subskrybowania strumieni rekordów. Platforma Kafka została zaprojektowana tak, aby umożliwić aplikacjom przetwarzanie rekordów w miarę ich występowania. Jest to system open source opracowany przez platformę Apache Software Foundation i napisany w językach Java i Scala.

Poniżej przedstawiono główne przypadki użycia:

  • Obsługa komunikatów
  • Śledzenie aktywności witryny internetowej
  • Metryki
  • Agregacja dzienników
  • Przetwarzanie strumieniowe

Usługa Azure Stream Analytics umożliwia bezpośrednie łączenie się z klastrami platformy Kafka w celu pozyskiwania danych. Rozwiązanie to niski kod i całkowicie zarządzane przez zespół usługi Azure Stream Analytics w firmie Microsoft, co pozwala na spełnianie standardów zgodności biznesowej. Dane wejściowe platformy Kafka są zgodne z poprzednimi wersjami i obsługują wszystkie wersje z najnowszą wersją klienta, począwszy od wersji 0.10. Użytkownicy mogą łączyć się z klastrami platformy Kafka w sieci wirtualnej i klastrami Kafka z publicznym punktem końcowym w zależności od konfiguracji. Konfiguracja opiera się na istniejących konwencjach konfiguracji platformy Kafka. Obsługiwane typy kompresji to None, Gzip, Snappy, LZ4 i Zstd.

Kroki

W tym artykule pokazano, jak skonfigurować platformę Kafka jako źródło danych wejściowych dla usługi Azure Stream Analytics. Istnieją sześć kroków:

  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. Skonfiguruj usługę Azure Key Vault, jeśli używasz protokołów zabezpieczeń mTLS lub SASL_SSL.
  4. Przekazywanie certyfikatów jako wpisów tajnych do usługi Azure Key Vault.
  5. Udziel uprawnień usługi Azure Stream Analytics, aby uzyskać dostęp do przekazanego certyfikatu.
  6. Skonfiguruj dane wejściowe platformy Kafka w zadaniu usługi Azure Stream Analytics.

Uwaga

W zależności od sposobu konfigurowania klastra platformy Kafka i typu używanego klastra kafka niektóre z powyższych kroków mogą nie mieć zastosowania do Ciebie. Przykłady: jeśli używasz platformy Kafka w chmurze confluent, nie musisz przekazywać certyfikatu do korzystania z łącznika platformy Kafka. Jeśli klaster Platformy Kafka znajduje się w sieci wirtualnej lub za zaporą, może być konieczne skonfigurowanie zadania usługi Azure Stream Analytics w celu uzyskania dostępu do tematu platformy Kafka przy użyciu łącza prywatnego lub dedykowanej konfiguracji sieci.

Konfigurowanie

W poniższej tabeli wymieniono nazwy właściwości i ich opis tworzenia danych wejściowych platformy Kafka:

Ważne

Aby skonfigurować klaster platformy Kafka jako dane wejściowe, typ znacznika czasu tematu wejściowego powinien mieć wartość LogAppendTime. Jedynym typem znacznika czasu obsługiwana przez usługę Azure Stream Analytics jest LogAppendTime. Usługa Azure Stream Analytics obsługuje tylko format liczbowy dziesiętny.

Nazwa właściwości Opis
Alias danych wejściowych/wyjściowych Przyjazna nazwa używana w zapytaniach do odwołowania się do danych wejściowych lub wyjściowych
Adresy serwerów bootstrap Lista par hostów/portów do nawiązania połączenia z klastrem Kafka.
Temat platformy Kafka Nazwany, uporządkowany i podzielony na partycje strumień danych, który umożliwia publikowanie-subskrybowanie i przetwarzanie komunikatów sterowane zdarzeniami.
Protokół zabezpieczeń Jak chcesz nawiązać połączenie z klastrem platformy Kafka. Usługa Azure Stream Analytics obsługuje biblioteki mTLS, SASL_SSL, SASL_PLAINTEXT lub None.
Identyfikator grupy odbiorców Nazwa grupy odbiorców platformy Kafka, która powinna być częścią danych wejściowych. Jest on automatycznie przypisywany, jeśli nie zostanie podany.
Format serializacji zdarzeń Format serializacji (JSON, CSV, Avro, Parquet, Protobuf) przychodzącego strumienia danych.

Zrzut ekranu przedstawiający sposób konfigurowania danych wejściowych platformy Kafka dla zadania usługi Stream Analytics.

Uwierzytelnianie i szyfrowanie

Do nawiązania połączenia z klastrami platformy Kafka można użyć czterech typów protokołów zabezpieczeń:

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 zabezpieczeń — SASL (Simple Authentication and Security Layer) i Secure Sockets Layer (SSL) — w celu zapewnienia uwierzytelniania i szyfrowania na potrzeby transmisji danych. Protokół SASL_SSL obsługuje mechanizmy zabezpieczeń PLAIN, SCRAM-SHA-256 i SCRAM-SHA-512.
SASL_PLAINTEXT Uwierzytelnianie standardowe z nazwą użytkownika i hasłem bez szyfrowania
Brak Brak uwierzytelniania i szyfrowania.

Ważne

Aplikacja Confluent Cloud obsługuje uwierzytelnianie przy użyciu kluczy interfejsu API, protokołu OAuth lub logowania jednokrotnego SAML. Usługa Azure Stream Analytics nie obsługuje uwierzytelniania OAuth ani logowania jednokrotnego SAML. Możesz nawiązać połączenie z chmurą confluent przy użyciu klucza interfejsu API z dostępem na poziomie tematu za pośrednictwem protokołu zabezpieczeń SASL_SSL.

Aby zapoznać się z samouczkiem krok po kroku dotyczącym nawiązywania połączenia z platformą Kafka w chmurze confluent, zapoznaj się z dokumentacją:

Integracja z usługą Key Vault

Uwaga

W przypadku korzystania z certyfikatów magazynu zaufania z protokołami zabezpieczeń mTLS lub SASL_SSL musisz mieć usługę Azure Key Vault i tożsamość zarządzaną skonfigurowaną dla zadania usługi Azure Stream Analytics. Sprawdź ustawienia sieciowe magazynu kluczy, aby upewnić się, że wybrano opcję Zezwalaj na dostęp publiczny ze wszystkich sieci . Załóżmy, że magazyn kluczy znajduje się w sieci wirtualnej lub zezwala na dostęp tylko z określonych sieci. W takim przypadku należy wstrzyknąć zadanie usługi ASA do sieci wirtualnej zawierającej magazyn kluczy lub wstrzyknąć zadanie usługi ASA do sieci wirtualnej, a następnie połączyć magazyn kluczy z siecią wirtualną zawierającą zadanie przy użyciu punktów końcowych usługi.

Usługa Azure Stream Analytics bezproblemowo integruje się z usługą Azure Key Vault, aby uzyskać dostęp do przechowywanych wpisów tajnych wymaganych do uwierzytelniania i szyfrowania podczas korzystania z protokołów zabezpieczeń mTLS lub SASL_SSL. Zadanie usługi Azure Stream Analytics łączy się z usługą Azure Key Vault przy użyciu tożsamości zarządzanej, aby zapewnić bezpieczne połączenie i uniknąć eksfiltracji wpisów tajnych. Certyfikaty są przechowywane jako wpisy tajne w magazynie kluczy i muszą być w formacie PEM.

Konfigurowanie magazynu kluczy z uprawnieniami

Zasób magazynu kluczy można utworzyć, postępując zgodnie z dokumentacją Szybki start: Tworzenie magazynu kluczy przy użyciu witryny Azure Portal Aby przekazać certyfikaty, musisz mieć dostęp do magazynu kluczy. Postępuj zgodnie z poniższymi instrukcjami, aby udzielić dostępu administratora:

Uwaga

Aby przyznać inne uprawnienia magazynu kluczy, musisz mieć uprawnienia "Właściciel".

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

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

  3. Przypisz rolę przy użyciu następującej konfiguracji:

Ustawienie Wartość
Rola Key Vault Administrator
Przypisz dostęp do Użytkownik, grupa lub jednostka usługi
Elementy członkowskie <Informacje o koncie lub adres e-mail>

Przekazywanie certyfikatu do magazynu kluczy za pomocą interfejsu wiersza polecenia platformy Azure

Ważne

Aby to polecenie działało prawidłowo, musisz mieć uprawnienia administratora usługi Key Vault. Aby można było prawidłowo przekazać certyfikat jako wpis tajny. Aby przekazać certyfikaty jako wpisy tajne do magazynu kluczy, musisz użyć interfejsu wiersza polecenia platformy Azure. Zadanie usługi Azure Stream Analytics zakończy się niepowodzeniem, gdy certyfikat używany do uwierzytelniania wygaśnie. Aby rozwiązać ten problem, musisz zaktualizować/zastąpić certyfikat w magazynie kluczy i ponownie uruchomić zadanie usługi Azure Stream Analytics.

Upewnij się, że interfejs wiersza polecenia platformy Azure został skonfigurowany lokalnie za pomocą programu PowerShell. Możesz odwiedzić tę stronę, aby uzyskać wskazówki dotyczące konfigurowania interfejsu wiersza polecenia platformy Azure: rozpoczynanie pracy z interfejsem wiersza polecenia platformy Azure

Zaloguj się do interfejsu wiersza polecenia platformy Azure:

az login

Połącz się z subskrypcją zawierającą magazyn kluczy:

az account set --subscription <subscription name>

Następujące polecenie może przekazać certyfikat jako wpis tajny do magazynu kluczy:

To <your key vault> nazwa magazynu kluczy, do którego chcesz przekazać certyfikat. <name of the secret> to dowolna nazwa, którą chcesz nadać wpisowi tajnemu i jak jest ona wyświetlana w magazynie kluczy. <file path to certificate> to ścieżka do lokalizacji certyfikatu, w którym znajduje się certyfikat. 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

Usługa Azure Stream Analytics wymaga skonfigurowania tożsamości zarządzanej w celu uzyskania dostępu do magazynu kluczy. Zadanie usługi ASA można skonfigurować do używania tożsamości zarządzanej, przechodząc do karty Tożsamość zarządzana po lewej stronie w obszarze Konfigurowanie.

Zrzut ekranu przedstawiający sposób konfigurowania tożsamości zarządzanej dla zadania usługi ASA.

  1. Wybierz kartę Tożsamość zarządzana w obszarze Konfiguracja.
  2. Wybierz pozycję Przełącz tożsamość i wybierz tożsamość, która ma być używana z zadaniem: tożsamość przypisana przez system lub tożsamość przypisana przez użytkownika.
  3. W przypadku tożsamości przypisanej przez użytkownika wybierz subskrypcję, w której znajduje się tożsamość przypisana przez użytkownika, i wybierz nazwę tożsamości.
  4. Przejrzyj i zapisz.

Udzielanie uprawnień do zadania usługi Stream Analytics w celu uzyskania dostępu do certyfikatu w magazynie kluczy

Aby zadanie usługi Azure Stream Analytics odczytywało wpis tajny w magazynie kluczy, zadanie musi mieć uprawnienia dostępu do magazynu kluczy. Wykonaj następujące kroki, aby udzielić specjalnych uprawnień do zadania usługi Stream Analytics:

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

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

  3. Przypisz rolę przy użyciu następującej konfiguracji:

Ustawienie Wartość
Rola Użytkownik wpisów tajnych 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
Elementy członkowskie <Nazwa zadania> usługi Stream Analytics lub <nazwy tożsamości przypisanej przez użytkownika>

Integracja sieci wirtualnej

Jeśli klaster Platformy Kafka znajduje się w sieci wirtualnej lub za zaporą, skonfiguruj zadanie usługi Azure Stream Analytics, aby uzyskać dostęp do tematu platformy Kafka przy użyciu łącza prywatnego lub dedykowanej konfiguracji sieci. Więcej informacji można znaleźć w dokumentacji Uruchamianie zadania usługi Azure Stream Analytics w usłudze Azure Virtual Network.

Ograniczenia

  • Podczas konfigurowania zadań usługi Azure Stream Analytics do korzystania z usługi Virtual Network/SWIFT zadanie musi być skonfigurowane z co najmniej sześcioma (6) jednostkami przesyłania strumieniowego lub jedną (1) jednostką przesyłania strumieniowego w wersji 2.
  • W przypadku korzystania z biblioteki mTLS lub SASL_SSL z usługą Azure Key Vault należy przekonwertować magazyn kluczy Java na format PEM.
  • Minimalna wersja platformy Kafka, którą można skonfigurować w usłudze Azure Stream Analytics w celu nawiązania połączenia z wersją 0.10.
  • Usługa Azure Stream Analytics nie obsługuje uwierzytelniania w chmurze confluent przy użyciu protokołu OAuth lub logowania jednokrotnego SAML. Klucz interfejsu API należy używać za pośrednictwem protokołu SASL_SSL

Uwaga

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

Następne kroki