Créer une LCA Managed Kafka

Les listes de contrôle des accès (LCA) Kafka gérées fournissent une autorisation précise pour les opérations au sein de votre cluster Managed Service pour Apache Kafka. La création d'une ressource LCA Managed Kafka définit un ensemble de règles d'autorisation pour un modèle de ressource Kafka spécifique. Pour en savoir plus sur les concepts de base, consultez Contrôle des accès avec IAM et les LCA Kafka.

Avant de commencer

Assurez-vous de disposer d'un cluster Managed Service pour Apache Kafka.

Rôles et autorisations nécessaires

Pour obtenir les autorisations nécessaires pour créer un LCA Kafka géré, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de 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 créer une LCA Managed Kafka. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un ACL Kafka géré :

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

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) accorde les autorisations nécessaires pour créer, afficher, mettre à jour et supprimer des ressources LCA. Pour en savoir plus sur ce rôle, consultez Rôles prédéfinis de Managed Service pour Apache Kafka.

Propriétés d'une LCA Managed Kafka

Lorsque vous créez une ressource LCA Managed Kafka, vous devez définir les propriétés suivantes :

ID de la LCA

Il s'agit de l'identifiant unique de la ressource LCA Managed Kafka dans le cluster et l'emplacement. La structure de ACL_ID définit également le modèle de ressource (type de ressource, nom de ressource, type de modèle) auquel s'appliquent les règles de la LCA.

