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
-
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 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 formatoUser:{google_service_account_email}o il carattere jollyUser:*.OPERATION(obbligatorio): il tipo di operazione che la voce ACL concede o nega. I valori consentiti includonoALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSeIDEMPOTENT_WRITE.PERMISSION_TYPE(facoltativo, valore predefinitoALLOW): il tipo di accesso configurato:ALLOWoDENY.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 èALLOWoDENY.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 formatoprojects/{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.