ACL de Apache Kafka - Transmisión gestionadada de Amazon para Apache Kafka

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ACL de Apache Kafka

Apache Kafka tiene un autorizador conectable y se suministra con una implementación de autorizador. out-of-box Amazon MSK habilita este autorizador en el archivo server.properties de los agentes.

Las ACL de Apache Kafka tienen el formato «La P principal es la operación O [permitida/denegada] desde el host H en cualquier recurso R que coincida con el RP». ResourcePattern Si RP no coincide con un recurso específico R, R no tiene ACL asociadas y, por lo tanto, nadie más que los superusuarios tiene permiso para acceder a R. Para cambiar este comportamiento de Apache Kafka, establezca la propiedad allow.everyone.if.no.acl.found en true. Amazon MSK lo establece como true de forma predeterminada. Esto significa que con los clústeres de Amazon MSK, si no establece explícitamente las ACL en un recurso, todos los principales pueden acceder a este recurso. Si habilita las ACL en un recurso, sólo los principales autorizados pueden acceder a él. Si desea restringir el acceso a un tema y autorizar a un cliente mediante la autenticación mutua de TLS, agregue ACL mediante la CLI del autorizador de Apache Kafka. Para obtener más información acerca de cómo agregar, eliminar y enumerar ACL, consulte la Interfaz de línea de comandos de Kafka.

Además del cliente, también debe conceder a todos sus agentes acceso a sus temas para que los agentes puedan replicar mensajes desde la partición principal. Si los agentes no tienen acceso a un tema, se produce un error en la replicación del tema.

Adición o eliminación del acceso de lectura y escritura a un tema
  1. Agregue sus agentes a la tabla de ACL para permitirles leer de todos los temas que tengan ACL en su lugar. Para conceder a los agentes acceso de lectura a un tema, ejecute el siguiente comando en un equipo cliente que pueda comunicarse con el clúster de MSK.

    Reemplace el Nombre-distinguido por el DNS de cualquiera de los agentes de arranque del clúster y, a continuación, reemplace la cadena antes del primer punto de este nombre distintivo por un asterisco (*). Por ejemplo, si uno de los agentes de arranque del clúster tiene el DNS b-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com, reemplace Distinguished-Name en el siguiente comando por *.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com. Para obtener información sobre cómo obtener los agentes de arranque, consulte Obtención de agentes de arranque para un clúster de 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 acceso de lectura a un tema, ejecute el siguiente comando en su máquina del cliente. Si usa una autenticación TLS mutua, use el mismo Distinguished-Name que utilizó al crear la clave 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 eliminar el acceso de lectura, puede ejecutar el mismo comando, sustituyendo --add por --remove.

  3. Para conceder acceso de escritura a un tema, ejecute el siguiente comando en su máquina del cliente. Si usa una autenticación TLS mutua, use el mismo Distinguished-Name que utilizó al crear la clave 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 eliminar el acceso de escritura, puede ejecutar el mismo comando, sustituyendo --add por --remove.