La función de lista de control de acceso (ACL) de las instancias Professional Edition o Serverless de Message Queue for Apache Kafka permite otorgar permisos de operación específicos a usuarios SASL sobre recursos como temas y grupos, lo que facilita un control de acceso detallado.
Contexto
La empresa A adquirió Message Queue for Apache Kafka y necesita que el usuario A solo consuma mensajes de todos los temas en Message Queue for Apache Kafka, pero que no produzca mensajes hacia ningún tema en Message Queue for Apache Kafka.
Notas de uso
Para instancias de Internet o VPC, Kafka proporciona un usuario SASL predeterminado con permisos de lectura y escritura para todos los temas y grupos. Para lograr un control de permisos detallado, habilite las ACL, cree usuarios SASL personalizados y otórqueles los permisos necesarios para enviar y recibir mensajes desde Message Queue for Apache Kafka. Una vez habilitadas las ACL, los permisos del usuario SASL predeterminado dejan de ser válidos.
Después de habilitar la ACL, el envío de mensajes ya no crea temas automáticamente.
Requisitos previos
Su instancia de Message Queue for Apache Kafka debe cumplir con los siguientes requisitos:
La instancia es una edición Professional o Serverless.
La instancia tiene el estado Running.
La versión principal es 2.2.0 o posterior. Para obtener más información sobre cómo actualizar la versión principal, consulte Upgrade versions.
La versión secundaria es la más reciente. Para obtener más información sobre cómo actualizar la versión secundaria, consulte Upgrade instance version.
Paso 1: Habilitar la ACL
Después de actualizar la versión secundaria, habilite la ACL para la instancia en la consola de Message Queue for Apache Kafka.
Inicie sesión en la consola de ApsaraMQ for Kafka.
En la página Overview, seleccione una región en la sección Resource Distribution.
En la página Instances, haga clic en el nombre de la instancia destino.
En la página Instance Details, haga clic en Enable ACL en la esquina superior derecha de la sección Overview.
-
En el cuadro de diálogo Note, haga clic en OK y luego actualice manualmente la página.
Después de actualizar la página, el campo Status en la sección Basic Information de la página Instance Details cambia a Upgrading. El proceso finaliza cuando el campo Status cambia a Running.
ImportanteLa ACL se habilita únicamente después de completar la actualización. Posteriormente, podrá crear usuarios SASL, asignarles permisos y conectarse a la instancia mediante un endpoint SASL. La actualización tarda aproximadamente entre 15 y 20 minutos.
Paso 2: Crear un usuario SASL
Una vez habilitada la ACL para la instancia, cree un usuario SASL para el usuario A.
Inicie sesión en la consola de ApsaraMQ for Kafka.
En la página Overview, seleccione una región en la sección Resource Distribution.
En la página Instances, seleccione la instancia para la cual habilitó la ACL.
En la página Instance Details, haga clic en la pestaña Manage SASL Users. Para una instancia Serverless Edition, seleccione en el panel de navegación izquierdo.
En la página Manage SASL Users, haga clic en Create SASL User.
-
En el panel Create SASL User, configure los parámetros del usuario SASL y haga clic en OK.
Parámetro
Descripción
Username
El nombre del usuario SASL.
User Type
Message Queue for Apache Kafka admite los siguientes mecanismos SASL:
-
PLAIN: Un mecanismo sencillo de verificación mediante nombre de usuario y contraseña. Message Queue for Apache Kafka optimiza el mecanismo PLAIN para permitir la creación dinámica de usuarios SASL sin reiniciar la instancia.
-
SCRAM: Un mecanismo de autenticación mediante nombre de usuario y contraseña más seguro que PLAIN. En Message Queue for Apache Kafka, las instancias que no son Serverless utilizan SCRAM-SHA-256. Las instancias Serverless admiten SCRAM-SHA-512, que es la configuración predeterminada para SCRAM.
Password
La contraseña del usuario SASL.
Confirm Password
Introduzca la contraseña nuevamente para confirmarla.
Una vez creado el usuario, este aparece en la pestaña Manage SASL Users.
Para cambiar la contraseña del usuario SASL, haga clic en Change Password en la columna Actions. En el panel Change SASL User Password, establezca una New Password y confirme la contraseña en Confirm Password, y luego haga clic en OK.
Para eliminar el usuario SASL, haga clic en Delete en la columna Actions.
-
Paso 3: Otorgar permisos al usuario SASL
Después de crear el usuario SASL para el usuario A, otórguele permisos para leer mensajes de temas y grupos de consumidores.
En la página Instance Details, haga clic en la pestaña Manage SASL User Permissions.
En la pestaña Manage SASL User Permissions, haga clic en Grant Permission.
-
En el panel Grant Permission, configure los siguientes parámetros y haga clic en OK.
Parámetro
Descripción
Username
El nombre del usuario SASL. El comodín asterisco (*) representa todos los nombres de usuario.
Resource Type
Message Queue for Apache Kafka admite la autorización para los siguientes tipos de recursos:
-
Topic: Un tema de mensajes.
-
Group: Un grupo de consumidores.
-
Cluster: Una instancia.
-
Transactional ID: Un ID transaccional.
Match Mode
Message Queue for Apache Kafka admite los siguientes modos de coincidencia:
-
Exact Match: Coincide únicamente con los recursos cuyos nombres son idénticos al nombre de recurso introducido.
-
Prefix Match: Coincide con cualquier recurso cuyo nombre comience con el prefijo introducido.
Resource Name
El nombre del tema, grupo o clúster, o bien el ID transaccional. El comodín asterisco (*) representa todos los nombres de recursos.
Operation Type
Message Queue for Apache Kafka admite los siguientes tipos de operación:
-
Write
-
Read
-
Idempotent Write Operation
Importante-
Para el tipo de recurso Group, solo se admite la operación Read.
-
Para el tipo de recurso clúster, solo se admite la operación Idempotent Write Operation.
Para instancias Serverless Edition
Parámetro
Descripción
Username
El nombre del usuario SASL. El comodín asterisco (*) representa todos los nombres de usuario.
Resource Type
Message Queue for Apache Kafka admite la autorización para los siguientes tipos de recursos:
-
Topic: Un tema de mensajes.
-
Group: Un grupo de consumidores.
-
Cluster: Una instancia.
-
Transactional ID: Un ID transaccional.
Match Mode
Message Queue for Apache Kafka admite los siguientes modos de coincidencia:
-
Exact Match: Coincide únicamente con los recursos cuyos nombres son idénticos al nombre de recurso introducido.
-
Prefix Match: Coincide con cualquier recurso cuyo nombre comience con el prefijo introducido.
Resource Name
El nombre del tema, grupo o clúster, o bien el ID transaccional. El comodín asterisco (*) representa todos los nombres de recursos.
Source IP Address
Restringe el acceso a direcciones IP específicas o rangos de direcciones IP.
Authorization Method
-
ALLOW: Permite el acceso.
-
DENY: Deniega el acceso.
Operation Type
Message Queue for Apache Kafka admite los siguientes tipos de operación:
-
WRITE: Escritura
-
READ: Lectura
-
CREATE: Creación
-
DELETE: Eliminación
-
DESCRIBE: Consulta de metadatos e información de desplazamiento.
-
DESCRIBE_CONFIGS: Consulta de información de configuración.
-
IDEMPOTENT_WRITE: Escritura idempotente.
Importante-
Para clientes de la versión 3.0 o posterior, las escrituras idempotentes están habilitadas de forma predeterminada. Para enviar mensajes correctamente, debe establecer
enable.idempotence=truey otorgar el permiso IDEMPOTENT_WRITE. -
Al otorgar permisos de WRITE, READ, DELETE o ALTER, el permiso DESCRIBE se otorga de forma predeterminada.
-
Para el tipo de recurso clúster, solo se admite la operación IDEMPOTENT_WRITE.
Una vez completada la configuración, podrá consultar los permisos del usuario creado en la pestaña Manage SASL User Permissions. Puede filtrar los permisos por Resource Type, Match Mode, Resource Name y Username, y luego hacer clic en Search.
-
Operaciones relacionadas
Una vez otorgados los permisos, el usuario A puede conectarse a la instancia de Message Queue for Apache Kafka mediante un endpoint SASL y consumir mensajes con un SDK. Para conocer el procedimiento de conexión con un SDK, consulte SDK overview.
Para otorgar permisos a un usuario SASL mediante operaciones de API, consulte Create SASL User y Create ACL.
Para obtener más información sobre los endpoints SASL, consulte Endpoint comparison.