Skip to main content

Example RBAC Setup

Context

The following describes an example of a typical RBAC setup for a Data Mesh landscape, complete with roles, example groups and scopes for the permissions. It should be seen as an example, and you will need to adapt it based on your organization's structure, processes and data landscape.

It assumes that there are three environments in which Data Products can be deployed:

  • Production: identified as prd
  • Quality Assurance: identified as qa
  • Development: identified as dev

as well as two domains:

  • Sales: identified as urn:dmb:dmn:sales
  • Marketing: identified as urn:dmb:dmn:marketing

Roles and permissions

We are going to use typical roles for a Data Mesh-based data platform, namely these five:

  • Administrator: has every permission including modifying platform settings; not intended for everyday users but only highly privileged personnel
  • Data Product Owner: owns Data Products and can manage all their lifecycle, including creating new major versions and deploying to production
  • Data Product Developer: develops Data Products and can manage all their lifecycle, excluding creating new major versions and deploying to production
  • Governance: manages platform governance settings like policies and documents
  • Read Only: can only view objects, cannot make any changes to anything

The following table summarizes the permissions for the roles:

PermissionAdministratorRead OnlyDP OwnerDP DeveloperGovernance
practice-shaper.editX
practice-shaper.importX
catalog.entity.readXXXXX
catalog.entity.createXXX
catalog.entity.deleteXXX
catalog.entity.refreshXXX
catalog.location.readXXXXX
catalog.location.createXXX
catalog.location.deleteXXX
catalog.platform.createX
catalog.platform.deleteX
catalog.platform.refreshX
builder.software-catalog.viewXXXX
builder.dp.snapshot.createXXX
builder.dp.releaseXXX
builder.dp.deploy.prdXX
builder.dp.deploy.qaXXX
builder.dp.deploy.devXXX
builder.dp.newversionXX
builder.dp.commitXXX
builder.dp.policies.testXXXX
builder.system-prototype.editX
cgp.entity.viewXXXXX
cgp.entity.editXX
documents.document.insertXX
platform.settings.editX
platform.custom-view.editX

Groups

Users are assigned to different groups, which are granted specific roles.

The groups and the assigned roles are:

  • WITBOOST_ADMINS: highly privileged users, like the Platform Team; assigned the "Administrator" role.
  • WITBOOST_USERS: generic users; assigned the "Read Only" role.
  • WITBOOST_DP_OWNERS: users that own or will own Data Products; assigned the corresponding role.
  • WITBOOST_DP_DEVELOPERS_<DOMAIN>: users that develop or will develop Data Products for a specific domain; assigned the corresponding role and scoped to the proper domain.
  • WITBOOST_GOVERNANCE: Governance Team users.

This example setup defines the baseline for the default preset for automatic RBAC configuration.

With this setup, developers are scoped to their specific domain, while other kinds of users have the same permissions on all the domains.