É possível adicionar uma única regra de permissão, chamada de entrada de ACL, a um recurso de ACL do Kafka gerenciado sem substituir toda a lista de entradas. Isso é útil para conceder permissões específicas de forma incremental.
Essa operação é análoga à criação de uma única vinculação de ACL do Apache Kafka. Ele não exige que o recurso ACL já exista nem um eTag para controle de simultaneidade.
Papéis e permissões necessárias
Para receber as permissões necessárias
para adicionar uma entrada de ACL,
peça ao administrador para conceder a você o
papel do IAM de Editor de ACLs do Kafka gerenciado (roles/managedkafka.aclEditor)
no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para adicionar uma entrada de ACL. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para adicionar uma entrada de ACL:
-
Conceda esta permissão no cluster pai:
managedkafka.acls.updateEntries
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
O papel Editor de ACL do Kafka gerenciado (roles/managedkafka.aclEditor)
contém a permissão necessária para adicionar ou remover entradas de ACL individuais. Para mais detalhes, consulte Funções predefinidas do serviço gerenciado do Google Cloud para Apache Kafka.
Adicionar uma entrada de 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 Execute o 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
Substitua:
ACL_ID(obrigatório): o ID exclusivo do recurso de ACL do Kafka gerenciado em que você quer adicionar uma entrada de ACL. Isso identifica o padrão de recurso a que a nova entrada se aplica. Para mais informações sobre o ID da ACL, consulte ID da ACL.CLUSTER_ID(obrigatório): o ID do cluster que contém o recurso de ACL.LOCATION(obrigatório): a região em que o cluster está localizado. Consulte Locais compatíveis.PRINCIPAL(obrigatório): o principal (usuário ou conta de serviço) a que a entrada da ACL se aplica. Use o formatoUser:{google_service_account_email}ou o caractere curingaUser:*.OPERATION(obrigatório): o tipo de operação que a entrada da ACL concede ou nega. Os valores permitidos incluemALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSeIDEMPOTENT_WRITE.PERMISSION_TYPE(opcional, valor padrãoALLOW): o tipo de acesso configurado:ALLOWouDENY.HOST(opcional, valor padrão*): o host do cliente. Para o serviço gerenciado do Google Cloud para Apache Kafka, esse campo precisa ser definido como o caractere curinga'*'.
Comando de amostra
Execute o comando a seguir para permitir que uma conta de serviço específica leia um
tópico chamado test-topic no cluster test-cluster na região
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' \
Confira um exemplo de saída:
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
A saída do comando add-acl-entry fornece informações sobre o estado da ACL resultante:
acl: esta seção descreve o recurso de ACL atualizado depois que a nova entrada foi adicionada.aclEntries: é uma lista que contém todas as entradas de controle de acesso para essa ACL. Neste exemplo, ele agora incluiria a entrada recém-adicionada. Cada entrada tem os seguintes campos:host: o host da entrada de ACL.operation: a operação do Kafka a que esta entrada se aplica.permissionType: se o acesso éALLOWouDENY.principal: o usuário ou a conta de serviço a que esta entrada se refere.
etag: a tag de entidade da ACL atualizada. Ele é usado para controle de simultaneidade otimista durante atualizações subsequentes. O valor muda depois que uma entrada é adicionada.name: o identificador exclusivo do recurso de ACL. Ele segue o formatoprojects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.patternType: o tipo de padrão de recurso para esta ACL.resourceName: o nome do recurso do Kafka a que esta ACL se aplica.resourceType: o tipo de recurso do Kafka.
aclCreated: um valor booleano que indica se o recurso ACL foi criado como resultado da adição desta entrada.