पाठ 22 / 25
Security: TLS, SASL और ACLs
Traffic encrypt करें, clients authenticate करें और प्रति topic access authorise करें।
तीन सवाल
Kafka को इन सवालों के उत्तर देकर सुरक्षित करें: क्या connection निजी है? Clients और brokers के बीच तथा brokers के बीच traffic encrypt करने को TLS उपयोग करें। कौन जुड़ रहा है? Authentication उपयोग करें: mutual TLS (client certificates) या SASL (SCRAM, OAUTHBEARER, GSSAPI/Kerberos)। वे क्या कर सकते हैं? Least-privilege access देने को ACLs (या आपकी managed service का समतुल्य) उपयोग करें, जैसे billing service को sales.order.placed.v1 पढ़ने और group billing से जुड़ने दें, और कुछ नहीं। Brokers को सीधे internet पर कभी उपलब्ध न कराएँ, credentials secrets manager में रखें, और डेटा संवेदनशील हो तो disks को at rest encrypt करें।
एक service के लिए ACLs (उदाहरण)
billing user को एक topic की read access और एक group की सदस्यता देता है। Cluster पर authorizer चालू होना ज़रूरी है।
kafka-acls.sh --bootstrap-server broker1:9093 --command-config admin.properties \
--add --allow-principal User:billing --operation Read --topic sales.order.placed.v1
kafka-acls.sh --bootstrap-server broker1:9093 --command-config admin.properties \
--add --allow-principal User:billing --operation Read --group billingत्वरित जाँच: कौन topics का least-privilege access देता है?
- Broker port को internet के लिए खोलना
- सभी services के लिए एक साझा admin user
- Authentication बंद करना
- विशिष्ट topics पर सिर्फ़ ज़रूरी ऑपरेशन देने वाली ACLs
Answer
विशिष्ट topics पर सिर्फ़ ज़रूरी ऑपरेशन देने वाली ACLs — प्रति-principal, प्रति-resource permissions सीमित करती हैं कि कोई एक service क्या कर सकती है।