Crea un ACL Kafka gestito

Gli elenchi di controllo dell'accesso dell'accesso (ACL) Kafka gestiti forniscono un'autorizzazione granulare per le operazioni all'interno del cluster Managed Service per Apache Kafka. La creazione di una risorsa ACL Kafka gestita definisce un insieme di regole di autorizzazione per un pattern di risorse Kafka specifico. Per i concetti di base, consulta la pagina Controllo dell'accesso con IAM e ACL Kafka.

Prima di iniziare

Assicurati di avere un cluster Managed Service per Apache Kafka esistente.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per creare un ACL Managed Kafka, 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 creare un ACL Managed Kafka. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un ACL Managed Kafka sono necessarie le seguenti autorizzazioni:

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

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

Il ruolo Editor ACL Kafka gestito (roles/managedkafka.aclEditor) concede le autorizzazioni per creare, visualizzare, aggiornare ed eliminare le risorse ACL. Per saperne di più sul ruolo, consulta Ruoli predefiniti di Managed Service per Apache Kafka.

Proprietà di un ACL Kafka gestito

Quando crei una risorsa ACL Kafka gestita, devi definire le seguenti proprietà:

ID ACL

Si tratta dell'identificatore univoco della risorsa ACL Kafka gestita all'interno del cluster e della località. La struttura di ACL_ID definisce anche il pattern di risorse (tipo di risorsa, nome risorsa, tipo di pattern) a cui si applicano le regole ACL.

