Ajouter une entrée de LCA à une LCA Managed Kafka

Vous pouvez ajouter une seule règle d'autorisation (appelée entrée LCA) à une ressource LCA Managed Kafka sans remplacer la liste complète des entrées. Cela est utile pour accorder des autorisations spécifiques de manière incrémentielle.

Cette opération est analogue à la création d'une liaison ACL Apache Kafka unique. Il n'est pas nécessaire que la ressource LCA existe déjà, ni qu'un eTag soit disponible pour le contrôle de la concurrence.

Rôles et autorisations nécessaires

Pour obtenir les autorisations nécessaires pour ajouter une entrée ACL, demandez à votre administrateur de vous accorder le rôle IAM Éditeur des LCA Kafka gérés (roles/managedkafka.aclEditor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour ajouter une entrée ACL. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour ajouter une entrée ACL :

  • Accordez cette autorisation sur le cluster parent : managedkafka.acls.updateEntries

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Le rôle Éditeur de LCA Managed Kafka (roles/managedkafka.aclEditor) contient l'autorisation nécessaire pour ajouter ou supprimer des entrées de LCA individuelles. Pour en savoir plus, consultez Rôles prédéfinis de Google Cloud Managed Service pour Apache Kafka.

Ajouter une entrée LCA

  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. Exécutez la commande 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

    Remplacez les éléments suivants :

    • ACL_ID (obligatoire) : ID unique de la ressource LCA Managed Kafka à laquelle vous souhaitez ajouter une entrée LCA. Cela permet d'identifier le modèle de ressource auquel la nouvelle entrée s'applique. Pour en savoir plus sur l'ID de la LCA, consultez ID de la LCA.
    • CLUSTER_ID (obligatoire) : ID du cluster contenant la ressource ACL.
    • LOCATION (obligatoire) : région dans laquelle se trouve le cluster. Consultez les emplacements compatibles.
    • PRINCIPAL (obligatoire) : compte principal (utilisateur ou compte de service) auquel s'applique l'entrée ACL. Utilisez le format User:{google_service_account_email} ou le caractère générique User:*.
    • OPERATION (obligatoire) : type d'opération que l'entrée de la LCA autorise ou refuse. Les valeurs autorisées sont ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS et IDEMPOTENT_WRITE.
    • PERMISSION_TYPE (facultatif, valeur par défaut : ALLOW) : type d'accès configuré (ALLOW ou DENY).
    • HOST (facultatif, valeur par défaut : *) : hôte client. Pour Google Cloud Managed Service pour Apache Kafka, cette valeur doit être définie sur le caractère générique '*'.

Exemple de commande

Exécutez la commande suivante pour autoriser un compte de service spécifique à lire un sujet nommé test-topic dans le cluster test-cluster de la région 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' \

Voici un exemple de résultat :

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

Le résultat de la commande add-acl-entry fournit des informations sur l'état de la LCA :

  • acl : cette section décrit la ressource LCA mise à jour après l'ajout de la nouvelle entrée.
    • aclEntries : il s'agit d'une liste contenant toutes les entrées de contrôle des accès pour cette LCA. Dans cet exemple, il inclurait désormais l'entrée qui vient d'être ajoutée. Chaque entrée comporte les champs suivants :
      • host : hôte de l'entrée de la LCA.
      • operation : opération Kafka à laquelle s'applique cette entrée.
      • permissionType : indique si l'accès est ALLOW ou DENY.
      • principal : utilisateur ou compte de service auquel cette entrée est associée.
    • etag : il s'agit de l'étiquette d'entité pour la LCA mise à jour. Il est utilisé pour le contrôle de simultanéité optimiste lors des mises à jour ultérieures. La valeur change après l'ajout d'une entrée.
    • name : identifiant unique de la ressource LCA. Il suit le format projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.
    • patternType : type de modèle de ressource pour cette LCA.
    • resourceName : nom de la ressource Kafka à laquelle s'applique cette ACL.
    • resourceType : type de ressource Kafka.
  • aclCreated : valeur booléenne indiquant si la ressource ACL a été créée suite à l'ajout de cette entrée.

Étapes suivantes

Apache Kafka® est une marque déposée d'Apache Software Foundation ou de ses filiales aux États-Unis et/ou dans d'autres pays.