Agrega una entrada de LCA a una LCA de Kafka administrado

Puedes agregar una sola regla de permiso nueva, llamada entrada de LCA, a un recurso de LCA de Kafka administrado sin reemplazar toda la lista de entradas. Esto es útil para otorgar permisos específicos de forma incremental.

Esta operación es análoga a la creación de una sola vinculación de LCA de Apache Kafka. No requiere que el recurso de LCA ya exista ni un ETag para el control de simultaneidad.

Roles y permisos requeridos

Para obtener los permisos que necesitas para agregar una entrada de ACL, pídele a tu administrador que te otorgue el rol de IAM Editor de ACLs 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 agregar una entrada de ACL. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para agregar una entrada de ACL:

  • Otorga este permiso en el clúster principal: managedkafka.acls.updateEntries

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) contiene el permiso necesario para agregar o quitar entradas de ACL individuales. Para obtener más detalles, consulta Roles predefinidos de Google Cloud Managed Service para Apache Kafka.

Cómo agregar una entrada de 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 add-acl-entry:

    gcloud managed-kafka acls add-acl-entry ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --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 en el que deseas agregar una entrada de ACL. Identifica el patrón de recursos al que se aplica la entrada nueva. Para obtener más información sobre el ID de LCA, consulta ID de LCA.
    • CLUSTER_ID (obligatorio): Es el ID del clúster que contiene el recurso de ACL.
    • LOCATION (obligatorio): Es la región en la que se encuentra el clúster. Consulta las ubicaciones admitidas.
    • PRINCIPAL (obligatorio): Es la principal (usuario o cuenta de servicio) a la que se aplica la entrada de la LCA. Usa el formato User:{google_service_account_email} o el comodín User:*.
    • OPERATION (obligatorio): Es el tipo de operación que otorga o deniega la entrada de LCA. Los valores permitidos incluyen ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS y IDEMPOTENT_WRITE.
    • PERMISSION_TYPE (opcional, valor predeterminado ALLOW): Es el tipo de acceso configurado: ALLOW o DENY.
    • HOST (opcional, valor predeterminado *): Es el host del cliente. En el caso de Google Cloud Managed Service para Apache Kafka, este parámetro debe establecerse en el comodín '*'.

Comando de muestra

Ejecuta el siguiente comando para permitir que una cuenta de servicio específica lea un tema llamado test-topic en el clúster test-cluster en la región us-central1.

gcloud managed-kafka acls add-acl-entry topic/test-topic \
  --cluster=test-cluster \
  --location=us-central1 \
  --host='*' \
  --operation=READ \
  --permission-type=ALLOW \
  --principal='User:service-account@test-project.iam.gserviceaccount.com' \

A continuación, se muestra un ejemplo de resultado:

acl:
  aclEntries:
  - host: '*'
    operation: READ
    permissionType: ALLOW
    principal: 'User:service-account@test-project.iam.gserviceaccount.com'
  etag: W/another-new-etag
  name: projects/test-project/locations/us-central1/clusters/test-cluster/acls/topic/test-topic
  patternType: LITERAL
  resourceName: test-topic
  resourceType: TOPIC
aclCreated: false

El resultado del comando add-acl-entry proporciona información sobre el estado de la ACL resultante:

  • acl: En esta sección, se describe el recurso de LCA actualizado después de que se agregó la entrada nueva.
    • aclEntries: Es una lista que contiene todas las entradas de control de acceso para esta LCA. En este ejemplo, ahora incluiría la entrada que se acaba de agregar. Cada entrada tiene los siguientes campos:
      • host: Es el host de la entrada de la LCA.
      • operation: Es la operación de Kafka a la que se aplica esta entrada.
      • permissionType: Indica si el acceso es ALLOW o DENY.
      • principal: Es el usuario o la cuenta de servicio para los que se aplica esta entrada.
    • etag: Es la etiqueta de entidad para la LCA actualizada. Se usa para el control de simultaneidad optimista durante las actualizaciones posteriores. El valor cambia después de que se agrega una entrada.
    • name: Es el identificador único del recurso de LCA. Sigue el formato projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.
    • patternType: Es el tipo de patrón de recursos para esta LCA.
    • resourceName: Es el nombre del recurso de Kafka al que se aplica esta LCA.
    • resourceType: Es el tipo de recurso de Kafka.
  • aclCreated: Es un valor booleano que indica si el recurso de LCA se creó como resultado de agregar esta entrada.

¿Qué sigue?

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