Aggiungere una voce ACL a un ACL Kafka gestito

Puoi aggiungere una singola nuova regola di autorizzazione chiamata voce ACL a una risorsa ACL Kafka gestita senza sostituire l'intero elenco di voci. Questa funzionalità è utile per concedere autorizzazioni specifiche in modo incrementale.

Questa operazione è analoga alla creazione di un singolo binding ACL Apache Kafka. Non richiede che la risorsa ACL esista già e non richiede un eTag pecontrollo della contemporaneitàza.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per aggiungere una voce ACL, chiedi all'amministratore di concederti il ruolo IAM Managed Kafka ACL Editor (roles/managedkafka.aclEditor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per aggiungere una voce ACL. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per aggiungere una voce ACL sono necessarie le seguenti autorizzazioni:

  • Concedi questa autorizzazione sul cluster padre: managedkafka.acls.updateEntries

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Il ruolo Managed Kafka ACL Editor (roles/managedkafka.aclEditor) contiene l'autorizzazione necessaria per aggiungere o rimuovere singole voci ACL. Per maggiori dettagli, consulta Ruoli predefiniti di Google Cloud Managed Service per Apache Kafka.

Aggiungere una voce ACL

  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. Esegui il 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

    Sostituisci quanto segue:

    • ACL_ID (obbligatorio): l'ID univoco della risorsa ACL Kafka gestita a cui vuoi aggiungere una voce ACL. Questo identifica il pattern di risorse a cui si applica la nuova voce. Per saperne di più sull'ID ACL, consulta ID ACL.
    • CLUSTER_ID (obbligatorio): l'ID del cluster contenente la risorsa ACL.
    • LOCATION (obbligatorio): la regione in cui si trova il cluster. Consulta le località supportate.
    • PRINCIPAL (obbligatorio): l'entità (utente o account di servizio) a cui si applica la voce ACL. Utilizza il formato User:{google_service_account_email} o il carattere jolly User:*.
    • OPERATION (obbligatorio): il tipo di operazione che la voce ACL concede o nega. I valori consentiti includono ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS e IDEMPOTENT_WRITE.
    • PERMISSION_TYPE (facoltativo, valore predefinito ALLOW): il tipo di accesso configurato: ALLOW o DENY.
    • HOST (facoltativo, valore predefinito *): l'host client. Per Google Cloud Managed Service per Apache Kafka, questo valore deve essere impostato sul carattere jolly '*'.

Comando di esempio

Esegui questo comando per consentire a un account di servizio specifico di leggere da un argomento denominato test-topic nel cluster test-cluster nella regione 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' \

Di seguito è riportato un output di esempio:

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

L'output del comando add-acl-entry fornisce informazioni sullo stato ACL risultante:

  • acl: questa sezione descrive la risorsa ACL aggiornata dopo l'aggiunta della nuova voce.
    • aclEntries: questo è un elenco contenente tutte le voci di controllo dell'accesso per questo ACL. In questo esempio, ora includerà la voce appena aggiunta. Ogni voce ha i seguenti campi:
      • host: l'host per la voce ACL.
      • operation: l'operazione Kafka a cui si applica questa voce.
      • permissionType: se l'accesso è ALLOW o DENY.
      • principal: l'utente o il account di servizio a cui si riferisce questa voce.
    • etag: questo è il tag di entità per l'elenco di controllo dell'accesso aggiornato. Viene utilizzato percontrollo della contemporaneitàa ottimistico durante gli aggiornamenti successivi. Il valore cambia dopo l'aggiunta di una voce.
    • name: l'identificatore univoco della risorsa ACL. Segue il formato projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.
    • patternType: il tipo di pattern di risorsa per questo ACL.
    • resourceName: il nome della risorsa Kafka a cui si applica questo ACL.
    • resourceType: il tipo di risorsa Kafka.
  • aclCreated: un valore booleano che indica se la risorsa ACL è stata creata in seguito all'aggiunta di questa voce.

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o delle sue affiliate negli Stati Uniti e/o in altri paesi.