Skip to content

Latest commit

 

History

History
117 lines (83 loc) · 3.87 KB

File metadata and controls

117 lines (83 loc) · 3.87 KB

Authentification et ACLs (boa-lab)

Le cluster boa-lab utilise l’autorisation simple (ACLs Kafka). Tout accès aux topics/groupes passe par un principal authentifié (sauf le listener plain en 9092, voir ci-dessous).

Listeners

Listener Port Bootstrap (in-cluster) Auth
plain 9092 boa-lab-kafka-bootstrap.kafka.svc:9092 Aucune (lab uniquement)
tls 9093 boa-lab-kafka-bootstrap.kafka.svc:9093 mTLS (certificat client)
scram 9094 boa-lab-kafka-bootstrap.kafka.svc:9094 SCRAM-SHA-512 + TLS

Documentation détaillée :

Créer un utilisateur (KafkaUser)

Strimzi crée les comptes via la CR KafkaUser (User Operator requis, activé sur le cluster).

export KUBECONFIG=/Users/modoulobolysow/Downloads/lab-boa-kubeconfig.yaml

# Exemples fournis
kubectl apply -f manifests/examples/kafka-user-mtls.yaml
kubectl apply -f manifests/examples/kafka-user-scram.yaml

kubectl get kafkauser -n kafka
kubectl describe kafkauser app-mtls -n kafka

Attendre le statut Ready avant d’utiliser les secrets.

Principal Kafka (nom pour les ACLs)

Type Principal utilisé dans les ACLs
mTLS CN=<nom du KafkaUser> (ex. app-mtls)
SCRAM User:<nom du KafkaUser> (ex. User:app-scram)

Strimzi aligne en général le CN du certificat TLS sur le nom de la ressource KafkaUser.

Définir les ACLs

Les ACLs se déclarent dans spec.authorization.acls du KafkaUser (comme dans les exemples).

Types de ressources courants

type Exemple name patternType
topic orders literal ou prefix
group mon-app- prefix (consumer groups)
cluster kafka-cluster literal (opérations admin limitées)

Opérations fréquentes

Besoin operations
Producer / consumer classique Read, Write, Describe sur le topic
Création auto de topic (si activée côté broker) ajouter Create
Consumer group Read, Describe sur group

Exemple ACL lecture seule sur un préfixe de topics :

authorization:
  type: simple
  acls:
    - resource:
        type: topic
        name: events-
        patternType: prefix
      operations:
        - Read
        - Describe
    - resource:
        type: group
        name: mon-service-
        patternType: prefix
      operations:
        - Read
        - Describe

Modifier un KafkaUser puis kubectl apply : Strimzi met à jour les ACLs sur le cluster.

Vérifier les ACLs sur le cluster

export KUBECONFIG=/Users/modoulobolysow/Downloads/lab-boa-kubeconfig.yaml

kubectl exec -n kafka boa-lab-boa-lab-brokers-0 -- \
  bin/kafka-acls.sh --bootstrap-server localhost:9092 \
  --list

Sur un cluster sécurisé, utilisez le listener et les credentials admin appropriés (certificat ou SCRAM admin).

Listener plain (9092)

Sans authentification : principal ANONYMOUS. Sans ACL explicite pour ANONYMOUS, l’accès est refusé dès que authorization: simple est actif.

Réserver ce port au debug interne ; les applications doivent utiliser 9093 (mTLS) ou 9094 (SCRAM).

Secrets Strimzi utiles

Secret Contenu
boa-lab-cluster-ca-cert CA du cluster (ca.crt) — confiance TLS vers les brokers
boa-lab-clients-ca-cert CA clients (signature des certificats utilisateurs)
<kafkauser> Certificats (mTLS) et/ou password (SCRAM)

Références