Access Control for Confluent Manager for Apache Flink

Confluent Manager for Apache Flink® models its access control around two central resources to which different types of users have access.

  • FlinkApplication: This defines your Flink application, which starts the Flink Cluster in Application mode. Depending on their assigned role, developers have access to their Flink environment to create, update, and view Flink applications.
  • FlinkEnvironment: The environment contains where and how to deploy the application, such as the Kubernetes namespace or central configurations that cannot be overridden. You can use Flink environments to separate the privileges of different teams or organizations. System administrators are responsible for managing the Flink environments and provisioning them correctly.

Understand user roles for Flink resources

You grant a user access to CMF resources.

The following table shows roles and the operations the role is allowed for CMF resources.

Role Name: Role Scope Create new FlinkEnvironment Update FlinkEnvironment Create/Update FlinkApplication in FlinkEnvironment View FlinkApplication and access the Flink Web UI in FlinkEnvironment Add new role-bindings
super.user: Cluster-level Yes Yes Yes Yes Yes
SystemAdmin: Cluster-level Yes Yes Yes Yes Yes
ClusterAdmin: Cluster-level Yes Yes Yes Yes No
UserAdmin: Cluster-level No No No No Yes
ResourceOwner: Resource-level No No Yes Yes Yes
DeveloperRead: Resource-level No No No Yes No
DeveloperManage: Resource-level No No Yes Yes No

The following roles have access to the CMF resources.

  • SecurityAdmin
  • AuditAdmin
  • Operator
  • DeveloperWrite

Cluster identifiers

To create role bindings, you need the cluster identifiers for the components in your CMF deployment. For CMF, you use the following cluster identifiers:

  • cmf: Always set to the CMF-id, which is the identifier for the CMF cluster. Currently, changing this ID is not supported.
  • flinkEnvironment: your environment name

Important

Currently, only a single instance of CMF is supported per MDS installation.

The following example command shows how to create a role binding with the identifiers for your cluster.

Example:

confluent iam rbac role-binding create \
--principal User:<user> \
--role DeveloperRead \
--cmf CMF-id \
--flinkEnvironment <flink-environment-name>
--resource FlinkApplication:<flink-application-name>