Enterprise Grafana Cloud

Configure RBAC

Role-based access control (RBAC) for Grafana Enterprise and Grafana Cloud provides a standardized way of granting, changing, and revoking access, so that users can view and modify Grafana resources.

A user is any individual who can log in to Grafana. Each user has a role that includes permissions. Permissions determine the tasks a user can perform in the system.

Each permission contains one or more actions and a scope.

Role types

Grafana has three types of roles for managing access:

  • Basic roles: Admin, Editor, Viewer, and No basic role. These are assigned to users and provide default access levels.
  • Fixed roles: Predefined groups of permissions for specific use cases. Basic roles automatically include certain fixed roles.
  • Custom roles: User-defined roles that combine specific permissions for granular access control.

Basic role permissions

The following table summarizes the default alerting permissions for each basic role.

CapabilityAdminEditorViewer
View alert rules
Create, edit, and delete alert rules
View silences
Create, edit, and expire silences
View contact points and templates
Create, edit, and delete contact points
View notification policies
Create, edit, and delete policies
View mute timings
Create, edit, and delete timing intervals
Access provisioning API
Export with decrypted secrets

Note

Access to alert rules also requires permission to read the folder containing the rules and permission to query the data sources used in the rules.

Permissions

Grafana Alerting has the following permissions organized by resource type.

Alert rules

Permissions for managing Grafana-managed alert rules.

ActionApplicable scopeDescription
alert.rules:createfolders:*
folders:uid:*
Create Grafana alert rules in a folder and its subfolders. Combine this permission with folders:read in a scope that includes the folder and datasources:query in the scope of data sources the user can query.
alert.rules:readfolders:*
folders:uid:*
Read Grafana alert rules in a folder and its subfolders. Combine this permission with folders:read in a scope that includes the folder.
alert.rules:writefolders:*
folders:uid:*
Update Grafana alert rules in a folder and its subfolders. Combine this permission with folders:read in a scope that includes the folder. To allow query modifications add datasources:query in the scope of data sources the user can query.
alert.rules:deletefolders:*
folders:uid:*
Delete Grafana alert rules in a folder and its subfolders. Combine this permission with folders:read in a scope that includes the folder.

External alert rules

Permissions for managing alert rules in external data sources that support alerting.

ActionApplicable scopeDescription
alert.rules.external:readdatasources:*
datasources:uid:*
Read alert rules in data sources that support alerting (Prometheus, Mimir, and Loki).
alert.rules.external:writedatasources:*
datasources:uid:*
Create, update, and delete alert rules in data sources that support alerting (Mimir and Loki).

Alert instances and silences

Permissions for managing alert instances and silences in Grafana.

ActionApplicable scopeDescription
alert.instances:readn/aRead alerts and silences in the current organization.
alert.instances:createn/aCreate silences in the current organization.
alert.instances:writen/aUpdate and expire silences in the current organization.
alert.silences:readfolders:*
folders:uid:*
Read all general silences and rule-specific silences in a folder and its subfolders.
alert.silences:createfolders:*
folders:uid:*
Create rule-specific silences in a folder and its subfolders.
alert.silences:writefolders:*
folders:uid:*
Update and expire rule-specific silences in a folder and its subfolders.

External alert instances

Permissions for managing alert instances in external data sources.

ActionApplicable scopeDescription
alert.instances.external:readdatasources:*
datasources:uid:*
Read alerts and silences in data sources that support alerting.
alert.instances.external:writedatasources:*
datasources:uid:*
Manage alerts and silences in data sources that support alerting.

Contact points

Permissions for managing contact points (notification receivers).

ActionApplicable scopeDescription
alert.notifications.receivers:listn/aList contact points in the current organization.
alert.notifications.receivers:readreceivers:*
receivers:uid:*
Read contact points.
alert.notifications.receivers.secrets:readreceivers:*
receivers:uid:*
Export contact points with decrypted secrets.
alert.notifications.receivers:createn/aCreate a new contact points. The creator is automatically granted full access to the created contact point.
alert.notifications.receivers:writereceivers:*
receivers:uid:*
Update existing contact points.
alert.notifications.receivers:deletereceivers:*
receivers:uid:*
Update and delete existing contact points.
alert.notifications.receivers:testreceivers:*
receivers:uid:*
Test contact points to verify their configuration.
receivers.permissions:readreceivers:*
receivers:uid:*
Read permissions for contact points.
receivers.permissions:writereceivers:*
receivers:uid:*
Manage permissions for contact points.

Notification policies

Permissions for managing notification policies (routing rules).

ActionApplicable scopeDescription
alert.notifications.routes:readn/aRead notification policies.
alert.notifications.routes:writen/aCreate new, update, and delete notification policies.

Time intervals

Permissions for managing mute time intervals.

ActionApplicable scopeDescription
alert.notifications.time-intervals:readn/aRead mute time intervals.
alert.notifications.time-intervals:writen/aCreate new or update existing mute time intervals.
alert.notifications.time-intervals:deleten/aDelete existing time intervals.

Templates

Permissions for managing notification templates.

ActionApplicable scopeDescription
alert.notifications.templates:readn/aRead templates.
alert.notifications.templates:writen/aCreate new or update existing templates.
alert.notifications.templates:deleten/aDelete existing templates.
alert.notifications.templates.test:writen/aTest templates with custom payloads (preview and payload editor functionality).

General notifications

Legacy permissions for managing all notification resources.

ActionApplicable scopeDescription
alert.notifications:readn/aRead all templates, contact points, notification policies, and mute timings in the current organization.
alert.notifications:writen/aManage templates, contact points, notification policies, and mute timings in the current organization.

External notifications

Permissions for managing notification resources in external data sources.

ActionApplicable scopeDescription
alert.notifications.external:readdatasources:*
datasources:uid:*
Read templates, contact points, notification policies, and mute timings in data sources that support alerting.
alert.notifications.external:writedatasources:*
datasources:uid:*
Manage templates, contact points, notification policies, and mute timings in data sources that support alerting.

Provisioning

Permissions for managing alerting resources via the provisioning API.

ActionApplicable scopeDescription
alert.provisioning:readn/aRead all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and data source are not required.
alert.provisioning.secrets:readn/aSame as alert.provisioning:read plus ability to export resources with decrypted secrets.
alert.provisioning:writen/aUpdate all Grafana alert rules, notification policies, etc via provisioning API. Permissions to folders and data source are not required.
alert.rules.provisioning:readn/aRead Grafana alert rules via provisioning API. More specific than alert.provisioning:read.
alert.rules.provisioning:writen/aCreate, update, and delete Grafana alert rules via provisioning API. More specific than alert.provisioning:write.
alert.notifications.provisioning:readn/aRead notification resources (contact points, notification policies, templates, time intervals) via provisioning API. More specific than alert.provisioning:read.
alert.notifications.provisioning:writen/aCreate, update, and delete notification resources via provisioning API. More specific than alert.provisioning:write.
alert.provisioning.provenance:writen/aSet provisioning status for alerting resources. Cannot be used alone. Requires user to have permissions to access resources.

To help plan your RBAC rollout strategy, refer to Plan your RBAC rollout strategy.