Transmitir dados do Kafka para o Azure Stream Analytics

Apache Kafka é uma plataforma de streaming distribuída de código aberto que as aplicações usam para publicar e subscrever fluxos de registos à medida que estes ocorrem. É comumente usado para mensagens, monitorização de atividade de websites, métricas, agregação de logs e processamento de fluxos.

Se os seus dados passarem por clusters Kafka, pode ligar o Azure Stream Analytics diretamente a esses clusters para ingerir e processar esses dados sem criar um consumidor personalizado. O conector de entrada do Kafka é de baixo código, totalmente gerido pela Microsoft para satisfazer os padrões de conformidade empresarial, e retrocompatível com versões de cliente a partir da 0.10. Pode ligar-se a clusters Kafka dentro de uma rede virtual ou com um endpoint público, usando as convenções de configuração Kafka existentes. Os tipos de compressão suportados são None, Gzip, Snappy, LZ4 e Zstd.

Este artigo mostra-lhe como configurar um cluster Kafka como fonte de entrada para um trabalho do Azure Stream Analytics.

Configurar o Kafka como fonte de entrada

Este artigo mostra como configurar o Kafka como uma fonte de entrada para o Azure Stream Analytics. Abrange as seguintes etapas:

  1. Crie uma tarefa do Azure Stream Analytics.
  2. Configure seu trabalho do Azure Stream Analytics para usar identidade gerenciada se você estiver usando mTLS ou protocolos de segurança SASL_SSL.
  3. Configura Azure Key Vault se estiveres a usar mTLS ou SASL_SSL protocolos de segurança.
  4. Carregar certificados como segredos no Azure Key Vault.
  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 o seu cluster Kafka está configurado e do tipo de cluster Kafka que está a usar, alguns destes passos podem não se aplicar a si. Por exemplo, se estiver a usar o Confluent Cloud Kafka, não precisa de carregar um certificado para usar o conector Kafka. Se o seu cluster Kafka estiver dentro de uma rede virtual (VNet) ou atrás de um firewall, poderá ter de configurar o seu trabalho Azure Stream Analytics para aceder ao seu tópico Kafka usando um link privado ou uma configuração de rede dedicada.

Configurar a entrada do Kafka

Configure a entrada Kafka para que o seu trabalho no Azure Stream Analytics possa ligar-se ao seu cluster Kafka e ler um tópico.

Importante

Para configurar o 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.

  1. No seu trabalho no Azure Stream Analytics, adicione uma entrada Kafka.

  2. Defina cada propriedade de entrada usando os valores descritos na tabela seguinte:

    Nome da propriedade Descrição
    Alias de entrada/saída Um nome amigável usado nas consultas para referenciar a sua entrada ou saída.
    Endereços de servidor Bootstrap Uma lista de pares host/porta para ligar ao cluster Kafka.
    Tópico Kafka Um fluxo de dados nomeado, ordenado e particionado que suporta a publicação-subscrição e o processamento orientado 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 ao qual a entrada deve pertencer. O Azure Stream Analytics atribui-o automaticamente se não fornecer um.
    Formato de serialização de eventos O formato de serialização (JSON, CSV, Avro, Parquet e Protobuf) do fluxo de dados recebido.
  3. Guarde a configuração de entrada.

Configurar autenticação e encriptação

Configure autenticação e encriptação para garantir a ligação entre o seu trabalho Azure Stream Analytics e o seu cluster Kafka. Para obter um tutorial passo a passo sobre como estabelecer ligação ao Confluent Cloud Kafka, consulte Stream data from Confluent Cloud Kafka with Azure Stream Analytics como entrada e Stream data from Azure Stream Analytics into Confluent Cloud como saída.

Importante

O Confluent Cloud suporta autenticação através do uso de API Keys, OAuth ou single log-on (SSO) SAML. O Azure Stream Analytics não suporta autenticação de início de sessão único (SSO) OAuth ou SAML. Pode ligar-se à Confluent Cloud usando uma API Key com acesso ao nível do tópico através do protocolo de segurança SASL_SSL.

  1. Escolha um dos quatro protocolos de segurança suportados que corresponda ao seu cluster Kafka, conforme descrito na tabela seguinte:

    Nome da propriedade Descrição
    mTLS Encriptação e autenticação. Suporta mecanismos de segurança PLAIN, SCRAM-SHA-256 e SCRAM-SHA-512.
    SASL_SSL Combina dois mecanismos de segurança diferentes, SASL (Camada Simples de Autenticação e Segurança) e Camada de Soquetes Seguros (SSL), para garantir que tanto a autenticação como a encriptação estão implementadas 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 utilizador mas sem encriptação.
    Nenhuma Sem autenticação e criptografia.
  2. Configure as credenciais para o protocolo selecionado no seu trabalho Azure Stream Analytics.

Integração com o Azure Key Vault

Azure Stream Analytics integra-se com Azure Key Vault para aceder a segredos armazenados necessários para autenticação e encriptação quando se usam mTLS ou protocolos de segurança SASL_SSL. A sua tarefa do Azure Stream Analytics liga-se ao Azure Key Vault através de uma identidade gerida para garantir uma ligaçã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. Para integrar o seu trabalho de Azure Stream Analytics com o Azure Key Vault, complete as seguintes tarefas, que as secções seguintes descrevem em detalhe.

