# Security: TLS, SASL और ACLs — Apache Kafka: बुनियाद से Production तक Event Streaming

Source: https://www.geekswithgeeks.com/hi/kafka/ops-security

> 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 चालू होना ज़रूरी है।

```bash
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
```

**Quiz:** कौन topics का least-privilege access देता है?

- [ ] Broker port को internet के लिए खोलना
- [ ] सभी services के लिए एक साझा admin user
- [ ] Authentication बंद करना
- [x] विशिष्ट topics पर सिर्फ़ ज़रूरी ऑपरेशन देने वाली ACLs

*Answer:* विशिष्ट topics पर सिर्फ़ ज़रूरी ऑपरेशन देने वाली ACLs. प्रति-principal, प्रति-resource permissions सीमित करती हैं कि कोई एक service क्या कर सकती है।
