Crea una LCA de Kafka administrado

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 (representa topic/*)

  • Todos los grupos: allConsumerGroups (representa consumerGroup/*)

  • Todos los IDs de transacción: allTransactionalIds (representa transactionalId/*)

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ín User:*.

    • Operación: Es el tipo de operación de Kafka, como ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS o IDEMPOTENT_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 ALLOW o DENY (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, GROUP o TRANSACTIONAL_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 recurso CLUSTER, 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:LITERAL o PREFIXED.

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

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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, como us-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, como topic/my-topic o cluster.

  • CLUSTER_ID (obligatorio): Es el ID de tu clúster.

  • LOCATION (obligatorio): La región de tu clúster, como us-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.com o 'User:*'.

    • OPERATION_1, OPERATION_2: Es el tipo de operación, como ALL o READ.

    • PERMISSION_1, PERMISSION_2: Es el tipo de permiso, como ALLOW o DENY.

    • 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

  1. 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: "*"
    
  2. Ejecuta el comando gcloud managed-kafka acls create y haz referencia al archivo:

    gcloud managed-kafka acls create ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --acl-entries-from-file=acl_entries.yaml
    

    Reemplaza lo siguiente:

    • ACL_ID (obligatorio): Es el ID del nuevo recurso de LCA, como topic/my-topic o cluster.

    • CLUSTER_ID (obligatorio): Es el ID de tu clúster.

    • LOCATION (obligatorio): Es la región de tu clúster, como us-central1.

    • acl_entries.yaml (obligatorio): Es la ruta de acceso a tu archivo local que contiene la lista de entradas de la LCA.

Próximos pasos

Apache Kafka® es una marca registrada de The Apache Software Foundation o sus afiliados en Estados Unidos y otros países.