

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
<a name="msk-acls"></a>

Apache Kafka dispose d'un autorisateur enfichable et est livré avec une implémentation d'autorisation prête à l'emploi. 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 [Allowed/Denied] Operation O From Host H on any Resource R matching ResourcePattern RP ». 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](https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Authorization+Command+Line+Interface).

Amazon MSK configurant les courtiers en tant que super utilisateurs, ils peuvent accéder à toutes les rubriques. Cela permet aux courtiers de répliquer les messages depuis la partition principale, que la `allow.everyone.if.no.acl.found` propriété soit définie ou non pour la configuration du cluster.

**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 {{Distinguished-Name}} par le DNS de l'un des courtiers bootstrap de votre cluster, puis remplacez la chaîne située avant le premier point de ce nom distinctif par un astérisque ()`*`. Par exemple, si l'un des courtiers bootstrap de votre cluster possède le DNS`b-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com`, remplacez {{Distinguished-Name}} 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 [Obtenez les courtiers bootstrap pour un cluster Amazon MSK](msk-get-bootstrap-brokers.md).

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

1. Pour accorder à une application cliente un accès en lecture à une rubrique, exécutez la commande suivante sur votre ordinateur client. Si vous utilisez l'authentification TLS mutuelle, utilisez la même {{Distinguished-Name}} que celle que vous avez utilisée lors de la création de la clé privée.

   ```
   {{<path-to-your-kafka-installation>}}/bin/kafka-acls.sh --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`.

1. 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 la même {{Distinguished-Name}} que celle que vous avez utilisée lors de la création de la clé privée.

   ```
   {{<path-to-your-kafka-installation>}}/bin/kafka-acls.sh --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`.