Listes de contrôle d'accès (ACL) Apache Kafka - Amazon Managed Streaming for Apache Kafka

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Listes de contrôle d'accès (ACL) Apache Kafka

Apache Kafka possède un autorisateur enfichable et est livré avec une implémentation d'autorisateur. out-of-box Amazon MSK active ce mécanisme d’autorisation dans le fichier server.properties sur les brokers.

Les ACL Apache Kafka ont le format « Le P principal est [autorisé/refusé] Opération O depuis l'hôte H sur toute ressource R correspondant au RP ». ResourcePattern Si RP ne correspond pas à une ressource spécifique R, alors R n'a aucune ACL associée et, par conséquent, seul un super-utilisateur est autorisé à accéder à R. Pour modifier ce comportement d’Apache Kafka, vous devez définir la propriété allow.everyone.if.no.acl.found en tant que vrai. Amazon MSK la définit par défaut en tant que vrai. Cela signifie qu'avec les clusters Amazon MSK, si vous ne définissez pas explicitement les ACL sur une ressource, tous les serveurs mandataires peuvent accéder à cette ressource. Si vous définissez les ACL sur une ressource, seuls les serveurs mandataires autorisés peuvent y accéder. Si vous souhaitez restreindre l'accès à une rubrique et autoriser un client à l'aide de l'authentification mutuelle TLS, ajoutez des ACL en vous servant de l'interface de ligne de commande du mécanisme d’autorisation d’Apache Kafka. Pour de plus amples informations sur l'ajout, la suppression et la liste des ACL, veuillez consulter Interface de ligne de commande d'autorisation Kafka.

En plus de l’autorisation pour le client, vous devez également donner l’accès à vos rubriques à tous vos brokers afin qu'ils puissent répliquer des messages à partir de la partition principale. Si les brokers n'ont pas accès à une rubrique, la réplication de cette dernière échoue.

Pour ajouter ou supprimer l'accès en lecture et en écriture à une rubrique
  1. Ajoutez vos brokers au tableau ACL pour leur permettre de lire toutes les rubriques qui ont des ACL en place. Pour donner l'accès à vos agents à la lecture d'une rubrique, exécutez la commande suivante sur un ordinateur client qui peut communiquer avec le cluster MSK.

    Remplacez le Nom unique par le serveur DNS de l'un des brokers d'amorçage de votre cluster, puis remplacez la chaîne avant le premier point de ce nom unique par un astérisque (*). Par exemple, si l'un des brokers d'amorçage de votre cluster possède le serveur DNS b-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com, remplacez le Distinguished-Name dans la commande suivante par *.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com. Pour de plus amples informations sur la façon d'obtenir les brokers d’amorçage, veuillez consulter Obtention des agents d'amorçage pour un cluster Amazon MSK.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name
  2. Pour accorder l'accès en lecture à une rubrique, exécutez la commande suivante sur votre ordinateur client. Si vous utilisez l'authentification TLS mutuelle, utilisez le même Distinguised-Name que celui utilisé lors de la création de la clé privée.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name

    Pour supprimer l'accès en lecture, vous pouvez exécuter la même commande, en remplaçant --add par --remove.

  3. Pour accorder un accès en écriture à une rubrique, exécutez la commande suivante sur votre ordinateur client. Si vous utilisez l'authentification TLS mutuelle, utilisez le même Distinguised-Name que celui utilisé lors de la création de la clé privée.

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Write --topic Topic-Name

    Pour supprimer l'accès en écriture, vous pouvez exécuter la même commande, en remplaçant --add par --remove.