Datadog Role Permissions
Incident Management is now generally available! Incident Management is now generally available!

Datadog Role Permissions

Once your roles are created, assign or remove permission to this role directly by updating the role in the Datadog application, or through the Datadog Permission API. Find below a list of available permissions.

Overview

General permissions

General permissions provide the base level of access for your role. Advanced Permissions are explicitly defined permissions that augment the base permissions.

NameDescriptionScopable
adminThis permission gives you the ability to view and edit everything in your Datadog organization that does not have an explicitly defined permission. This includes billing and usage, key, and organization management. This permission is inclusive of all Standard access permissions.false
standardThis permission gives you the ability to view and edit components in your Datadog organization that do not have explicitly defined permissions. This includes APM, Events, and other non-Account Management functionality.false

Note: There is no read-only permission as it is defined by the lack of both the admin and standard permissions for a role.

Advanced permissions

By default, existing users are already associated with one of the three out-of-the-box Datadog Admin, Standard, or Read-Only Roles, so all users already have permissions to read all data types, and Admin or Standard users already have write permissions on assets.

Note: When adding a new custom role to a user, make sure to remove the out-of-the-box Datadog role associated with that user in order to enforce the new role permissions.

In addition of the general permissions, it is possible to define more granular permissions for specific assets or data types. Permissions can be either global or scoped to a subset of elements. Find below the details of these options and the impact they have on each available permission.

API and Application Keys

Find below the list of permissions for the api and application keys assets:

NameDescriptionScopable
user_app_keysThe ability to view and manage Application Keys owned by the user.false
org_app_keys_readThe ability to view Application Keys owned by all users in the organization.false
org_app_keys_writeThe ability to manage Application Keys owned by all users in the organization.false
api_keys_readThe ability to list and retrive the key values of all API Keys in your organization.false
api_keys_writeThe ability to create, rename, and revoke API Keys for your organization.false

APM

Find below the list of permissions for the apm assets:

NameDescriptionScopable
apm_readThe ability to read and query APM and Trace Analytics.false
apm_retention_filter_readThe ability to read trace retention filters. A user with this permission can view the retention filters page, list of filters, their statistics, and creation info.false
apm_retention_filter_writeThe ability to create, edit and delete trace retention filters. A user with this permission can create new retention filters, and update or delete to existing retention filters.false
apm_service_ingest_readThe ability to access Service Ingestion pages. A user with this permission can view the service ingestion page, list of root service, their statistics, and creation info.false
apm_service_ingest_writeThe ability to edit Service Ingestion pages root services. A user with this permission can edit the root service ingestion and generate a code snippet to increase ingestion per service.false
apm_apdex_manage_writeThe ability to set Apdex T value on any service. A user with this permission can set the T value from the Apdex graph on the service page.false
apm_tag_management_writeThe ability to edit second primary tag selection. A user with this permission can modify the second primary tag dropdown in the APM settings page.false
apm_primary_operation_writeThe ability to edit the operation name value selection. A user with this permission can modify the operation name list in the APM settings page and can modify the operation name controller on the service page.false

Dashboards

Find below the list of permissions for the dashboards assets:

NameDescriptionScopable
dashboards_readThe ability to view dashboards.false
dashboards_writeThe ability to create and change dashboards.false
dashboards_public_shareThe ability to share dashboards externally.false

Integrations

Find below the list of permissions for the integrations assets:

NameDescriptionScopable
integrations_apiThe ability to use the Integrations APIs to configure Integrations that the user has access to. This permission does not restrict or grant access to Integrations.false

Metrics

Find below the list of permissions for the metrics assets:

NameDescriptionScopable
metric_tags_writeThe ability to edit and save tag configurations for custom metrics.false

Monitors

Find below the list of permissions for the monitors assets:

NameDescriptionScopable
monitors_readThe ability to view monitors.false
monitors_writeThe ability to change, mute, and delete individual monitors.false
monitors_downtimeThe ability to set downtimes for your organization. A user with this permission can suppress alerts from any monitor using a downtime, even if they do not have permission to edit those monitors explicitly.false

Real User Monitoring

Find below the list of permissions for the real user monitoring assets:

NameDescriptionScopable
rum_apps_writeThe ability to create, edit, and delete RUM Applications.false

Security Monitoring

Find below the list of permissions for the security monitoring assets:

NameDescriptionScopable
security_monitoring_rules_readThe ability to read Detection rules.false
security_monitoring_rules_writeThe ability to create and edit Detection rules.false
security_monitoring_signals_readThe ability to view Security signals.false

User Access

Find below the list of permissions for the user access assets:

NameDescriptionScopable
user_access_inviteAllows users to invite other users to your organization.false
user_access_manageGrants the permission to disable users, manage user roles and SAML-to-role mappings.false

Logs

Find below the list of permissions for the log configuration assets and log data, along with the typical category of user you’d assign this permission to. See the recommendations on how to assign permissions to team members in the Logs RBAC guide.

