Overview
Access Control Lists (ACLs) in Condense provide fine-grained control over access to Kafka resources. The ACL Management tab in the Kafka Admin Dashboard allows a Kafka Admin to define and manage access policies for users and Kafka resources. An ACL specifies the user the rule applies to, the Kafka resource, the operation, and whether that operation is allowed or denied. ACLs work with the Condense access model of Organization, Environment, and Workspace. Workspace roles determine the Kafka capabilities available to an Environment User, while ACLs provide control over the Kafka resources and operations available to that user.Access Control in Condense
Condense manages access at three levels:Workspace Roles
The Kafka workspace roles in Condense are:- Kafka Admin
- Maintainer
- Developer
- Viewer
Environment Admins can assign workspace roles to Environment Users. Kafka Admins manage Kafka resources and ACLs.
ACL Management
The ACL Management tab is available in the Kafka Admin Dashboard. It provides the Kafka Admin with a view of ACL rules associated with users and Kafka resources. Each ACL contains four primary fields:
Operations are preconfigured according to the user’s assigned role and can be modified by the Kafka Admin.
Default Permission
ACL permissions default to Deny until they are explicitly changed by a Kafka Admin. This means that assigning a role or making a Kafka resource available does not by itself grant the user permission to perform every operation on that resource. For example:Assigning Kafka Resources
Kafka Admins assign Kafka resources to Environment Users. The resource assignment is separate from the user’s workspace assignment. The workflow is:ACL Availability
The ACL view changes according to the users, roles, and Kafka resources available in the environment.When Applicable Roles Are Not Assigned
If no Environment Users have the applicable Kafka workspace roles, there are no corresponding ACL entries to configure.When a Role Is Assigned
Once an Environment User has been assigned an applicable Kafka role, the ACL view can display the permissions associated with that role.When the Kafka Resource Is Not Available
If the required Kafka resource is not yet available, the resource is shown as pending resource availability. The permission remains Deny until the resource is available and the Kafka Admin configures the ACL.When the Kafka Resource Becomes Available
Once the Kafka resource becomes available, the Kafka Admin can configure the applicable ACL. The permission remains Deny until it is explicitly changed.Kafka Resources
ACLs are used with Kafka resources managed through Condense. The Kafka resource model includes:- Topics
- Consumer Groups
- Schemas
- Kafka resources with ACL configuration
- Users associated with a resource
- Roles associated with users
- Effective permissions
- Workspace associations
Topic Permissions
Topic access is controlled through Kafka operations.
Kafka Admins have full topic lifecycle management capabilities. Other users operate on topics according to their assigned role, workspace, resource, and ACL permissions.
Consumer Group Permissions
Consumer Groups are also managed through Kafka permissions.
Kafka does not expose a separate Create Consumer Group API. Join Group and Sync Group are therefore mapped to the Create category in the Condense permission model.
Consumer Group operations are subject to the permissions configured for the user.
Schema Access
Schemas are included in the Kafka resource model. Schema access follows the same role and resource model used for other Kafka resources. Schema Registry management is available when Schema Registry is enabled for the environment.Users and Role Management
The Users and Role Management area provides a role and resource permission matrix. The matrix shows:
The permissions associated with predefined roles are displayed as preselected permissions.
Environment Admins assign workspace roles to Environment Users.
To assign a workspace role:
- Navigate to Members in Condense Core.
- Select the Environment User.
- Select Assign Workspace Role.
- Select one of the available roles:
- Kafka Admin
- Maintainer
- Developer
- Viewer
- Select one or more workspaces.
- Apply the assignment.
Resource Management
The Resource Management tab provides a resource-focused view of Kafka access. Use this view when you want to understand access from the perspective of a Kafka resource rather than a user. For a resource, Kafka Admins can review:- Users associated with the resource
- User roles
- Configured permissions
- Workspace associations
- ACL configuration
Managing ACL Permissions
Kafka Admins manage permissions from the ACL Management view. To configure an ACL:- Open the Kafka Admin Dashboard.
- Open ACL Management.
- Locate the required user.
- Select the Kafka resource.
- Review the operation.
- Review the current permission.
- Change the permission to Allow when access is required.
- Save the ACL.
ACL Example
Suppose a user has the Developer role and is assigned theFleetTracking workspace.
The user has been assigned the vehicle-events topic, but the topic permissions are initially denied:
Access Control Workflow
The complete workflow for users and Kafka access is:Example: Multiple Users and Workspaces
Consider an environment with the following workspaces:FleetTrackingColdChainSandbox
The resulting access is different for each user:
- Bharat can access Production and has Kafka Admin access for FleetTracking.
- Divya can operate in Sandbox as a Maintainer.
- Eshan can work in FleetTracking and ColdChain as a Developer.
- Farah has Viewer access to Sandbox.
Access Capability Overview
The workspace role determines the operational capabilities available to an Environment User.
Administrative Controls
ACLs provide a separate control over Kafka resource operations. The main controls are:- ACL permissions default to Deny.
- Kafka Admins explicitly grant access by changing the permission to Allow.
- ACLs identify the principal, operation, resource, and permission.
- Kafka resource assignment is managed separately from workspace assignment.
- Kafka Admins can review resource-level access through Resource Management.
- Kafka operations are subject to the permissions configured for the user.
External Users
The current ACL specification includes external-user onboarding and ACL assignment as part of the broader flow. However, the detailed ACL behavior and onboarding experience for external users is not yet defined in the current specification and requires further discussion.Access Control Model
Condense combines workspace-level RBAC with Kafka resource-level ACLs.Frequently Asked Questions
What is an ACL in Condense?
An ACL is an Access Control List rule that determines whether a user can perform a specific Kafka operation on a Kafka resource.Who manages Kafka ACLs?
Kafka Admins manage Kafka ACLs from the Kafka Admin Dashboard.What happens when an ACL is created?
The permission defaults to Deny. The Kafka Admin must explicitly change it to Allow to grant the operation.Does workspace access automatically grant access to Kafka resources?
No. Workspace access and Kafka resource permissions are separate. The required Kafka resource must be assigned and the appropriate ACL permission must be configured.What Kafka resources can be controlled through ACLs?
The current resource model includes Topics, Consumer Groups, and Schemas.Can access be granted for one operation but denied for another?
Yes. ACLs are operation-specific. For example, a user can be allowed to Read a topic while Write remains Denied.What happens if a Kafka resource is not available?
The ACL can remain pending resource availability. The permission remains Deny until the resource is available and configured by the Kafka Admin.What is the difference between RBAC and ACL?
RBAC defines the capabilities associated with a user’s workspace role. ACLs provide finer control over access to Kafka resources and operations.Who assigns workspace roles?
Environment Admins assign workspace roles to Environment Users.Who assigns Kafka resources?
Kafka Admins assign Kafka resources to Environment Users and manage their ACL permissions.Summary
Condense uses two related access controls:- RBAC controls what an Environment User can do within assigned workspaces.
- ACLs control access to Kafka resources and operations.