Nota

Quando utiliza certificados de trust store com protocolos de segurança mTLS ou SASL_SSL, deve ter Azure Key Vault e identidade gerida configurada para o seu trabalho 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. Se o seu cofre de chaves estiver numa VNet ou permitir acesso apenas de redes específicas, tem de injetar a sua tarefa do Azure Stream Analytics numa VNet que contenha o cofre de chaves, ou injetar a sua tarefa do Azure Stream Analytics numa VNet e, em seguida, ligar o seu cofre de chaves à VNet que contém a tarefa, utilizando pontos finais de serviço.

  1. Configura o cofre de chaves com as permissões necessárias.
  2. Carrega o teu certificado no cofre de chaves como segredo.
  3. Configure a identidade gerida para o seu trabalho no Azure Stream Analytics.
  4. Conceda permissão ao seu trabalho de Stream Analytics para aceder ao certificado no cofre de chaves.

Configure o cofre de chaves com permissões

Para criar um recurso de cofre de chaves, consulte Início Rápido: Criar um cofre de chaves usando o portal Azure. Precisa de acesso do Key Vault Administrator ao seu Key vault para carregar certificados. Para conceder acesso de administrador, siga estes passos:

Nota

Necessita de permissões de Owner para conceder outras permissões do cofre de chaves.

  1. Selecione Controlo de acesso (IAM) .

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

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

    Configuração Valor
    Função 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>

Carregue o certificado no cofre de chaves

Certifique-se de que tem o CLI do Azure configurado localmente com o PowerShell. Para orientações sobre como configurar o CLI do Azure, consulte Começar com o CLI do Azure.

Os passos seguintes permitem carregar o certificado como um segredo para o seu cofre de chaves.

Importante

Deve ter permissões do Key Vault Administrator para o seu Key vault para que este comando funcione corretamente. Deve carregar o certificado em segredo. Você deve usar a CLI do Azure para carregar certificados como segredos para seu cofre de chaves. O seu trabalho no Azure Stream Analytics falha quando o certificado usado para autenticação expira. Para resolver este problema, atualize ou substitua o certificado no seu cofre de chaves e reinicie o seu trabalho no Azure Stream Analytics.

  1. Entre na CLI do Azure.

    az login
    
  2. Ligue-se à subscrição que contém o seu cofre de chaves.

    az account set --subscription <subscription name>
    
  3. Carrega o certificado em segredo. Substitui <your key vault> pelo nome do cofre de chaves, <name of the secret> por qualquer nome que queiras dar ao segredo, e <file path to certificate> pelo caminho para o ficheiro 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 identidade gerenciada

O Azure Stream Analytics requer identidade gerida para aceder ao cofre de chaves. Configure o seu trabalho Azure Stream Analytics para usar identidade gerida indo ao separador Identidade Gerida em Configurar.

Para configurar a identidade gerida, siga estes passos:

  1. Selecione o separador Identidade Gerida em Configurar.

    Captura de ecrã a mostrar como configurar a identidade gerida para um trabalho do Azure Stream Analytics.

  2. Selecione Switch Identity e selecione a identidade a usar com o trabalho: identidade atribuída ao sistema ou identidade atribuída ao utilizador.

  3. No caso da identidade atribuída pelo utilizador, selecione a subscrição onde está localizada a sua identidade atribuída pelo utilizador e selecione o nome da sua identidade.

  4. Revise e selecione Guardar.

Conceda permissões de trabalho ao Stream Analytics para aceder ao certificado

Para que a sua tarefa do Azure Stream Analytics leia o segredo no seu cofre de chaves, a tarefa deve ter permissão de acesso ao cofre de chaves.

Para conceder permissões ao seu trabalho de Stream Analytics, siga estes passos:

  1. Selecione Controlo de acesso (IAM) .

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

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

    Configuração Valor
    Função Utilizador do Key Vault Secrets
    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>

Limitações e considerações de entrada de Kafka

Se o seu cluster Kafka estiver dentro de uma rede virtual ou atrás de um firewall, configure o seu trabalho Azure Stream Analytics para aceder ao seu tópico Kafka usando um link privado ou uma configuração de rede dedicada. Para mais informações, consulte Executar a sua tarefa do Azure Stream Analytics numa Rede Virtual do Azure.

Considere as seguintes limitações ao usar Kafka como fonte de entrada:

  1. Quando configurar o seu trabalho Azure Stream Analytics para usar Rede Virtual/SWIFT, configure o trabalho com pelo menos seis unidades de streaming ou uma unidade de streaming V2.
  2. Quando usas mTLS ou SASL_SSL com Azure Key Vault, tens de converter a tua Java Key Store para formato PEM.
  3. A versão mínima do Kafka à qual o Azure Stream Analytics pode ligar-se é a versão 0.10.
  4. O Azure Stream Analytics não suporta autenticação para o Confluent Cloud usando OAuth ou SAML single log-on (SSO). Deve usar uma API Key através do protocolo SASL_SSL.

Para ajuda direta com a entrada Kafka do Azure Stream Analytics, contacte askasa@microsoft.com.