Streamování dat z Kafka do Azure Stream Analytics
Kafka je distribuovaná streamovací platforma používaná k publikování a odběru datových proudů záznamů. Platforma Kafka je navržená tak, aby umožňovala aplikacím zpracovávat záznamy při jejich výskytu. Jedná se o opensourcový systém vyvinutý Apache Software Foundation a napsaný v Javě a Scala.
Toto jsou hlavní případy použití:
- Zasílání zpráv
- Sledování aktivit webu
- Metriky
- Agregace protokolu
- Zpracování streamu
Azure Stream Analytics umožňuje připojit se přímo ke clusterům Kafka k ingestování dat. Řešení je málo kódu a je plně spravované týmem Azure Stream Analytics v Microsoftu, což umožňuje vyhovět standardům dodržování předpisů pro firmy. Vstup Kafka je zpětně kompatibilní a podporuje všechny verze s nejnovější verzí klienta počínaje verzí 0.10. Uživatelé se můžou připojit ke clusterům Kafka ve virtuální síti a clusterech Kafka s veřejným koncovým bodem v závislosti na konfiguracích. Konfigurace spoléhá na existující konvence konfigurace Kafka. Podporované typy komprese jsou None, Gzip, Snappy, LZ4 a Zstd.
Kroky
Tento článek ukazuje, jak nastavit Kafka jako vstupní zdroj pro Azure Stream Analytics. Existuje šest kroků:
- Vytvořte úlohu Azure Stream Analytics.
- Pokud používáte mTLS nebo SASL_SSL protokoly zabezpečení, nakonfigurujte úlohu Azure Stream Analytics tak, aby používala spravovanou identitu.
- Nakonfigurujte Azure Key Vault, pokud používáte protokoly mTLS nebo SASL_SSL zabezpečení.
- Nahrajte certifikáty jako tajné kódy do služby Azure Key Vault.
- Udělte Službě Azure Stream Analytics oprávnění pro přístup k nahranému certifikátu.
- Nakonfigurujte vstup Kafka v úloze Azure Stream Analytics.
Poznámka:
V závislosti na konfiguraci clusteru Kafka a typu clusteru Kafka, který používáte, se některé z výše uvedených kroků nemusí vztahovat na vás. Příklady: Pokud používáte confluent cloud Kafka, nebudete muset nahrát certifikát pro použití konektoru Kafka. Pokud je váš cluster Kafka uvnitř virtuální sítě nebo za bránou firewall, možná budete muset nakonfigurovat úlohu Azure Stream Analytics pro přístup k tématu Kafka pomocí privátního propojení nebo vyhrazené síťové konfigurace.
Konfigurace
Následující tabulka uvádí názvy vlastností a jejich popis pro vytvoření vstupu Kafka:
Důležité
Pokud chcete cluster Kafka nakonfigurovat jako vstup, měl by být typ časového razítka vstupního tématu LogAppendTime. Jediným typem časového razítka, který Azure Stream Analytics podporuje, je LogAppendTime. Azure Stream Analytics podporuje pouze číselný desetinný formát.
Název vlastnosti | Popis |
---|---|
Alias vstupu a výstupu | Popisný název použitý v dotazech pro odkazování na vstup nebo výstup |
Adresy serveru Bootstrap | Seznam dvojic hostitelů a portů pro navázání připojení ke clusteru Kafka. |
Téma Kafka | Pojmenovaný, uspořádaný a dělený datový proud dat, který umožňuje zpracování zpráv založených na publikování a odběru událostí. |
Protokol zabezpečení | Jak se chcete připojit ke clusteru Kafka. Azure Stream Analytics podporuje mTLS, SASL_SSL, SASL_PLAINTEXT nebo Žádné. |
ID skupiny příjemců | Název skupiny příjemců Kafka, do které by vstup měl být součástí. Pokud není zadaný, automaticky se přiřadí. |
Formát serializace událostí | Formát serializace (JSON, CSV, Avro, Parquet, Protobuf) příchozího datového proudu. |
Ověřování a šifrování
K připojení ke clusterům Kafka můžete použít čtyři typy protokolů zabezpečení:
Název vlastnosti | Popis |
---|---|
mTLS | Šifrování a ověřování. Podporuje mechanismy zabezpečení PLAIN, SCRAM-SHA-256 a SCRAM-SHA-512. |
SASL_SSL | Kombinuje dva různé mechanismy zabezpečení – SASL (Simple Authentication and Security Layer) a SSL (Secure Sockets Layer) – k zajištění toho, aby se zajistilo, že pro přenos dat probíhá ověřování i šifrování. Protokol SASL_SSL podporuje mechanismy zabezpečení PLAIN, SCRAM-SHA-256 a SCRAM-SHA-512. |
SASL_PLAINTEXT | standardní ověřování s uživatelským jménem a heslem bez šifrování |
Nic | Žádné ověřování a šifrování. |
Důležité
Confluent Cloud podporuje ověřování pomocí klíčů rozhraní API, OAuth nebo jednotného přihlašování SAML. Azure Stream Analytics nepodporuje ověřování jednotného přihlašování (SSO) OAuth ani SAML. Ke cloudu confluent se můžete připojit pomocí klíče rozhraní API s přístupem na úrovni tématu prostřednictvím protokolu zabezpečení SASL_SSL.
Podrobný kurz připojení ke cloudu Confluent Kafka najdete v dokumentaci:
- Vstup confluent cloudu Kafka: Streamování dat z confluent cloudu Kafka pomocí Azure Stream Analytics
- Výstup Kafka confluent cloudu: Streamování dat z Azure Stream Analytics do confluent cloudu
Integrace služby Key Vault
Poznámka:
Pokud používáte certifikáty úložiště důvěryhodnosti s protokoly zabezpečení mTLS nebo SASL_SSL, musíte mít nakonfigurovanou službu Azure Key Vault a spravovanou identitu pro úlohu Azure Stream Analytics. Zkontrolujte nastavení sítě trezoru klíčů a ujistěte se, že je vybrána možnost Povolit veřejný přístup ze všech sítí . Předpokládejme, že je váš trezor klíčů ve virtuální síti nebo povoluje přístup jenom z konkrétních sítí. V takovém případě musíte úlohu ASA vložit do virtuální sítě obsahující trezor klíčů nebo vložit úlohu ASA do virtuální sítě a pak připojit trezor klíčů k virtuální síti obsahující úlohu pomocí koncových bodů služby.
Azure Stream Analytics se bezproblémově integruje se službou Azure Key Vault pro přístup k uloženým tajným kódům potřebným k ověřování a šifrování při použití mTLS nebo SASL_SSL protokolů zabezpečení. Vaše úloha Azure Stream Analytics se připojí k trezoru klíčů Azure pomocí spravované identity, aby se zajistilo zabezpečené připojení a vyhnuli se exfiltraci tajných kódů. Certifikáty se ukládají jako tajné kódy v trezoru klíčů a musí být ve formátu PEM.
Konfigurace trezoru klíčů s oprávněními
Prostředek trezoru klíčů můžete vytvořit pomocí rychlého startu dokumentace : Vytvořte trezor klíčů pomocí webu Azure Portal . Pokud chcete nahrát certifikáty, musíte mít k trezoru klíčů přístup Správce služby Key Vault. Pokud chcete udělit přístup správce, postupujte následovně:
Poznámka:
Abyste mohli udělit další oprávnění trezoru klíčů, musíte mít oprávnění Vlastník.
Vyberte Řízení přístupu (IAM) .
Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte roli pomocí následující konfigurace:
Nastavení | Hodnota |
---|---|
Role | Správce služby Key Vault |
Přiřadit přístup k | Uživatel, skupina nebo instanční objekt |
Členové | <Informace o účtu nebo e-mail> |
Nahrání certifikátu do trezoru klíčů přes Azure CLI
Důležité
Abyste mohli tento příkaz správně fungovat, musíte mít oprávnění Správce služby Key Vault, aby tento příkaz fungoval správně, musíte certifikát nahrát jako tajný klíč. K nahrání certifikátů jako tajných kódů do trezoru klíčů musíte použít Azure CLI. Vaše úloha Azure Stream Analytics selže, když vyprší platnost certifikátu použitého k ověření. Pokud chcete tento problém vyřešit, musíte aktualizovat nebo nahradit certifikát v trezoru klíčů a restartovat úlohu Azure Stream Analytics.
Ujistěte se, že máte azure CLI nakonfigurované místně pomocí PowerShellu. Na této stránce najdete pokyny k nastavení Azure CLI: Začínáme s Azure CLI
Přihlášení k Azure CLI:
az login
Připojte se k předplatnému obsahujícímu váš trezor klíčů:
az account set --subscription <subscription name>
Následující příkaz může certifikát nahrát jako tajný kód do trezoru klíčů:
Jedná se <your key vault>
o název trezoru klíčů, do kterého chcete certifikát nahrát. <name of the secret>
je libovolný název, který chcete předat tajnému kódu a jak se zobrazí v trezoru klíčů. <file path to certificate>
je cesta k umístění certifikátu, ve kterém se certifikát nachází. Můžete kliknout pravým tlačítkem myši a zkopírovat cestu k certifikátu.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Příklad:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Konfigurace spravované identity
Azure Stream Analytics vyžaduje, abyste nakonfigurovali spravovanou identitu pro přístup k trezoru klíčů. Úlohu ASA můžete nakonfigurovat tak, aby používala spravovanou identitu, a to tak, že přejdete na kartu Spravovaná identita na levé straně v části Konfigurovat.
- V části Konfigurace vyberte kartu spravované identity.
- Vyberte Možnost Přepnout identitu a vyberte identitu, která se má použít s úlohou: identita přiřazená systémem nebo identita přiřazená uživatelem.
- Pro identitu přiřazenou uživatelem vyberte předplatné, ve kterém se nachází identita přiřazená uživatelem, a vyberte název vaší identity.
- Zkontrolujte a uložte.
Udělení oprávnění úlohy Stream Analytics pro přístup k certifikátu v trezoru klíčů
Aby vaše úloha Azure Stream Analytics četla tajný klíč v trezoru klíčů, musí mít úloha oprávnění pro přístup k trezoru klíčů. Pomocí následujících kroků udělte úlohu Stream Analytics speciální oprávnění:
Vyberte Řízení přístupu (IAM) .
Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte roli pomocí následující konfigurace:
Nastavení | Hodnota |
---|---|
Role | Uživatel tajných kódů trezoru klíčů |
Spravovaná identita | Úloha Stream Analytics pro spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem |
Členové | <Název úlohy> Stream Analytics nebo <názvu identity přiřazené uživatelem> |
Integrace virtuální sítě
Pokud je váš cluster Kafka uvnitř virtuální sítě nebo za bránou firewall, nakonfigurujte úlohu Azure Stream Analytics tak, aby přistupovala k tématu Kafka pomocí privátního propojení nebo vyhrazené síťové konfigurace. Další informace najdete v dokumentaci ke spuštění úlohy Azure Stream Analytics ve službě Azure Virtual Network.
Omezení
- Při konfiguraci úloh Azure Stream Analytics tak, aby používaly virtuální síť nebo SWIFT, musí být vaše úloha nakonfigurovaná s alespoň šesti (6) jednotkami streamování nebo jednou (1) jednotkou streamování V2.
- Při použití mTLS nebo SASL_SSL se službou Azure Key Vault je nutné převést úložiště klíčů Java do formátu PEM.
- Minimální verzi Kafka můžete nakonfigurovat tak, aby se služba Azure Stream Analytics připojila na verzi 0.10.
- Azure Stream Analytics nepodporuje ověřování pro confluent cloud pomocí OAuth nebo jednotného přihlašování SAML. Klíč rozhraní API musíte použít prostřednictvím protokolu SASL_SSL.
Poznámka:
Pokud chcete získat přímou pomoc s používáním vstupu Kafka služby Azure Stream Analytics, obraťte se na askasa@microsoft.com.