Choisissez un ACL_ID en fonction du modèle de ressource que vous souhaitez cibler pour l'association ACL :

  • Cluster : cluster (s'applique à la ressource de cluster elle-même)

  • Thème spécifique : topic/{topic_name}

  • Groupe spécifique : consumerGroup/{group_name}

  • ID de transaction spécifique : transactionalId/{transactional_id}

  • Tous les thèmes comportant un préfixe : topicPrefixed/{prefix}

  • Tous les groupes de consommateurs avec un préfixe : consumerGroupPrefixed/{prefix}

  • Tous les ID de transaction comportant un préfixe : transactionalIdPrefixed/{prefix}

  • Tous les thèmes : allTopics (représente topic/*)

  • Tous les groupes : allConsumerGroups (représente consumerGroup/*)

  • Tous les ID de transaction : allTransactionalIds (représente transactionalId/*)

Pour en savoir plus, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka.

Une fois l'ID de la liste de contrôle d'accès créé, vous ne pouvez plus le modifier. Elle est immuable.

Entrées de LCA

Il s'agit de la liste des règles d'autorisation spécifiques qui s'appliquent au modèle de ressource défini par l'ID de la LCA.

  • Vous devez fournir au moins une entrée de LCA lorsque vous créez la ressource. Une liste vide n'est pas autorisée.

  • Le nombre maximal d'entrées autorisées par ressource LCA Managed Kafka est de 100. Si vous avez besoin de plus de règles pour un seul modèle de ressource, vous devez gérer les LCA directement à l'aide des outils Apache Kafka standards.

  • Chaque entrée de la LCA contient les champs suivants :

    • Entité principale : utilisateur ou compte de service auquel s'applique la règle. Spécifiez-le au format User:{google_service_account_email} ou utilisez le caractère générique User:*.

    • Opération : type d'opération Kafka, tel que ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS ou IDEMPOTENT_WRITE (non sensible à la casse). Pour connaître les combinaisons valides d'opérations et de types de ressources, consultez Opérations et ressources sur les protocoles dans la documentation Apache Kafka.

    • Permission-type : ALLOW ou DENY (non sensible à la casse).

    • Host (Hôte) doit être défini sur le caractère générique * pour Managed Service pour Apache Kafka.

Vous pouvez fournir ces entrées directement sur la ligne de commande à l'aide de l'indicateur --acl-entry ou en fournissant un fichier JSON ou YAML à l'aide de l'indicateur --acl-entries-from-file.

Propriétés du modèle de ressource en sortie uniquement

Lorsque vous créez une ACL, Managed Service pour Apache Kafka remplit les champs de modèle de ressource suivants en fonction de l'ID d'ACL fourni :

  • Type de ressource : type de ressource ACL dérivé du nom. Au choix : CLUSTER, TOPIC, GROUP ou TRANSACTIONAL_ID.

  • Nom de ressource : nom de ressource de la LCA (ou préfixe correspondant, pour le type de modèle PREFIXED) dérivé du nom. Pour le type de ressource CLUSTER, il s'agit toujours de "kafka-cluster". Peut être le littéral générique "*".

  • Type de modèle de la LCA : type de modèle de la LCA dérivé du nom. LITERAL ou PREFIXED.

Ces champs sont en sortie uniquement et sont fournis pour faciliter le mappage des ressources LCA Managed Kafka aux liaisons LCA Kafka.

ETag

L'Etag est utilisé pour le contrôle de simultanéité. Un ETag est renvoyé dans la réponse aux opérations GetAcl et CreateAcl. Les appelants doivent placer cet ETag dans la requête UpdateAcl pour s'assurer que leurs modifications sont appliquées à la même version des entrées ACL qui existe dans le cluster Kafka.

Un caractère 'T' terminal dans l'Etag indique que les entrées ACL sont tronquées. D'autres entrées pour la LCA existent sur le cluster Kafka, mais ne peuvent pas être renvoyées dans la LCA en raison des limites de champs répétés.

Créer une 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 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 \

    Remplacez les éléments suivants :

    • ACL_ID (obligatoire) : ID unique de la ressource LCA Managed Kafka. Cela définit le modèle de ressource. Pour en savoir plus sur l'ID de la LCA, consultez ID de la LCA.
    • CLUSTER_ID (obligatoire) : ID du cluster dans lequel la ressource ACL est créée.
    • LOCATION (obligatoire) : région où se trouve le cluster, par exemple us-central1. Consultez les emplacements compatibles.
    • Vous devez spécifier l'un des indicateurs suivants pour fournir les entrées ACL :
      • PATH_TO_FILE (obligatoire) : chemin d'accès à un fichier JSON ou YAML local contenant la liste des entrées ACL au format requis.
      • --acl-entry=principal=PRINCIPAL,operation=OPERATION, permission-type=PERMISSION-TYPE,host=HOST (obligatoire) : spécifie directement une seule entrée de LCA. Répétez ce drapeau pour chaque entrée que vous souhaitez ajouter.

Utiliser --acl-entry

Exécutez la commande gcloud managed-kafka acls create pour fournir directement les entrées LCA. Vous pouvez exécuter la commande plusieurs fois pour spécifier plusieurs entrées ACL pour une 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\

Remplacez les éléments suivants :

  • ACL_ID (obligatoire) : ID de la nouvelle ressource LCA, par exemple topic/my-topic ou cluster.

  • CLUSTER_ID (obligatoire) : ID de votre cluster.

  • LOCATION (obligatoire) : région de votre cluster, par exemple us-central1.

  • --acl-entry (obligatoire) : spécifie une entrée de LCA. Répétez l'option pour plusieurs entrées.

    • PRINCIPAL_1, PRINCIPAL_2 : compte principal de l'entrée de la LCA, tel que 'User:admin@example.iam.gserviceaccount.com ou 'User:*'.

    • OPERATION_1, OPERATION_2 : type d'opération, tel que ALL ou READ.

    • PERMISSION_1, PERMISSION_2 : type d'autorisation, tel que ALLOW ou DENY.

    • HOST_1, HOST_2 : hôte de l'entrée LCA. Pour Google Cloud Managed Service pour Apache Kafka, cette valeur doit être définie sur le caractère générique '*'.

Utiliser --acl-entries-from-file

  1. Créez un fichier local tel que acl_entries.yaml avec les entrées ACL requises au format 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. Exécutez la commande gcloud managed-kafka acls create en faisant référence au fichier :

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

    Remplacez les éléments suivants :

    • ACL_ID (obligatoire) : ID de la nouvelle ressource LCA, par exemple topic/my-topic ou cluster.

    • CLUSTER_ID (obligatoire) : ID de votre cluster.

    • LOCATION (obligatoire) : région de votre cluster, par exemple us-central1.

    • acl_entries.yaml (obligatoire) : chemin d'accès à votre fichier local contenant la liste des entrées de la LCA.

Étape suivante

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.