NameDescriptionScopable
logs_modify_indexesThe ability to read and modify all indexes in your account. This includes the ability to grant the Logs Read Index Data and Logs Write Exclusion Filter permission to other roles, for some or all indexes. This permission also grants global Log Index Read and Log Exclusion Filter Write implicitly.false
logs_write_exclusion_filtersThe ability to add and change exclusion filters for all or some log indexes. Can be granted in a limited capacity per index to specific roles via the Logs interface or API. If granted from the Roles interface or API, the permission has global scope.true
logs_write_pipelinesThe ability to add and change log pipeline configurations, including the ability to grant the Logs Write Processors permission to other roles, for some or all pipelines. This permission also grants global Log Processor Write implicitly.false
logs_write_processorsThe ability to add and change some or all log processor configurations. Can be granted in a limited capacity per pipeline to specific roles via the Logs interface or API. If granted via the Roles interface or API the permission has global scope.true
logs_write_archivesThe ability to add and edit log archive locations.false
logs_public_config_apiThe ability to access and edit logs configurations via the API.false
logs_generate_metricsThe ability to create custom metrics from logs.false
logs_read_dataThe ability to read log data. Can be restricted with restriction queries.true
logs_read_archivesThe ability to read logs archives location and use it for rehydration.true
logs_write_historical_viewThe capability to rehydrate logs from Archives.false
logs_write_facetsThe capability to create or edit logs facets.false

Log Management RBAC also includes two legacy permissions, superseded by finer-grained and more extensive logs_read_data permission:

NameDescriptionScopable
logs_live_tailAccess the live tail featurefalse
logs_read_index_dataRead a subset log data (index based)true

Once your roles are created, assign or remove permission to this role directly by updating the role in the Datadog application.

Once your roles are created, assign or remove permission to this role directly through the Datadog Permission API.

More details about these permissions below.

Log configuration access

logs_generate_metrics

Grants a role the ability to use the Generate Metrics feature.

This permission is global and enables both the creation of new metrics, and the edition or deletion of existing ones.

logs_write_facets

Grants a role the ability to use the Create, Edit, and Delete facets.

This permission is global and enables both the creation of new facets, and the edition or deletion of existing ones.

logs_modify_indexes

Grants a role the ability to create and modify log indexes. This includes:

This permission is global and enables both the creation of new indexes, and the edition of existing ones.

Note: This permission also grants Logs Read Index Data and Logs Write Exlcusion Filters permissions behind the scenes.

logs_write_exclusion_filters

Grants a role the ability to create or modify exclusion filters within an index.

This permission can be assigned either globally or restricted to a subset of indexes.

Subset of indexes:

  1. Remove the global permission on the role.
  2. Grant this permission to the role in [the Index page of the Datadog app][2] by editing an index and adding a role to the “Grant editing Exclusion Filters of this index to” field (screenshot below).

This configuration is only supported through the UI.

logs_write_pipelines

Grants a role the ability to create and modify log processing pipelines. This includes:

Note: This permission also grants Logs Write Processors (for all processors on all pipelines) permissions behind the scenes.

logs_write_processors

Grants a role the ability to create, edit or delete processors and nested pipelines12.

This permission can be assigned either globally or restricted to a subset of pipelines.

Assign the role(s) in the modal of a specific pipeline.

Preliminary,

curl -X POST \
        https://app.datadoghq.com/api/v1/role/<ROLE_UUID>/permission/<PERMISSION_UUID> \
        -H "Content-Type: application/json" \
        -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
        -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
        -d '{
                "scope": {
                    "pipelines": [ "<PIPELINE-X_ID>", "<PIPELINE-Y_ID>"]
                }
            }'

logs_write_archives

Grants the ability to create, edit or delete Log Archives. This includes:

  • Setting archives filters for what logs should be routed to the archive
  • Setting the name of the archive
  • Reordering archives
  • Restricting the Logs Read Archives permission to a subset of roles.

This permission is global and enables the creation of new archives, and the edition and deletion of existing ones.

logs_read_archives

Grants the ability to access the details of the archive configuration. In conjunction with Logs Write Historical Views, this permission also grants the ability to trigger a Rehydration from Archives.

This permission can be scoped to a subset of archives. An archive with no restrictions is accessible to anyone who belongs to a role with the logs_read_archives permission. An archive with restrictions is only accessible to the users who belong to one of the registered roles, provided theses roles have the logs_read_archives permission.

In the following example, assuming all roles but Guest have the logs_read_archive permission:

  • Staging is accessible to all users, except users that only belong to the Guest role.
  • Prod is accessible to all users belonging to Customer Support.
  • Security-Audit is not accessible to users who belong to Customer Support, unless they also belong to Audit & Security.

Proceed to archive creation, or update at any moment while editing the archive.

Use the Logs Archive API either to assign or revoke a role from a given Archive.

