Transmitir dados do Kafka para o Azure Stream Analytics
O Kafka é uma plataforma de streaming distribuída usada para publicar e assinar fluxos de registros. O Kafka foi projetado para permitir que seus aplicativos processem registros enquanto eles ocorrem. É um sistema de software livre desenvolvido pelo Apache Software Foundation e escrito em Java e Scala.
Veja a seguir os principais casos de uso:
- Mensagens
- Rastreio de atividades do site
- Métricas
- Agregação de log
- Processamento de fluxo
O Azure Stream Analytics permite que você se conecte diretamente aos clusters Kafka para ingerir dados. A solução é de baixo código e totalmente gerenciada pela equipe do Azure Stream Analytics na Microsoft, permitindo que ela atenda aos padrões de conformidade corporativos. A entrada do Kafka é compatível com versões anteriores e dá suporte a todas as versões com a versão mais recente do cliente a partir da versão 0.10. Os usuários podem se conectar a clusters do Kafka dentro de uma rede virtual e a clusters do Kafka com um ponto de extremidade público, dependendo das configurações. A configuração depende das convenções de configuração existentes do Kafka. Os tipos de compactação com suporte são None, Gzip, Snappy, LZ4 e Zstd.
Etapas
Este artigo mostra como configurar o Kafka como uma fonte de entrada para o Azure Stream Analytics. Há seis etapas:
- Crie um trabalho do Azure Stream Analytics.
- Configure seu trabalho do Azure Stream Analytics para usar a identidade gerenciada se você estiver usando os protocolos de segurança mTLS ou SASL_SSL.
- Configure o Azure Key Vault se você estiver usando os protocolos de segurança mTLS ou SASL_SSL.
- Carregue certificados como segredos no Azure Key Vault.
- Conceda permissões do Azure Stream Analytics para acessar o certificado carregado.
- Configure a entrada do Kafka em seu trabalho do Azure Stream Analytics.
Observação
Dependendo de como seu cluster Kafka está configurado e do tipo de cluster Kafka que você está usando, algumas das etapas acima podem não se aplicar a você. Os exemplos são: se você estiver usando o Kafka de nuvem de configuração, não será necessário carregar um certificado para usar o conector Kafka. Se o cluster Kafka estiver dentro de uma rede virtual (VNET) ou atrás de um firewall, talvez seja necessário configurar o trabalho do Azure Stream Analytics para acessar o tópico do Kafka usando um link privado ou uma configuração de rede dedicada.
Configuração
A seguinte tabela lista os nomes de propriedade e suas descrições para a criação de uma entrada do Kafka:
Importante
Para configurar o cluster do Kafka como uma entrada, o tipo de carimbo de data/hora do tópico de entrada deve ser LogAppendTime. O único tipo de carimbo de data/hora compatível com o Azure Stream Analytics é LogAppendTime. O Azure Stream Analytics dá suporte apenas ao formato decimal numérico.
Nome da propriedade | Descrição |
---|---|
Alias de entrada/saída | Um nome amigável usado em consultas para referenciar sua entrada ou saída |
Endereços de servidor de inicialização | Uma lista de pares host/porta para estabelecer a conexão com o cluster Kafka. |
Tópico do Kafka | Um fluxo de dados nomeado, ordenado e particionado que permite o processamento de mensagens controladas por eventos e publicação. |
Protocolo de Segurança | Como você deseja se conectar ao cluster Kafka. O Azure Stream Analytics dá suporte a mTLS, SASL_SSL, SASL_PLAINTEXT ou None. |
ID do grupo de consumidores | O nome do grupo de consumidores Kafka do qual a entrada deve fazer parte. Ele será atribuído automaticamente se não for fornecido. |
Formato de serialização do evento | O formato de serialização (JSON, CSV, Avro, Parquet, Protobuf) do fluxo de dados de entrada. |
Autenticação e criptografia
Você pode usar quatro tipos de protocolos de segurança para se conectar aos clusters Kafka:
Nome da propriedade | Descrição |
---|---|
mTLS | Criptografia e autenticação. Dá suporte a mecanismos de segurança PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512. |
SASL_SSL | Combina dois mecanismos de segurança diferentes, SASL (Simple Authentication and Security Layer) e SSL (Secure Sockets Layer), para garantir que a autenticação e a criptografia estejam em vigor para transmissão de dados. O protocolo SASL_SSL dá suporte a mecanismos de segurança PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512. |
SASL_PLAINTEXT | autenticação padrão com nome de usuário e senha sem criptografia |
Nenhum | Nenhuma autenticação e criptografia. |
Importante
A Confluent Cloud dá suporte à autenticação usando chaves de API, OAuth ou SSO (logon único) do SAML. O Azure Stream Analytics não dá suporte à autenticação OAuth ou SSO (logon único) do SAML. Você pode se conectar à Confluent Cloud usando uma chave de API com o acesso de nível do tópico por meio do protocolo de segurança SASL_SSL.
Para ver um tutorial passo a passo sobre como se conectar ao Kafka na Confluent Cloud, acesse a documentação:
- Entrada kafka de nuvem do Confluent: transmitir dados do Kafka de nuvem de confluent com o Azure Stream Analytics
- Saída kafka da nuvem de configuração: transmitir dados do Azure Stream Analytics para a nuvem confluent
Integração do Key Vault
Observação
Ao usar certificados de repositório confiável com protocolos de segurança mTLS ou SASL_SSL, você deve ter o cofre de chaves do Azure e a identidade gerenciada configurados para o trabalho do Azure Stream Analytics. Verifique as configurações de rede do cofre de chaves para garantir que Permitir acesso público de todas as redes esteja selecionado. Suponha que o cofre de chaves esteja em uma VNET ou só permita o acesso de redes específicas. Nesse caso, você deve injetar seu trabalho ASA em uma VNET que contenha o cofre de chaves ou injetar seu trabalho ASA em uma VNET e, em seguida, conectar seu cofre de chaves à VNET que contém o trabalho usando pontos de extremidade de serviço.
O Azure Stream Analytics integra-se perfeitamente ao cofre de chaves do Azure para acessar os segredos armazenados necessários para autenticação e criptografia ao usar protocolos de segurança mTLS ou SASL_SSL. Seu trabalho do Azure Stream Analytics se conecta ao seu cofre de chaves do Azure usando a identidade gerenciada para garantir uma conexão segura e evitar a exfiltração de segredos. Os certificados são armazenados como segredos no cofre de chaves e devem estar no formato PEM.
Configurar o cofre de chaves com permissões
É possível criar um recurso do cofre de chaves seguindo a documentação Início Rápido: criar um cofre de chaves usando o portal do Azure. Você deve ter acesso de “Administrador do Key Vault” ao cofre de chaves para carregar certificados. Siga as instruções a seguir para conceder acesso de administrador:
Observação
Você deve ter permissões de "Proprietário" para conceder outras permissões ao cofre de chaves.
Selecione IAM (Controle de acesso) .
Selecione Adicionar>Adicionar atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a função usando a seguinte configuração:
Configuração | Valor |
---|---|
Função | Administrador do Key Vault |
Atribuir acesso a | Usuário, grupo ou entidade de serviço |
Membros | <Informações da sua conta ou email> |
Carregar certificado no cofre de chaves por meio da CLI do Azure
Importante
Você deve ter acesso de permissões do "Administrador do cofre de chaves" ao cofre de chaves para que esse comando funcione corretamente. É preciso carregar o certificado como um segredo. Use a CLI do Azure para carregar certificados como segredos para o cofre de chaves. O trabalho do Azure Stream Analytics falhará quando o certificado usado para autenticação expirar. Para resolver isso, você deve atualizar/substituir o certificado no cofre de chaves e reiniciar o trabalho do Azure Stream Analytics.
Verifique se você tem a CLI do Azure configurada localmente com o PowerShell. Você pode visitar esta página para obter orientações sobre como configurar a CLI do Azure: Introdução à CLI do Azure
Fazer logon na CLI do Azure:
az login
Conecte-se à sua assinatura que contém o cofre de chaves:
az account set --subscription <subscription name>
O comando a seguir pode carregar o certificado como segredo para o cofre de chaves:
O <your key vault>
é nome do cofre de chaves para o qual você deseja carregar o certificado. <name of the secret>
é qualquer nome que você deseja dar ao seu segredo e como ele aparece no cofre de chaves. <file path to certificate>
é o caminho para a localização do certificado. Você pode clicar com o botão direito do mouse e copiar o caminho para o certificado.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Por exemplo:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Configurar uma identidade gerenciada
O Azure Stream Analytics exige que você configure a identidade gerenciada para acessar o cofre de chaves. Você pode configurar seu trabalho do ASA para usar a identidade gerenciada navegando até a guia Identidade Gerenciada no lado esquerdo, em Configurar.
- Selecione a guia identidade gerenciada em configuração.
- Selecione Mudar de Identidade e selecione a identidade a ser usada com o trabalho: identidade atribuída pelo sistema ou identidade atribuída pelo usuário.
- Para identidade atribuída pelo usuário, selecione a assinatura em que sua identidade atribuída pelo usuário está localizada e selecione o nome da sua identidade.
- Revise e salve.
Conceder permissões de trabalho do Stream Analytics para acessar o certificado no cofre de chaves
Para que o trabalho do Azure Stream Analytics leia o segredo no cofre de chaves, o trabalho deve ter permissão para acessar o cofre de chaves. Use as seguintes etapas para conceder permissões especiais ao seu trabalho de análise de fluxo:
Selecione IAM (Controle de acesso) .
Selecione Adicionar>Adicionar atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a função usando a seguinte configuração:
Configuração | Valor |
---|---|
Função | Usuário de segredos do cofre de chaves |
Identidade gerenciada | Trabalho do Stream Analytics para identidade gerenciada atribuída pelo sistema ou identidade gerenciada atribuída pelo usuário |
Membros | <Nome do seu trabalho do Stream Analytics> ou <nome da identidade atribuída pelo usuário> |
Integração de rede virtual
Se o cluster do Kafka estiver dentro de uma rede virtual ou atrás de um firewall, talvez seja necessário configurar o trabalho do Azure Stream Analytics para acessar o tópico do Kafka usando um link privado ou uma configuração de rede dedicada. Visite a documentação Executar seu trabalho do Azure Stream Analytics em uma rede virtual do Azure para obter mais informações.
Limitações
- Ao configurar seus trabalhos do Azure Stream Analytics para usar a Rede virtual/SWIFT, seu trabalho deve ser configurado com pelo menos seis (6) unidades de streaming ou uma (1) unidade de streaming V2.
- Ao usar mTLS ou SASL_SSL com o cofre de chaves do Azure, você deve converter o Repositório de Chaves Java em formato PEM.
- Você pode configurar o Azure Stream Analytics para se conectar ao Kafka com a versão mínima 0.10.
- O Azure Stream Analytics não dá suporte à autenticação para a Confluent Cloud usando OAuth ou SSO (logon único) do SAML. Você deve usar a Chave de API por meio do protocolo SASL_SSL
Observação
Para obter ajuda direta com o uso da entrada Kafka do Azure Stream Analytics, entre em contato com askasa@microsoft.com.