Sobes.tech
Middle

Ako je implementované obmedzenie prístupu v klastre Kafka? Na aké entity sa vzťahujú ACL?

sobes.tech AI

Odpoveď od AI

V Apache Kafka je riadiaci prístup implementovaný prostredníctvom mechanizmu ACL (Zoznamy kontroly prístupu). ACL umožňujú definovať, ktorí používatelia alebo služby (principals) majú práva na vykonávanie určitých operácií s prostriedkami klastru.

ACL sa vzťahujú na nasledujúce hlavné entity:

  • Topic — práva na čítanie (READ), zápis (WRITE), vytváranie (CREATE), mazanie (DELETE) tém.
  • Group — práva na správu skupín spotrebiteľov (napríklad čítanie offsetov).
  • Cluster — práva na operácie súvisiace s samotným klastrom, ako je vytváranie tém, správa ACL.
  • TransactionalId — práva na používanie transakcií.

Každá ACL určuje:

  • Principála (používateľa alebo servisný účet), ktorému sú práva pridelené.
  • Zdroj (topic, group, cluster atď.).
  • Povolené operácie (READ, WRITE, DESCRIBE, CREATE, DELETE atď.).
  • Typ povolenia (ALLOW alebo DENY).

Príklad príkazu na pridanie ACL:

kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 \
  --add --allow-principal User:Alice --operation Read --topic my-topic

Týmto spôsobom ACL v Kafka umožňujú flexibilne riadiť prístup na úrovni kľúčových prostriedkov klastru.