Las listas de control de acceso (LCA) administradas de Kafka proporcionan una autorización detallada para las operaciones dentro de tu clúster de Managed Service para Apache Kafka. La creación de un recurso de ACL de Kafka administrado define un conjunto de reglas de permisos para un patrón de recursos de Kafka específico. Para conocer los conceptos básicos, consulta Control de acceso con la IAM y las LCA de Kafka.
Antes de comenzar
Asegúrate de tener un clúster de Managed Service para Apache Kafka existente.
Roles y permisos requeridos
Para obtener los permisos que necesitas
para crear una LCA de Kafka administrado,
pídele a tu administrador que te otorgue el
rol de IAM de editor de LCA de Kafka administrado (roles/managedkafka.aclEditor)
en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear una LCA de Kafka administrado. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un ACL de Kafka administrado:
-
Otorga este permiso en el clúster principal:
managedkafka.acls.create
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
El rol Editor de ACL de Kafka administrado (roles/managedkafka.aclEditor) otorga permisos para crear, ver, actualizar y borrar recursos de ACL.
Para obtener más información sobre el rol, consulta Roles predefinidos de Managed Service para Apache Kafka.
Propiedades de un ACL de Kafka administrado
Cuando creas un recurso de ACL de Kafka administrado, debes definir las siguientes propiedades:
ID de la LCA
Es el identificador único del recurso de ACL de Kafka administrado dentro del clúster y la ubicación. La estructura de ACL_ID también define el patrón de recursos (tipo de recurso, nombre del recurso, tipo de patrón) al que se aplican las reglas de la ACL.
Elige un ACL_ID según el patrón de recursos al que deseas segmentar la vinculación de la LCA:
Clúster:
cluster(se aplica al recurso del clúster en sí)Tema específico:
topic/{topic_name}Grupo específico:
consumerGroup/{group_name}ID de transacción específico:
transactionalId/{transactional_id}Todos los temas con un prefijo:
topicPrefixed/{prefix}Todos los grupos de consumidores con un prefijo:
consumerGroupPrefixed/{prefix}Todos los IDs de transacción con un prefijo:
transactionalIdPrefixed/{prefix}Todos los temas:
allTopics(representatopic/*)Todos los grupos:
allConsumerGroups(representaconsumerGroup/*)Todos los IDs de transacción:
allTransactionalIds(representatransactionalId/*)
Para obtener más información, consulta los Lineamientos para asignarles nombres a los recursos de Servicio administrado para Apache Kafka.
No puedes cambiar el ID de la ACL después de crearla. Es inmutable.
Entradas de LCA
Es la lista de reglas de permisos específicos que se aplican al patrón de recursos definido por el ID de la LCA.
Debes proporcionar al menos una entrada de LCA cuando crees el recurso. No se permite una lista vacía.
La cantidad máxima de entradas permitidas por recurso de ACL de Kafka administrado es 100. Si necesitas más reglas para un solo patrón de recursos, debes administrar las ACL directamente con las herramientas estándar de Apache Kafka.
Cada entrada de la LCA contiene los siguientes campos:
Principal: Es el usuario o la cuenta de servicio a la que se aplica la regla. Especifica con el formato
User:{google_service_account_email}o usa el comodínUser:*.Operación: Es el tipo de operación de Kafka, como
ALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSoIDEMPOTENT_WRITE(no distingue mayúsculas de minúsculas). Para conocer las combinaciones válidas de operación y tipo de recurso, consulta Operaciones y recursos en protocolos en la documentación de Apache Kafka.Permission-type: Uno de
ALLOWoDENY(no distingue mayúsculas de minúsculas).Host: Debe establecerse en el comodín
*para Managed Service para Apache Kafka.
Puedes proporcionar estas entradas directamente en la línea de comandos con la marca --acl-entry o proporcionando un archivo JSON o YAML con la marca --acl-entries-from-file.
Propiedades del patrón de recursos solo de salida
Cuando creas una LCA, Managed Service para Apache Kafka completa los siguientes campos de patrones de recursos según el ID de LCA proporcionado:
Tipo de recurso: Es el tipo de recurso de la ACL derivado del nombre. Puede ser
CLUSTER,TOPIC,GROUPoTRANSACTIONAL_ID.Nombre del recurso: Es el nombre del recurso de la ACL (o el prefijo coincidente, para el tipo de patrón
PREFIXED) derivado del nombre. Para el tipo de recursoCLUSTER, este valor siempre es"kafka-cluster". Puede ser el literal comodín"*".Tipo de patrón de LCA: Es el tipo de patrón de LCA derivado del nombre. Uno de los siguientes:
LITERALoPREFIXED.
Estos campos son solo de salida y se proporcionan para facilitar la asignación de recursos de ACL de Kafka administrado a vinculaciones de ACL de Kafka.
ETag
El ETag se usa para el control de simultaneidad. Se devuelve un ETag en la respuesta a las operaciones GetAcl y CreateAcl. Los llamadores deben incluir ese ETag en la solicitud a UpdateAcl para asegurarse de que sus cambios se apliquen a la misma versión de las entradas de la LCA que existe en el clúster de Kafka.
Un carácter 'T' terminal en el ETag indica que las entradas de la LCA están truncadas. Existen más entradas para la LCA en el clúster de Kafka, pero no se pueden devolver en la LCA debido a los límites de campos repetidos.
Crea una LCA
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init Ejecuta el comando
gcloud managed-kafka acls create:gcloud managed-kafka acls create ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --acl-entries-from-file=PATH_TO_FILE | \ --acl-entry=principal=PRINCIPAL,operation=OPERATION, \ permission-type=PERMISSION-TYPE,host=HOST \
Reemplaza lo siguiente:
ACL_ID(obligatorio): Es el ID único del recurso de ACL de Kafka administrado. Esto define el patrón de recursos. Para obtener más información sobre el ID de la LCA, consulta ID de la LCA.CLUSTER_ID(obligatorio): Es el ID del clúster en el que se crea el recurso de LCA.LOCATION(obligatorio): Es la región en la que se encuentra el clúster, comous-central1. Consulta las ubicaciones admitidas.- Debes especificar una de las siguientes marcas para proporcionar las entradas de la LCA:
PATH_TO_FILE(obligatorio): Ruta de acceso a un archivo local JSON o YAML que contiene la lista de entradas de LCA en el formato requerido.--acl-entry=principal=PRINCIPAL,operation=OPERATION, permission-type=PERMISSION-TYPE,host=HOST(obligatorio): Especifica directamente una sola entrada de LCA. Repite esta marca para cada entrada que desees agregar.
Utilizar --acl-entry
Ejecuta el comando gcloud managed-kafka acls create para proporcionar entradas de LCA directamente. Puedes ejecutar el comando varias veces para especificar varias entradas de LCA para una LCA.
gcloud managed-kafka acls create ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --acl-entry=principal=PRINCIPAL,operation=OPERATION, \ permission-type=PERMISSION-TYPE,host=HOST\
Reemplaza lo siguiente:
ACL_ID(obligatorio): Es el ID del nuevo recurso de LCA, comotopic/my-topicocluster.CLUSTER_ID(obligatorio): Es el ID de tu clúster.LOCATION(obligatorio): La región de tu clúster, comous-central1.--acl-entry(obligatorio): Especifica una entrada de LCA. Repite la marca para varias entradas.PRINCIPAL_1,PRINCIPAL_2: Es la principal de la entrada de la LCA, como'User:admin@example.iam.gserviceaccount.como'User:*'.OPERATION_1,OPERATION_2: Es el tipo de operación, comoALLoREAD.PERMISSION_1,PERMISSION_2: Es el tipo de permiso, comoALLOWoDENY.HOST_1,HOST_2: Es el host de la entrada de la LCA. En el caso de Google Cloud Managed Service para Apache Kafka, este parámetro debe establecerse en el comodín'*'.
Utilizar --acl-entries-from-file
Crea un archivo local, como
acl_entries.yaml, con las entradas de LCA requeridas en formato YAML:--- aclEntries: - principal: User:admin@project.iam.gserviceaccount.com operation: READ permissionType: ALLOW host: "*" - principal: User:admin@project.iam.gserviceaccount.com operation: WRITE permissionType: ALLOW host: "*"Ejecuta el comando
gcloud managed-kafka acls createy haz referencia al archivo:gcloud managed-kafka acls create ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --acl-entries-from-file=acl_entries.yamlReemplaza lo siguiente:
ACL_ID(obligatorio): Es el ID del nuevo recurso de LCA, comotopic/my-topicocluster.CLUSTER_ID(obligatorio): Es el ID de tu clúster.LOCATION(obligatorio): Es la región de tu clúster, comous-central1.acl_entries.yaml(obligatorio): Es la ruta de acceso a tu archivo local que contiene la lista de entradas de la LCA.