來自 Azure 串流分析的 Kafka 輸出
串流分析可讓您以產生者身分直接連線至 Kafka 叢集,以輸出資料。 解決方案是低程式碼,完全由 Microsoft 的串流分析小組管理,使其符合商務合規性標準。 Kafka 輸出回溯相容,並支援從 0.10 版開始的最新用戶端版本的所有版本。 使用者可以根據設定,連線至虛擬網路內的 Kafka 叢集以及具有公用端點的 Kafka 叢集。 設定依賴於現有的 Kafka 設定慣例。 支援的壓縮類型為 無、Gzip、Snappy、LZ4 和 Zstd。
步驟
本文說明如何將 Kafka 設定為串流分析的輸出。 有六個步驟:
- 建立串流分析作業。
- 如果您使用 mTLS 或SASL_SSl安全性通訊協定,請將 Azure 串流分析作業設定為使用受控識別。
- 如果您使用 mTLS 或SASL_SSl安全性通訊協定,請設定 Azure Key Vault。
- 將憑證作為祕密上傳至 Azure Key Vault。
- 授與串流分析權限,以存取上傳的憑證。
- 在串流分析作業中設定 Kafka 輸出。
注意
視 Kafka 叢集的設定方式和您使用的 Kafka 叢集類型而定,上述某些步驟可能不適用於您。 範例包括:如果您使用 Confluent Cloud Kafka,則不需要上傳憑證以使用 Kafka 連接器。 如果您的 Kafka 叢集位於虛擬網路 (VNet) 或防火牆後方,則可能必須設定您的串流分析作業,才能使用私人連結或專用的網路設定來存取 Kafka 主題。
組態
下表列出屬性名稱及其描述以建立 Kafka 輸出:
屬性名稱 | 描述 |
---|---|
輸出別名 | 查詢中用來參考輸出的易記名稱 |
啟動程序伺服器位址 | 用來建立 Kafka 叢集連線的主機/連接埠配對清單。 |
Kafka 主題 | 具名、已排序和已分割的資料流,可允許發佈-訂閱和事件驅動的訊息處理。 |
安全性通訊協定 | 您想要連線至 Kafka 叢集的方式。 Azure 串流分析支援 mTLS、SASL_SSL、SASL_PLAINTEXT或 None。 |
事件序列化格式 | 傳出資料流的序列化格式 (JSON、CSV、Avro)。 |
分割區索引鍵 | 串流分析會使用四捨五入資料分割來指派分割區。 |
Kafka 事件壓縮類型 | 用於傳出資料流的壓縮類型,例如 Gzip、Snappy、Lz4、Zstd 或 None。 |
驗證和加密
您可以使用四種類型的安全性通訊協定來連線至 Kafka 叢集:
注意
針對 SASL_SSL 和 SASL_PLAINTEXT,串流分析僅支援 PLAIN SASL 機制。 您必須使用 Azure CLI 將憑證作為祕密上傳至金鑰保存庫。
屬性名稱 | 描述 |
---|---|
mTLS | 加密和驗證。 支援 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512 安全性機制。 |
SASL_SSL | 它結合了兩種不同的安全性機制-SASL(簡單驗證和安全性層)和安全套接字層(SSL),以確保驗證和加密都已就緒以進行數據傳輸。 SASL_SSL通訊協議支援 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512 安全性機制。 |
SASL_PLAINTEXT | 以使用者名稱和密碼進行標準驗證而不加密 |
無 | 無驗證和加密。 |
重要
Confluent Cloud 支援使用 API 金鑰、OAuth 或 SAML 單一登錄 (SSO) 進行驗證。 串流分析不支援 OAuth 或 SAML 單一登錄 (SSO) 驗證。 您可以透過 SASL_SSL 安全性通訊協定,使用具有主題層級存取權的 API 金鑰來連線至 Confluent Cloud。
如需連線到 Confluent cloud Kafka 的逐步教學課程,請瀏覽檔:
- Confluent Cloud Kafka 輸入:使用串流分析從 Confluent Cloud Kafka 串流資料
- Confluent Cloud Kafka 輸出:將資料從串流分析串流至 Confluent Cloud
金鑰保存庫整合
注意
搭配 mTLS 或 SASL_SSL 安全性通訊協定使用信任存放區憑證時,您必須為串流分析作業設定 Azure 金鑰保存庫和受控識別。 檢查金鑰保存庫的網路設定,以確保已選取 [允許來自所有網路的公用存取]。 假設您的金鑰保存庫位於 VNet 中,或只允許從特定網路進行存取。 在此情況下,您必須將 ASA 作業插入包含金鑰保存庫的 VNet,或將 ASA 作業插入 VNet,然後使用服務端點將金鑰保存庫連線至包含作業的 VNet。
串流分析會與 Azure 金鑰保存庫緊密整合,以在使用 mTLS 或 SASL_SSL 安全性通訊協定時存取驗證和加密所需的預存祕密。 您的串流分析作業會使用受控識別連線至您的 Azure 金鑰保存庫,以確保安全連線,並避免祕密外流。 憑證會儲存為金鑰保存庫中的祕密,且必須是 PEM 格式。
使用權限設定金鑰保存庫
您可以遵循文件快速入門:使用 Azure 入口網站建立金鑰保存庫來建立金鑰保存庫資源 若要上傳憑證,您必須具有鑰保存庫的「金鑰保存庫管理員」存取權。 請遵循下列命令來授與管理員存取權。
注意
您必須具有「擁有者」權限,才能授與其他金鑰保存庫權限。
選取 [存取控制 (IAM)]。
選取 [新增] > [新增角色指派],開啟 [新增角色指派] 頁面。
使用下列設定指派角色:
設定 | 值 |
---|---|
角色 | Key Vault 系統管理員 |
存取權指派對象 | 使用者、群組或服務主體 |
成員 | <您的帳戶資訊或電子郵件> |
透過 Azure CLI 將憑證上傳至金鑰保存庫
重要
您必須具有金鑰保存庫的「金鑰保存庫管理員」存取權限,才能讓此命令正常運作 您必須將憑證上傳為祕密。 您必須使用 Azure CLI 將憑證上傳為金鑰保存庫的祕密。 當用於驗證的憑證到期時,您的串流分析作業將會失敗。 若要解決此問題,您必須更新/取代金鑰保存庫中的憑證,然後重新啟動您的串流分析作業。
請確定您已使用 PowerShell 在本機設定 Azure CLI。 您可以瀏覽此頁面以取得設定 Azure CLI 的指導:開始使用 Azure CLI
登入 Azure CLI:
az login
連線至包含金鑰保存庫的訂用帳戶:
az account set --subscription <subscription name>
下列命令可以將憑證作為祕密上傳至金鑰保存庫:
<your key vault>
是您要將憑證上傳的目的地金鑰保存庫的名稱。 <name of the secret>
是您想要給予祕密的任何名稱,以及其顯示在金鑰保存庫中的方式。 <file path to certificate>
是您的憑證所在位置的路徑。 您可以按一下滑鼠右鍵,並將路徑複製到憑證。
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
例如:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
設定受控識別
串流分析會要求您設定受控識別來存取金鑰保存庫。 您可以瀏覽至左側 [設定] 下方的 [受控識別] 索引標籤,將 ASA 作業設定為使用受控識別。
- 在左側功能表上,選取 [設定] 底下的 [受控識別] 索引標籤。
- 選取 [切換身分識別],然後選取要與作業搭配使用的身分識別:系統指派的身分識別或使用者指派的身分識別。
- 針對使用者指派的身分識別,請選取使用者指派的身分識別所在的訂用帳戶,再選取您的身分識別名稱。
- 檢閱並 [儲存]。
授與串流分析作業權限,以存取金鑰保存庫中的憑證
若要讓串流分析作業讀取您金鑰保存庫中的祕密,此作業必須具有存取金鑰保存庫的權限。 使用下列步驟,將特殊權限授與串流分析作業:
選取 [存取控制 (IAM)]。
選取 [新增] > [新增角色指派],開啟 [新增角色指派] 頁面。
使用下列設定指派角色:
設定 | 值 |
---|---|
角色 | 金鑰保存庫祕密使用者 |
受控識別 | 系統指派的受控識別或使用者指派的受控識別的串流分析作業 |
成員 | <串流分析作業的名稱>或<使用者指派的身分識別名稱> |
虛擬網路整合
如果您的 Kafka 位於虛擬網路內或防火牆後方,您必須設定 Azure 串流分析作業來存取 Kafka 主題。 如需詳細資訊,請瀏覽在 Azure 虛擬網路文件中執行您的串流分析作業。
限制
- 將 Azure 串流分析作業設定為使用虛擬網路/SWIFT 時,您的作業必須至少設定六個 (6) 個串流單元或一個 (1) V2 串流單元。
- 搭配 Azure 金鑰保存庫使用 mTLS 或 SASL_SSL 時,您必須將 JAVA 金鑰存放區轉換成 PEM 格式。
- 您可以將 Azure 串流分析設定為 0.10 版的 Kafka 最低版本。
- 串流分析不支援使用 OAuth 或 SAML 單一登入 (SSO) 對 Confluent Cloud 進行驗證。 您必須透過 SASL_SSL 通訊協定使用 API 金鑰
注意
如需使用串流分析 Kafka 輸出的直接協助,請連絡 askasa@microsoft.com。