Partilhar via


Transmitir dados do Kafka para o Azure Stream Analytics (Pré-visualização)

Kafka é uma plataforma de streaming distribuída usada para publicar e assinar fluxos de discos. O Kafka foi projetado para permitir que seus aplicativos processem registros à medida que ocorrem. É um sistema de código aberto desenvolvido pela Apache Software Foundation e escrito em Java e Scala.

A seguir estão os principais casos de uso:

  • Mensagens
  • Rastreamento de atividades do site
  • Métricas
  • Agregação de logs
  • Processamento de Fluxos

O Azure Stream Analytics permite que você se conecte diretamente a clusters Kafka para ingerir dados. A solução é low code e totalmente gerenciada pela equipe do Azure Stream Analytics na Microsoft, permitindo que ela atenda aos padrões de conformidade de negócios. A entrada ASA Kafka é compatível com versões anteriores e suporta 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 Kafka dentro de uma VNET e clusters Kafka com um ponto de extremidade público, dependendo das configurações. A configuração baseia-se nas convenções de configuração Kafka existentes. Os tipos de compressão suportados são None, Gzip, Snappy, LZ4 e Zstd.

Passos

Este artigo mostra como configurar o Kafka como uma fonte de entrada para o Azure Stream Analytics. Existem seis etapas:

  1. Crie um trabalho do Azure Stream Analytics.
  2. Configure seu trabalho do Azure Stream Analytics para usar a identidade gerenciada se você estiver usando mTLS ou protocolos de segurança SASL_SSL.
  3. Configure o cofre da Chave do Azure se estiver usando protocolos de segurança mTLS ou SASL_SSL.
  4. Carregue certificados como segredos no cofre da Chave do Azure.
  5. Conceda permissões do Azure Stream Analytics para acessar o certificado carregado.
  6. Configure a entrada do Kafka em seu trabalho do Azure Stream Analytics.

Nota

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ê. Exemplos são: se você estiver usando a nuvem confluente Kafka, você não precisará 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 seu trabalho do Azure Stream Analytics para acessar seu tópico Kafka usando um link privado ou uma configuração de rede dedicada.

Configuração

A tabela a seguir lista os nomes de propriedade e sua descrição para criar uma entrada Kafka:

Importante

Para configurar seu cluster 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 suportado pelo Azure Stream Analytics é LogAppendTime. O Azure Stream Analytics suporta apenas o formato decimal numérico.

Property name Description
Alias de entrada/saída Um nome amigável usado em consultas para fazer referência à sua entrada ou saída
Endereços do servidor de bootstrap Uma lista de pares host/porta para estabelecer a conexão com o cluster Kafka.
Tópico Kafka Um fluxo de dados nomeado, ordenado e particionado que permite a publicação-assinatura e o processamento controlado por eventos de mensagens.
Protocolo de Segurança Como você deseja se conectar ao seu cluster Kafka. O Azure Stream Analytics suporta mTLS, SASL_SSL, SASL_PLAINTEXT ou Nenhum.
ID do Grupo de Consumidores O nome do grupo de consumidores Kafka do qual a entrada deve fazer parte. Será atribuído automaticamente se não for fornecido.
Formato de serialização de eventos O formato de serialização (JSON, CSV, Avro, Parquet, Protobuf) do fluxo de dados de entrada.

Captura de tela mostrando como configurar a entrada kafka para um trabalho de análise de fluxo.

Autenticação e encriptação

Você pode usar quatro tipos de protocolos de segurança para se conectar aos clusters Kafka:

Property name Description
mTLS Encriptação e autenticação. Suporta mecanismos de segurança PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512.
SASL_SSL Ele 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 a transmissão de dados. O protocolo SASL_SSL suporta 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
Nenhuma Sem autenticação e criptografia.

Importante

O Confluent Cloud suporta autenticação usando chaves de API, OAuth ou logon único (SSO) SAML. O Azure Stream Analytics não suporta autenticação de início de sessão único (SSO) OAuth ou SAML. Você pode se conectar à nuvem confluente usando uma chave de API com acesso em nível de tópico por meio do protocolo de segurança SASL_SSL.

Para obter um tutorial passo a passo sobre como se conectar ao kakfa de nuvem confluente, visite a documentação:

Integração com o cofre de chaves

Nota

