Safeguard
Security Guides•

What is the Kafka Connect client override policy, and is All safe?

The default connector client override policy is All, so a connector config can override any client property. None and Principal are tighter options.

Safeguard Security Team
4 min read

The connector.client.config.override.policy setting decides which Kafka client properties a connector may override in its own config. Per the Apache Kafka docs the default is All, which lets connector configs override everything. None blocks all overrides, and Principal allows overriding only client principals.

What the setting controls

Connect workers create Kafka clients for connectors: producers, consumers and admin clients. Worker level properties set the defaults, and individual connector configs can carry override entries with a prefix such as producer.override or consumer.override. The override policy is the rule that says which of those entries the worker honours.

The Kafka worker configuration reference states it plainly: the property gives the class name or alias of a ConnectorClientConfigOverridePolicy implementation, defines what client configurations a connector can override, defaults to All, with None and Principal among the framework's other policies.

Why the default deserves a look

If anyone who can create or edit a connector can override any client property, they can change more than tuning knobs. Security related client settings, such as which principal the client authenticates as, are among the properties that can be overridden under All. In a shared Connect cluster, that is a way for one team's connector config to act with a different identity than the platform team intended.

Whether that matters depends on who can create connectors. If only a deployment pipeline does, the risk is small. If many teams can, tighten it.

PolicyWhat connectors may overrideFits
All (default)Any client propertySingle team clusters with controlled access
PrincipalClient principals onlyClusters where each connector needs its own identity
NoneNothingShared clusters where the platform team owns client settings

A practical decision

  1. Decide who may create connectors and how those requests are reviewed.
  2. If each connector must use its own service identity with narrow ACLs, choose Principal, so connectors can set their identity but nothing else.
  3. If client settings should be fully centralised, choose None.
  4. Keep All only where you can show that connector configs are reviewed.

The Kafka docs also mention a legitimate use of overrides: a sink connector's consumer can set its isolation level through an override when the policy allows it, as part of exactly once support. If you move to None, test any connectors that rely on overrides like that before rollout.

Pair it with ACLs

An override policy is one layer. The Kafka side still needs ACLs that match each connector identity, so that a connector can read or write only the topics it needs. See Kafka ACLs: least privilege producer and consumer setup and who can reach the Kafka Connect REST API on port 8083.

Try it yourself

Click through it at your own pace, or open it full screen.

See how a change is blocked until a rule passes. Connector configs kept in Git can go through the same kind of review.

Safeguard's policies and gates can check changes in a repository before merge. A free scan is at gold.safeguard.sh/scan.

Quick check

What does the default policy allow?

All, meaning a connector configuration can override all client properties, per the Apache Kafka worker config reference.

Which policy keeps connectors to their own identity only?

Principal, which allows connectors to override only client principals.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.