Scegli un ACL_ID in base al pattern di risorse che vuoi scegliere come target per l'associazione ACL:

  • Cluster: cluster (si applica alla risorsa cluster stessa)

  • Argomento specifico: topic/{topic_name}

  • Gruppo specifico: consumerGroup/{group_name}

  • ID transazionale specifico: transactionalId/{transactional_id}

  • Tutti gli argomenti con un prefisso: topicPrefixed/{prefix}

  • Tutti i gruppi di consumatori con un prefisso: consumerGroupPrefixed/{prefix}

  • Tutti gli ID transazionali con un prefisso: transactionalIdPrefixed/{prefix}

  • Tutti gli argomenti: allTopics (rappresenta topic/*)

  • Tutti i gruppi: allConsumerGroups (rappresenta consumerGroup/*)

  • Tutti gli ID transazionali: allTransactionalIds (rappresenta transactionalId/*)

Per maggiori informazioni, consulta le linee guida per assegnare un nome a una risorsa Managed Service per Apache Kafka.

Non puoi modificare l'ID ACL dopo la creazione. È immutabile.

Voci ACL

Questo è l'elenco delle regole di autorizzazione specifiche che si applicano al pattern di risorsa definito dall'ID ACL.

  • Quando crei la risorsa, devi fornire almeno una voce ACL; un elenco vuoto non è consentito.

  • Il numero massimo di voci consentite per risorsa ACL Kafka gestita è 100. Se hai bisogno di più regole per un singolo pattern di risorse, devi gestire gli elenchi ACL direttamente utilizzando gli strumenti standard di Apache Kafka.

  • Ogni voce ACL contiene i seguenti campi:

    • Entità:l'utente o il account di servizio a cui si applica la regola. Specifica utilizzando il formato User:{google_service_account_email} o il carattere jolly User:*.

    • Operation:il tipo di operazione Kafka, ad esempio ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS o IDEMPOTENT_WRITE (senza distinzione tra maiuscole e minuscole). Per le combinazioni valide di operazioni e tipi di risorse, consulta Operations and Resources on Protocols nella documentazione di Apache Kafka.

    • Permission-type:uno tra ALLOW o DENY (senza distinzione tra maiuscole e minuscole).

    • Host: deve essere impostato sul carattere jolly * per Managed Service per Apache Kafka.

Puoi fornire queste voci direttamente dalla riga di comando utilizzando il flag --acl-entry o fornendo un file JSON o YAML utilizzando il flag --acl-entries-from-file.

Proprietà del pattern di risorsa di sola lettura

Quando crei un ACL, Managed Service per Apache Kafka compila i seguenti campi del pattern di risorse in base all'ID ACL fornito:

  • Tipo di risorsa: il tipo di risorsa ACL derivato dal nome. Uno dei seguenti valori: CLUSTER, TOPIC, GROUP o TRANSACTIONAL_ID.

  • Nome risorsa: il nome della risorsa ACL (o il prefisso corrispondente, per il tipo di pattern PREFIXED) derivato dal nome. Per il tipo di risorsa CLUSTER, questo valore è sempre "kafka-cluster". Può essere il valore letterale jolly "*".

  • Tipo di pattern ACL: il tipo di pattern ACL derivato dal nome. Uno tra: LITERAL o PREFIXED.

Questi campi sono di sola output e vengono forniti per facilitare la mappatura delle risorse ACL Kafka gestite ai binding ACL Kafka.

ETag

L'Etag viene utilizzato per controllo della contemporaneità. Un ETag viene restituito nella risposta alle operazioni GetAcl e CreateAcl. I chiamanti sono tenuti a inserire questo ETag nella richiesta a UpdateAcl per assicurarsi che le modifiche vengano applicate alla stessa versione delle voci ACL esistenti nel cluster Kafka.

Un carattere terminale 'T' nell'Etag indica che le voci ACL sono troncate. Nel cluster Kafka esistono altre voci per l'ACL, ma non possono essere restituite nell'ACL a causa dei limiti dei campi ripetuti.

Crea un 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 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 \

    Sostituisci quanto segue:

    • ACL_ID (obbligatorio): l'ID univoco per la risorsa ACL Managed Kafka. Definisce il pattern della risorsa. Per saperne di più sull'ID ACL, consulta ID ACL.
    • CLUSTER_ID (obbligatorio): l'ID del cluster in cui viene creata la risorsa ACL.
    • LOCATION (obbligatorio): la regione in cui si trova il cluster, ad esempio us-central1. Consulta le località supportate.
    • Devi specificare uno dei seguenti flag per fornire le voci ACL:
      • PATH_TO_FILE (obbligatorio): percorso di un file JSON o YAML locale contenente l'elenco delle voci ACL nel formato richiesto.
      • --acl-entry=principal=PRINCIPAL,operation=OPERATION, permission-type=PERMISSION-TYPE,host=HOST (obbligatorio): specifica direttamente una singola voce ACL. Ripeti questo flag per ogni voce che vuoi aggiungere.

Utilizza --acl-entry

Esegui il comando gcloud managed-kafka acls create per fornire direttamente le voci ACL. Puoi eseguire il comando più volte per specificare più voci ACL per un ACL.

gcloud managed-kafka acls create ACL_ID \
  --cluster=CLUSTER_ID \
  --location=LOCATION \
  --acl-entry=principal=PRINCIPAL,operation=OPERATION, \
  permission-type=PERMISSION-TYPE,host=HOST\

Sostituisci quanto segue:

  • ACL_ID (obbligatorio): l'ID della nuova risorsa ACL, ad esempio topic/my-topic o cluster.

  • CLUSTER_ID (obbligatorio): l'ID del tuo cluster.

  • LOCATION (obbligatorio): la regione del cluster, ad esempio us-central1.

  • --acl-entry (obbligatorio): specifica una voce ACL. Ripeti il flag per più voci.

    • PRINCIPAL_1, PRINCIPAL_2: il principal per la voce ACL, ad esempio 'User:admin@example.iam.gserviceaccount.com o 'User:*'.

    • OPERATION_1, OPERATION_2: il tipo di operazione, ad esempio ALL o READ.

    • PERMISSION_1, PERMISSION_2: il tipo di autorizzazione, ad esempio ALLOW o DENY.

    • HOST_1, HOST_2: l'host per la voce dell'ACL. Per Google Cloud Managed Service per Apache Kafka, questo deve essere impostato sul carattere jolly '*'.

Utilizza --acl-entries-from-file

  1. Crea un file locale come acl_entries.yaml con le voci ACL richieste in 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. Esegui il comando gcloud managed-kafka acls create, facendo riferimento al file:

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

    Sostituisci quanto segue:

    • ACL_ID (obbligatorio): l'ID della nuova risorsa ACL, ad esempio topic/my-topic o cluster.

    • CLUSTER_ID (obbligatorio): l'ID del tuo cluster.

    • LOCATION (obbligatorio): la regione del cluster, ad esempio us-central1.

    • acl_entries.yaml (obbligatorio): il percorso del file locale contenente l'elenco delle voci ACL.

Passaggi successivi

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