Apache Kafka ACLs - Amazon Managed Streaming for Apache Kafka

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Apache Kafka ACLs

O Apache Kafka tem um autorizador conectável e vem com uma implementação autorizadora. out-of-box O Amazon MSK habilita esse autorizador no arquivo server.properties dos agentes.

O Apache Kafka ACLs tem o formato “Principal P é [Permitida/Negada] Operação O do Host H em qualquer recurso R correspondente a RP”. ResourcePattern Se RP não corresponder a um recurso específico R, então R não tem nenhum associado e ACLs, portanto, ninguém além de superusuários tem permissão para acessar R. Para alterar esse comportamento do Apache Kafka, você define a propriedade como verdadeira. allow.everyone.if.no.acl.found O Amazon MSK a define como true por padrão. Isso significa que, com os clusters do Amazon MSK, se você não definir ACLs explicitamente um recurso, todos os principais poderão acessar esse recurso. Se você ACLs ativar um recurso, somente os diretores autorizados poderão acessá-lo. Se você quiser restringir o acesso a um tópico e autorizar um cliente usando a autenticação mútua TLS, adicione ACLs usando a CLI autorizadora do Apache Kafka. Para obter mais informações sobre adição, remoção e listagem ACLs, consulte Interface de linha de comando de autorização do Kafka.

Além do cliente, também é necessário conceder a todos os agentes acesso aos seus tópicos para que os agentes possam replicar mensagens da partição primária. Se os agentes não tiverem acesso a um tópico, ocorrerá uma falha na replicação dele.

Como adicionar ou remover o acesso de leitura e gravação a um tópico
  1. Adicione seus corretores à tabela da ACL para permitir que eles leiam todos os tópicos existentes ACLs . Para conceder acesso de leitura a um tópico para os seus agentes, execute o comando a seguir em uma máquina cliente capaz de se comunicar com o cluster do MSK.

    Distinguished-NameSubstitua pelo DNS de qualquer um dos corretores de bootstrap do seu cluster e, em seguida, substitua a string antes do primeiro ponto nesse nome distinto por um asterisco (). * Por exemplo, se um dos corretores de bootstrap do seu cluster tiver o DNSb-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com, Distinguished-Name substitua o comando a seguir por. *.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com Para ver informações sobre como obter os agentes de bootstrap, consulte Obter os agentes de bootstrap para um cluster do Amazon MSK.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name
  2. Para conceder acesso de leitura a um tópico, execute o comando a seguir na máquina de cliente. Se você usa a autenticação TLS mútua, use a mesma usada Distinguished-Name quando criou a chave privada.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name

    Para remover o acesso de leitura, é possível executar o mesmo comando, substituindo --add por --remove.

  3. Para conceder acesso de gravação a um tópico, execute o comando a seguir na máquina de cliente. Se você usa a autenticação TLS mútua, use a mesma usada Distinguished-Name quando criou a chave privada.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Write --topic Topic-Name

    Para remover o acesso de gravação, é possível executar o mesmo comando, substituindo --add por --remove.