Use mTLS instead of Kerberos for KRaft inter-node traffic
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Description
With Kerberos enabled, the CONTROLLER listener currently uses SASL_SSL/GSSAPI. Brokers and controllers authenticate to each other with Kerberos principals (#1024). The INTERNAL listener already uses mTLS with the pod certificates of the internalSecretClass in every configuration.
Kerberos principals are a poor fit for identifying the Kafka nodes. With the default sasl.kerberos.principal.to.local.rules, every node principal maps to the same short name, so it can't be pinned to a specific node. Pod certificate subjects can.
Proposal:
- Make the CONTROLLER listener always SSL, and require client authentication when Kerberos, TLS client authentication or OPA is configured.
- Use Kerberos only on the client-facing broker listeners. Controllers get no keytab or JAAS configuration.
- Make super.users contain only the pod certificate subjects of the nodes.
Issue checklist
This is a simple checklist of things to bear in mind when creating a new issue.
- Describe the use-case: As far as possible, use the pattern "As a [type of user], I would like [feature/functionality] to be able to do [specific action]." This helps identify the feature and the problem it addresses.
- Indicate importance and urgency: Use a scale (e.g., low, medium, high) to indicate the level of importance and urgency.
- Work-around: If there is a known work-around, describe it briefly.
- Environment: Describe the environment where the issue occurs (e.g., SDP version, K8S version, etc.).
- Dominant language
- Rust
- Stars
- 31
- Forks
- 9
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 14
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stackabletech/kafka-operator
-
KRaft: a new controller can bootstrap against itself and never join the quorumPossibly taken @razvan claimed this 1 day ago. Opentype/bug
stackabletech/kafka-operator#1062 · 1 assignee ·
Maintainers usually reply within 1 day
-
KRaft: adding a controller role group can bootstrap a second quorumPossibly taken @razvan claimed this 1 day ago. Opentype/bug
stackabletech/kafka-operator#1060 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
stackabletech/kafka-operator#1059 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
stackabletech/kafka-operator#1058 ·
Maintainers usually reply within 1 day
-
type/bug
Difficulty 5/5 Over a week Newbie friendliness 35/100
stackabletech/kafka-operator#955 · 1 comment ·
Maintainers usually reply within 1 day
All issues in stackabletech/kafka-operator
Similar issues
-
[Bug]: opencode_go chat route drops reasoning_effort (even 'none'), while the same endpoint honors it via custom_llm_provider=openaiPossibly taken @arvindkumar-ship-it claimed this today. Openllm translation
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
BerriAI/litellm#51871 · 1 comment ·
Maintainers usually reply within 1 day
-
comp-formats
Difficulty 2/5 Half a day Newbie friendliness 64/100
ClickHouse/ClickHouse#131694 ·
Maintainers usually reply within 1 day
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
C-Bug S-Needs-Triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
bevyengine/bevy#26558 ·
Maintainers usually reply within 2 days