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(rappresentatopic/*)Tutti i gruppi:
allConsumerGroups(rappresentaconsumerGroup/*)Tutti gli ID transazionali:
allTransactionalIds(rappresentatransactionalId/*)
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 jollyUser:*.Operation:il tipo di operazione Kafka, ad esempio
ALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSoIDEMPOTENT_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
ALLOWoDENY(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,GROUPoTRANSACTIONAL_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 risorsaCLUSTER, 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:
LITERALoPREFIXED.
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
-
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 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 esempious-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 esempiotopic/my-topicocluster.CLUSTER_ID(obbligatorio): l'ID del tuo cluster.LOCATION(obbligatorio): la regione del cluster, ad esempious-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.como'User:*'.OPERATION_1,OPERATION_2: il tipo di operazione, ad esempioALLoREAD.PERMISSION_1,PERMISSION_2: il tipo di autorizzazione, ad esempioALLOWoDENY.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
Crea un file locale come
acl_entries.yamlcon 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: "*"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.yamlSostituisci quanto segue:
ACL_ID(obbligatorio): l'ID della nuova risorsa ACL, ad esempiotopic/my-topicocluster.CLUSTER_ID(obbligatorio): l'ID del tuo cluster.LOCATION(obbligatorio): la regione del cluster, ad esempious-central1.acl_entries.yaml(obbligatorio): il percorso del file locale contenente l'elenco delle voci ACL.