Ao usar certificados de armazenamento confiável com mTLS ou protocolos de segurança SASL_SSL, você deve ter o cofre da Chave do Azure e a identidade gerenciada configurados para seu trabalho do Azure Stream Analytics. Verifique as configurações de rede do cofre de chaves para garantir que a opção Permitir acesso público de todas as redes esteja selecionada. Suponha que seu 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 contém 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 com o cofre da Chave do Azure para aceder aos segredos armazenados necessários para autenticação e encriptação ao utilizar protocolos de segurança mTLS ou SASL_SSL. Seu trabalho do Azure Stream Analytics se conecta ao seu cofre da Chave 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

Você pode criar um recurso de cofre de chaves seguindo a documentação Guia de início rápido: Criar um cofre de chaves usando o portal do Azure Você deve ter acesso "Key Vault Administrator" ao seu cofre de chaves para carregar certificados. Siga o seguinte para conceder acesso de administrador:

Nota

Você deve ter permissões de "Proprietário" para conceder outras permissões de cofre de chaves.

  1. Selecione Controlo de acesso (IAM) .

  2. Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.

  3. Atribua a função usando a seguinte configuração:

Definição Value
Role Administrador do Cofre de Chaves
Atribuir acesso a Usuário, grupo ou entidade de serviço
Membros <As informações da sua conta ou e-mail>

Carregar certificado para o cofre de chaves através da CLI do Azure

Importante

Você deve ter permissões de "Administrador do Cofre de Chaves" de acesso ao seu Cofre de Chaves para que este comando funcione corretamente Você deve carregar o certificado como um segredo. Você deve usar a CLI do Azure para carregar certificados como segredos para seu cofre de chaves. Seu trabalho do Azure Stream Analytics falhará quando o certificado usado para autenticação expirar. Para resolver isso, você deve atualizar/substituir o certificado em seu cofre de chaves e reiniciar seu 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ção sobre como configurar a CLI do Azure: Introdução à CLI do Azure

Faça 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 um segredo para o cofre de chaves:

O <your key vault> é o nome do cofre de chaves para o qual você deseja carregar o certificado. <name of the secret> é qualquer nome que você queira dar ao seu segredo e como ele aparece no cofre da chave. <file path to certificate> é o caminho para onde o certificado está localizado. 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 identidade gerenciada

O Azure Stream Analytics exige que você configure a identidade gerenciada para acessar o cofre de chaves. Você pode configurar seu trabalho ASA para usar a identidade gerenciada navegando até a guia Identidade gerenciada no lado esquerdo em Configurar.

Captura de tela mostrando como configurar a identidade gerenciada para um trabalho ASA.

  1. Clique na guia identidade gerenciada em configurar.
  2. Selecione em Alternar identidade e selecione a identidade a ser usada com o trabalho: identidade atribuída pelo sistema ou identidade atribuída pelo usuário.
  3. Para identidade atribuída pelo usuário, selecione a assinatura onde sua identidade atribuída pelo usuário está localizada e selecione o nome da sua identidade.
  4. Reveja e guarde.

Conceda permissões de trabalho do Stream Analytics para acessar o certificado no cofre de chaves

Para que seu trabalho do Azure Stream Analytics leia o segredo em seu 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:

  1. Selecione Controlo de acesso (IAM) .

  2. Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.

  3. Atribua a função usando a seguinte configuração:

Definição Value
Role Usuário de segredos do cofre de chaves
Identidade gerida Trabalho do Stream Analytics para identidade gerenciada atribuída ao sistema ou identidade gerenciada atribuída pelo usuário
Membros <Nome do trabalho do Stream Analytics> ou <nome da identidade atribuída pelo usuário>

Integração de VNET

Se o cluster Kafka estiver dentro de uma rede virtual (VNET) ou atrás de um firewall, talvez seja necessário configurar seu trabalho do Azure Stream Analytics para acessar seu tópico 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 VNET/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 da Chave do Azure, você deve converter seu Java Key Store para o formato PEM.
  • A versão mínima do Kafka à qual você pode configurar o Azure Stream Analytics para se conectar é a versão 0.10.
  • O Azure Stream Analytics não oferece suporte à autenticação para nuvem confluente usando OAuth ou logon único (SSO) SAML. Você deve usar a chave de API por meio do protocolo SASL_SSL

Nota

Para obter ajuda direta com o uso da entrada Kafka do Azure Stream Analytics, entre em contato com askasa@microsoft.com.

Próximos passos