Przesyłanie strumieniowe danych z platformy Kafka do chmury confluent przy użyciu usługi Azure Stream Analytics
W tym artykule opisano sposób łączenia zadania usługi Azure Stream Analytics bezpośrednio z platformą kafka w chmurze confluent jako dane wejściowe.
Wymagania wstępne
- Masz klaster kafka chmury confluent.
- Masz plik klucza interfejsu API dla klastra kafka, który zawiera klucz interfejsu API używany jako nazwa użytkownika, wpis tajny interfejsu API do użycia jako hasło i adres serwera Bootstrap.
- Masz zadanie usługi Azure Stream Analytics. Zadanie usługi Azure Stream Analytics można utworzyć, postępując zgodnie z dokumentacją: Szybki start: Tworzenie zadania usługi Stream Analytics przy użyciu witryny Azure Portal
- Klaster kafka chmury confluent musi być publicznie dostępny, a nie za zaporą lub zabezpieczony w sieci wirtualnej.
- Typ sygnatury czasowej tematu klastra kafka chmury confluent powinien mieć wartość LogAppendTime. Domyślnym tematem platformy kafka chmury confluent jest CreateTime.
- Powinien istnieć istniejący magazyn kluczy. Zasób magazynu kluczy można utworzyć, postępując zgodnie z dokumentacją Szybki start: tworzenie magazynu kluczy przy użyciu witryny Azure Portal
Konfigurowanie usługi Azure Stream Analytics do korzystania z 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 Stream Analytics można skonfigurować tak, aby używało tożsamości zarządzanej, przechodząc do karty Tożsamość zarządzana po lewej stronie w obszarze Konfigurowanie.
- Kliknij kartę Tożsamość zarządzana w obszarze konfiguracja.
- 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.
- 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.
- Przejrzyj i zapisz.
Pobieranie certyfikatu z usługi LetsEncrypt
Usługa Azure Stream Analytics to klient oparty na bibliotece librdkafka, a aby nawiązać połączenie z chmurą confluent, potrzebne są certyfikaty TLS używane przez chmurę confluent na potrzeby uwierzytelniania serwera. Chmura Confluent używa certyfikatów TLS z usługi Let's Encrypt, otwartego urzędu certyfikacji.
Pobierz certyfikat ISRG Root X1 w formacie PEM w witrynie aplikacji LetsEncrypt.
Konfigurowanie magazynu kluczy z uprawnieniami
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. 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. Aby użyć pobranego certyfikatu, musisz najpierw przekazać go do magazynu kluczy.
Aby przekazać certyfikaty, musisz mieć dostęp "Administrator usługi Key Vault" 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".
W magazynie kluczy wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..
Wybierz pozycję Dodaj>przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
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 usługi Key Vault jako wpisu tajnego za pośrednictwem 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 masz skonfigurowany i zainstalowany lokalnie interfejs wiersza polecenia platformy Azure 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>
Na przykład:
az account set --subscription mymicrosoftsubscription
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 confluentsecret --file C:\Users\Downloads\isrgrootx1.pem
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:
W magazynie kluczy wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..
Wybierz pozycję Dodaj>przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
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> |
Konfigurowanie danych wejściowych platformy Kafka w zadaniu usługi Stream Analytics
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.
W zadaniu usługi Stream Analytics wybierz pozycję Dane wejściowe w obszarze Topologia zadania
Wybierz pozycję Dodaj dane wejściowe>platformy Kafka, aby otworzyć blok Konfiguracja nowej danych wejściowych platformy Kafka.
Użyj następującej konfiguracji:
Uwaga
W przypadku SASL_SSL i SASL_PLAINTEXT usługa Azure Stream Analytics obsługuje tylko mechanizm ZWYKŁY SASL.
Nazwa właściwości | Opis |
---|---|
Alias danych wejściowych | Przyjazna nazwa używana w zapytaniach do odwołowania się do danych wejściowych |
Adresy serwerów bootstrap | Lista par hostów/portów w celu nawiązania połączenia z klastrem kafka chmury confluent. Przykład: pkc-56d1g.eastus.azure.confluent.cloud:9092 |
Temat platformy Kafka | Nazwa tematu platformy Kafka w klastrze kafka w chmurze confluent. |
Protokół zabezpieczeń | Wybierz pozycję SASL_SSL. Obsługiwany mechanizm to PLAIN. |
Identyfikator grupy odbiorców | Nazwa grupy odbiorców platformy Kafka, która powinna być częścią danych wejściowych. Zostanie on automatycznie przypisany, jeśli nie zostanie podany. |
Format serializacji zdarzeń | Format serializacji (JSON, CSV, Avro, Parquet, Protobuf) przychodzącego strumienia danych. |
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 przy użyciu protokołu OAuth lub logowania jednokrotnego SAML. Możesz nawiązać połączenie z chmurą confluent przy użyciu klucza interfejsu API, który ma dostęp na poziomie tematu za pośrednictwem protokołu zabezpieczeń SASL_SSL. Aby uwierzytelnić się w chmurze confluent, należy użyć SASL_SSL i skonfigurować zadanie do uwierzytelniania w chmurze confluent przy użyciu klucza interfejsu API.
Użyj następującej konfiguracji:
Ustawienie | Wartość |
---|---|
Username | Klucz interfejsu API chmury confluent |
Hasło | Wpis tajny interfejsu API chmury confluent |
Nazwa magazynu kluczy | nazwa usługi Azure Key Vault z przekazanym certyfikatem |
Certyfikaty magazynu zaufania | nazwa wpisu tajnego usługi Key Vault, który zawiera certyfikat ISRG Root X1 |
Zapisywanie konfiguracji i testowanie połączenia
Zapisz konfigurację. Zadanie usługi Azure Stream Analytics sprawdza poprawność przy użyciu podanej konfiguracji. Pomyślne połączenie jest wyświetlane w portalu, jeśli usługa Stream Analytics może nawiązać połączenie z klastrem kafka.
Ograniczenia
- Certyfikat przekazany do magazynu kluczy musi mieć format PEM.
- Minimalna wersja platformy Kafka musi być w wersji 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żyć za pośrednictwem protokołu SASL_SSL.
- Aby przekazać certyfikat jako wpis tajny do magazynu kluczy, musisz użyć interfejsu wiersza polecenia platformy Azure. Nie można przekazywać certyfikatów z wielowierszowymi wpisami tajnymi do magazynu kluczy przy użyciu witryny Azure Portal.
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