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ésentetopic/*)Tous les groupes :
allConsumerGroups(représenteconsumerGroup/*)Tous les ID de transaction :
allTransactionalIds(représentetransactionalId/*)
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ériqueUser:*.Opération : type d'opération Kafka, tel que
ALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSouIDEMPOTENT_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 :
ALLOWouDENY(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,GROUPouTRANSACTIONAL_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 ressourceCLUSTER, 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.
LITERALouPREFIXED.
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
-
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 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 exempleus-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 exempletopic/my-topicoucluster.CLUSTER_ID(obligatoire) : ID de votre cluster.LOCATION(obligatoire) : région de votre cluster, par exempleus-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.comou'User:*'.OPERATION_1,OPERATION_2: type d'opération, tel queALLouREAD.PERMISSION_1,PERMISSION_2: type d'autorisation, tel queALLOWouDENY.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
Créez un fichier local tel que
acl_entries.yamlavec 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: "*"Exécutez la commande
gcloud managed-kafka acls createen faisant référence au fichier :gcloud managed-kafka acls create ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --acl-entries-from-file=acl_entries.yamlRemplacez les éléments suivants :
ACL_ID(obligatoire) : ID de la nouvelle ressource LCA, par exempletopic/my-topicoucluster.CLUSTER_ID(obligatoire) : ID de votre cluster.LOCATION(obligatoire) : région de votre cluster, par exempleus-central1.acl_entries.yaml(obligatoire) : chemin d'accès à votre fichier local contenant la liste des entrées de la LCA.