logs_write_historical_views

Grants the ability to write historical views, meaning to trigger a Log Rehydration*.

This permission is global. It enables users to trigger a rehydration for archives on which they have Logs Read Archive permission.

In the example above:

  • ADMIN Role members can rehydrate from the Audit Archive, as they have the Write Historical View (Rehydrate) permission, as well as the Read Archive permission on that archive.
  • AUDIT Role members cannot rehydrate from the Audit Archive, as they do not have the Write Historical View (Rehydrate) permission.
  • PROD Role members cannot rehydrate from the Audit Archive, as they do not have the Read Archive permission.

When assigning team:audit tags on all logs rehydrated from the Audit Archive, make sure that Audit role members who are restricted to read team:auditlogs can only access rehydrated content. For more details on how to add tags and rehydration, see the Log Archive Setup section.

For service:ci-cd logs that are rehydrated from the Prod Archive, note the following:

  • If you do not use the Log Read Index Data legacy permission, these logs are accessible for CI-CD role members.
  • If you do use the Log Read Index Data legacy permission, these logs are not accessible for CI-CD role members, as the resulting historical view is restricted to PROD and ADMIN role members.

logs_public_config_api

Grants the ability to create or modify log configuration through the Datadog API:

The Log Public Configuration API permission only grants the permission to operate actions through API. For instance, a user without Log Write Exclusion Filter Permission cannot update sampling rate through API, even if granted The Log Public Configuration API permission.

Log data access

Grant the following permissions to manage read access on subsets of log data:

  • Logs Read Data (Recommended) offers finer grained access control by restricting a role’s access to logs matching a log restriction queries.
  • Logs Read Index Data is the legacy approach to restrict data access to indexed log data on a per-index basis (it is still required to have this permission enabled to access indexed data).

logs_read_data

Read access to log data. If granted, other restrictions then apply such as logs_read_index_data or with restriction query.

Roles are additive: if a user belongs to multiple roles, the data they have access to is the union of all the permissions from each of the roles.

Example:

  • If a user belongs to a role with log read data and also belongs to a role without log read data, then they have the permission to read data.
  • If a user is restricted to service:sandbox through one role, and is restricted to env:prod through another role, then the user can access all env:prod and service:sandbox logs.

To restrict users so they see no more than logs matching a restriction query, use the Data Access page in the Datadog App to:

  1. Create a restriction query.
  2. Assign one or multiple roles to that restriction query.
  3. Check what roles and users are assigned to which restriction queries.

This view lists:

  • Restricted Access section: all the restriction queries, and what role(s) are attached to them,
  • Unrestricted Access section: all roles that have log_read_data permission with no further restrictions,
  • No Access section: all roles that does not have the log_read_data permission.
Create a restriction query

Create a new restriction query defining its query filter. The new query appears in the list of restrictions with no role attached to it.

Create a Restriction Query
Assign a role to a restriction query

Pick the role wherever it stands, and assign it to the intended restriction query.

Note: Keep in mind that a role can be assigned no more than one restriction query. Meaning, when you assign a role to a restriction query, it loses connection to the restriction query it was already attached to.

Assign a role to Restriction Query

Likewise, use the same “Move” interaction to grant Unrestricted Access to a Role, or conversely to turn it into a No Access role.

Check restriction queries

This page won’t display more than 50 restriction queries at once, and more than 50 roles per section. In case you have hundreds if not thousands of roles and restriction queries, use the filters to scope this view down:

  • with the restriction query filter:
  • with the role filter:
  • with the user filter, which is a convenient way to see what a specific user belonging to multiple roles actually has access to:

Revoke or grant this permission from a role via the Roles API. Use Restriction Queries to scope the permission to a subset of Log Data.

Legacy permissions

These permissions are globally enabled by default for all users.

Logs Read Data permission comes on top of these legacy permissions. For instance, say a user is restricted to the query service:api.

  • If this user has scoped Read Index Data permission on audit and errors indexes, this user only sees service:api logs within these indexes.
  • If this user has livetail permission, this users sees only sees service:api logs in the livetail.

logs_read_index_data

Grants a role read access on some number of log indexes. Can be set either globally or limited to a subset of log indexes.

To scope this permission to a subset of indexes, first remove the logs_read_index_data and logs_modify_indexes permissions on the role. Then

Grant this role access to the index in Configuration page.

curl -X POST \
        https://app.datadoghq.com/api/v1/role/<ROLE_UUID>/permission/<PERMISSION_UUID> \
        -H "Content-Type: application/json" \
        -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
        -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
        -d '{
                "scope": {
                    "indexes": ["<INDEX-1_ID>",["<INDEX-2_ID>"]
                }
            }'

logs_live_tail

Grants a role the ability to use the Live Tail feature.

This permission is global, and grants access to the livetail irregardless of Log Read Index Data permission.

Further reading


\*Log Rehydration is a trademark of Datadog, Inc.