三个交互工具:① 鉴权机制选择决策树 ② ACL 五元组建模 ③ Quota 限速动画。
点击你的场景,系统会推荐最合适的鉴权机制。
填入资源 / 操作 / 用户,自动生成 kafka-acls.sh 命令。
| 字段 | 取值 |
|---|---|
| Permission | |
| Principal | |
| Resource Type | |
| Resource Name | |
| Pattern Type | |
| Operation | |
| Host |
点击「生成命令」按钮…
1️⃣ super.users? → No 2️⃣ matching Deny? → No 3️⃣ matching Allow? → Yes ✅ ALLOW 4️⃣ default? → (skip)
设置一个 producer_byte_rate 限额,观察超过的请求如何被 Broker throttle。
throttle_time_ms 后会 sleep 这段时间,自然把速率压回阈值。
| 协议 | 加密 | 鉴权 | 典型用途 |
|---|---|---|---|
PLAINTEXT | ❌ | ❌ | 本地开发 |
SSL | ✅ TLS | ✅ 客户端证书(mTLS) | 内部基础设施 |
SASL_PLAINTEXT | ❌ | ✅ SASL | ⚠ 仅同一信任域内网 |
SASL_SSL | ✅ TLS | ✅ SASL | ⭐ 生产标配 |
凭证:X.509 客户端证书
动态增删用户:需要 CA 重签 / 吊销
难度:★★★★ PKI 体系门槛高
选我:Broker↔Broker、Connect↔Broker
凭证:用户名 + 盐 + 多轮哈希挑战
动态增删:✅ 通过 kafka-configs.sh 立即生效
难度:★★ 配置简单
选我:99% 的多租户生产场景
凭证:用户名 + 明文密码
动态增删:❌ 改 JAAS 必须重启 broker
难度:★ 最简单
选我:本地开发 / 演示
凭证:Kerberos Ticket(KDC 颁发)
动态增删:✅ KDC 管理
难度:★★★★★ 极复杂
选我:已有 AD / Hadoop 生态
凭证:OAuth 2.0 Bearer Token
动态增删:✅ IDP 管理
难度:★★★ 需要 IDP
选我:云原生 / Confluent Cloud
❌ SASL_PLAINTEXT 走公网
❌ SuperUser 给业务账号
❌ allow.everyone.if.no.acl.found=true
❌ ssl.client.auth=none 还自称 mTLS
| # | 步骤 | 关键命令 |
|---|---|---|
| 1 | 分层隔离:集群 / 团队 / 应用 | 命名规范 + 平台工单 |
| 2 | Topic 命名前缀强约束 | <env>.<team>.<domain>.<event> |
| 3 | 每团队 1 SCRAM 用户 | kafka-configs.sh ... add-config 'SCRAM-SHA-256=[...]' |
| 4 | PREFIXED ACL 一次到位 | --topic 'prod.team-order.' --resource-pattern-type PREFIXED |
| 5 | 跨团队消费走工单 | B Owner 审批 → 加一条 Read ACL |
| 6 | Quota 默认兜底 | --entity-type users --entity-default |
| 7 | SuperUser 仅 Operator | super.users=User:kafka-ops |
| 8 | 审计日志 90 天 | log4j.logger.kafka.authorizer.logger=DEBUG |
💡 落地脚本见 15_security/code/scram_user_setup.sh 与 acl_examples.sh。