/
Configuração de ACL's

ESTE É UM CONTEÚDO EM DESENVOLVIMENTO E NÃO DEVE SER CONSIDERADO COMO VERSÃO FINAL!
Clique aqui para maiores informações

Configuração de ACL's

Até este ponto, foi realizada a configuração do servidor Kafka, de um producer e de um consumer. No entanto, ambos, com seus respectivos certificados, possuem acesso irrestrito a qualquer tópico, o que não corresponde ao comportamento desejado. Portanto, é necessário tornar o servidor mais restritivo.

Para isso, deve-se editar o arquivo config/kraft/server-ofb.properties e descomentar as últimas três linhas presentes no arquivo, de modo que as seguintes opções fiquem ativas:

authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer allow.everyone.if.no.acl.found=false super.users=User:ANONYMOUS

As configurações acima estabelecem que:

  • O servidor Kafka passará a utilizar um autorizador;

  • Esse autorizador, por padrão, negará qualquer conexão que não tenha recebido permissão explícita;

  • A configuração abaixo é apenas um exemplo e deve ser comparada com a política de segurança vigente em sua empresa:

    • O usuário ANONYMOUS será definido como superusuário para que o servidor consiga executar tarefas administrativas.

Após a edição das configurações, é necessário reiniciar o servidor Kafka para que as alterações sejam aplicadas.

Caso seja realizada uma tentativa de conexão como producer, o prompt > será aberto, mas ao enviar qualquer evento, ocorrerá um erro do tipo TOPIC_AUTHORIZATION_FAILED.

Da mesma forma, ao tentar se conectar como consumer, o prompt não ficará aguardando eventos.

Criando ACL para o producer

Com a confirmação de que as ACLs estão restringindo o acesso, deve-se habilitar o acesso do producer com base no subject de seu certificado.

Inicialmente, é necessário extrair o subject do certificado por meio do seguinte comando:

openssl x509 -in ssl/kafka-producer.crt -noout -subject -nameopt RFC2253

A resposta esperada será:

subject=CN=producer

O subject real corresponde à string sem o prefixo subject=, ou seja, CN=producer.

Para conceder permissão ao producer no tópico ssl_test_topic para o usuário com o certificado de subject CN=producer, execute-se o seguinte comando:

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal "User:CN=producer" --producer --topic 'ssl_test_topic'

Após a execução do comando acima, será possível conectar-se novamente ao tópico como producer e enviar eventos utilizando o seguinte comando:

Criando ACL para o consumer

Inicialmente é preciso extrair o subject do certificado, segue exemplo abaixo:

A resposta deste comando deve ser:

subject=CN=consumer

O subject real é essa string porém sem o prefixo subject=, portanto no comando iremos usar apenas o restante (CN=consumer).

Para dar permissão como consumer no tópico ssl_test_topic para o usuário com o certificado com o subject CN=consumer, execute o comando abaixo:

O mesmo procedimento deve ser realizado para o consumer.

Inicialmente, deve-se extrair o subject do certificado com o seguinte comando:

Dessa forma, o acesso ao servidor Kafka estará devidamente controlado, garantindo a segurança na comunicação entre os componentes envolvidos.

Related content

Configurando Certificados
Configurando Certificados
More like this
Requisitos não funcionais e Ações Operacionais
Requisitos não funcionais e Ações Operacionais
More like this
Fluxo de especificação dos documentos (Segurança)
Fluxo de especificação dos documentos (Segurança)
More like this
08. Cadastrando um Authorisation Server
08. Cadastrando um Authorisation Server
More like this
08. Cadastrando um Authorisation Server
08. Cadastrando um Authorisation Server
More like this

ESTE É UM CONTEÚDO EM DESENVOLVIMENTO E NÃO DEVE SER CONSIDERADO COMO VERSÃO FINAL!
Clique aqui para maiores informações