O Kafka oferece suporte à comunicação segura?
-
21-12-2019 - |
Pergunta
Tenho lido muita documentação do Apache Kafka, mas não consigo descobrir se o Kafka oferece suporte à comunicação segura entre produtores-corretores, corretores-consumidores e, especialmente, para comunicação entre data centers para replicação de corretores.
Solução
Atualizar:A partir da versão 0.9.0.0, a implementação SSL é adicionada ao Kafka.A configuração SSL deve ser adicionada explicitamente no lado do corretor.
É ainda possível habilitar SSL para comunicação entre corretores adicionando a seguinte propriedade ao arquivo de propriedades do corretor.
security.inter.broker.protocol=SSL
Em relação ao produtor e aos consumidores o SSL só é suportado pela nova API.
Para obter detalhes sobre geração de chave, certificado e configuração, consulte implantando SSL para Kafka
Lançamentos anteriores
Antes de 0.9.0.0 Kafka does not
suporta SSL/autenticação e, pelo que entendi, eles não o têm no roteiro da equipe próxima.Uma maneira poderia ser usar criptografia e enviar os dados criptografados por meio dos produtores.
No entanto eles têm esse discussão sobre a implementação da segurança no futuro.
Discussão semelhante pode ser encontrada aqui
ATUALIZAR
Obrigado a @ppearcy por suas descobertas
Provavelmente as coisas mudaram desde que isso foi postado, mas atualmente a segurança está no roteiro: https://cwiki.apache.org/confluence/display/KAFKA/Security
Outras dicas
Houve patches Para suportar a autenticação do cliente e proteger na entrega de mensagens de trânsitoMas note que ainda não chegou a nenhuma versão de produção. Há discussões interessantes e trabalho futuro que inclui autenticação do cliente, autorização, bem como criptografia de dados em repouso https://www.mail-archive.com/dev@kafka.apache.org/msg11664.html