diff --git a/hugo/config/_default/menus/main.en.yaml b/hugo/config/_default/menus/main.en.yaml index 4f7486a03f5..01b99f3675f 100644 --- a/hugo/config/_default/menus/main.en.yaml +++ b/hugo/config/_default/menus/main.en.yaml @@ -5764,6 +5764,11 @@ menu: parent: llm_obs_experiments identifier: llm_obs_experiments_api weight: 50305 + - name: Restrict Access to Projects + url: llm_observability/improve/experiments/access_control + parent: llm_obs_experiments + identifier: llm_obs_experiments_access_control + weight: 50306 - name: Configure url: llm_observability/configure/ parent: llm_obs diff --git a/hugo/content/en/account_management/rbac/data_access.md b/hugo/content/en/account_management/rbac/data_access.md index f2102448e4e..1287d89e7eb 100644 --- a/hugo/content/en/account_management/rbac/data_access.md +++ b/hugo/content/en/account_management/rbac/data_access.md @@ -142,7 +142,7 @@ If you are concerned about unauthorized data access through monitors, Datadog re ### Agent Observability -* **Supported telemetry**: Agent Observability traces are supported. Experiment event data (spans and evaluation metrics) for experiments in a project is also restricted by `ml_app`-keyed Restricted Datasets. Only the event data is restricted—experiment list views and metadata are not. Datasets, annotation queues, and managed prompts are not supported. +* **Supported telemetry**: Agent Observability traces are supported. Experiments are also supported: a Restricted Dataset keyed on `ml_app` whose value is an Experiments project ID restricts that project's spans, evaluation metrics, datasets, and dataset records, and hides the project and its experiments from list views, search, and direct links. For instructions, see [Restrict Access to Experiments Projects][14]. Annotation queues and managed prompts are not supported. * **OpenTelemetry**: When using [OpenTelemetry instrumentation][13], some data sent to Agent Observability may also be written to APM traces, as well as metrics and monitors. If you are protecting sensitive data with a Restricted Dataset on Agent Observability, consider also configuring Restricted Datasets on APM, metrics, or monitors with matching data boundaries. @@ -270,3 +270,4 @@ When querying data through Datadog APIs with restrictions enabled, users without [11]: /logs/guide/logs-rbac/?tab=ui#restrict-access-to-logs [12]: /dashboards/sharing/shared_dashboards/ [13]: /llm_observability/instrument/otel_instrumentation/ +[14]: /llm_observability/improve/experiments/access_control/ diff --git a/hugo/content/en/llm_observability/data_privacy_security_and_rbac.md b/hugo/content/en/llm_observability/data_privacy_security_and_rbac.md index b7062d174c4..82a38d9089f 100644 --- a/hugo/content/en/llm_observability/data_privacy_security_and_rbac.md +++ b/hugo/content/en/llm_observability/data_privacy_security_and_rbac.md @@ -18,6 +18,8 @@ Agent Observability allows you to restrict access to potentially sensitive data Access controls in Agent Observability are built on Datadog's [Data Access Control][1] feature, which enables you to regulate access to data deemed sensitive. You can use the `ml_app` tag to identify and restrict access to specific LLM applications within your organization. +The same mechanism restricts individual Experiments projects, including their datasets and dataset records. See [Restrict Access to Experiments Projects][4]. + ## Redacting data with span processors You can redact or modify sensitive data at the application level before it is sent to Datadog. Use span processors in the Agent Observability SDK to conditionally modify input and output data on spans, or prevent spans from being emitted entirely. @@ -42,4 +44,4 @@ By proactively scanning for sensitive data, Agent Observability ensures that con [1]: /account_management/rbac/data_access [2]: /llm_observability/instrument/sdk/#span-processing [3]: /security/sensitive_data_scanner/ - +[4]: /llm_observability/improve/experiments/access_control/ diff --git a/hugo/content/en/llm_observability/improve/experiments/access_control.md b/hugo/content/en/llm_observability/improve/experiments/access_control.md new file mode 100644 index 00000000000..568dcf60bd0 --- /dev/null +++ b/hugo/content/en/llm_observability/improve/experiments/access_control.md @@ -0,0 +1,111 @@ +--- +title: Restrict Access to Experiments Projects +description: Use Data Access Control to restrict an Agent Observability Experiments project to specific teams or roles. +further_reading: +- link: "/account_management/rbac/data_access" + tag: "Documentation" + text: "Data Access Control" +- link: "/llm_observability/data_privacy_security_and_rbac" + tag: "Documentation" + text: "Data Privacy, Security, and RBAC" +- link: "/account_management/rbac/permissions/#access-management" + tag: "Documentation" + text: "Access management permissions" +--- + +## Overview + +Experiments projects can contain sensitive material: the prompts and expected outputs stored in your datasets, the traces produced by an experiment run, and the evaluation results attached to them. Datadog's [Data Access Control][1] lets you restrict an individual project so that only the teams or roles you name can see it. + +When a project is restricted, users outside the granted principals: + +- Do not see the project, or its experiments and datasets, in any list view or search result. +- Receive a *not found* response when they open a direct link to the project or to anything inside it. +- Cannot read the project's dataset records, including inputs and expected outputs. +- Cannot read the evaluation metrics produced by the project's experiment runs. +- Cannot read the spans produced by those runs, unless the spans carry an `ml_app` value of their own. Experiments run through the SDK do produce such spans; see [Limitations](#limitations). +- Cannot create, modify, or delete anything inside the project, even with an ID they obtained earlier. + +Restrictions are enforced consistently in the Datadog UI and in the API, including requests authenticated with an application key: an application key carries the identity of the user who owns it, and that user's access is what applies. + +## Prerequisites + +- Data Access Control is configured for your organization. See [Data Access Control][1]. +- You have the Datadog Admin role, or another role carrying the [`user_access_manage` permission][2]. +- The project you want to restrict already exists in Experiments. + +## Restrict a project + +Access to Agent Observability data is keyed on the **`ml_app`** tag, and that one key covers two different things: + +- An **ML app** value restricts the traces your instrumented application sends under that `ml_app` name. +- An **Experiments project ID** restricts that project: its experiments, datasets, dataset records, and the spans and evaluation metrics produced by its experiment runs. + +A project is matched by its ID, never by its name. + +1. Navigate to [Organization Settings > Data Access Controls][3]. +2. Create a new policy that restricts a subset of data. +3. Name the policy something that identifies the project it protects, for example `Experiments - Fraud Detection`. +4. Add a filter on the **Agent Observability** product with the key `ml_app`, then **select the project from the list of values**. The list contains two groups: your ML apps (the `ml_app` values your instrumented applications send), and your Experiments projects, offered by name. Selecting a project stores its ID, which is what the restriction matches on. +5. Grant access to the teams or roles that should keep access to the project. A maximum of 50 principals can be attached to one policy. +6. Save the policy. + +The policy takes effect as soon as it is saved. The project, its experiments, its datasets, and its dataset records are hidden immediately, whatever their age. Spans and evaluation metrics are matched by a tag applied when they are ingested, so experiment runs from before your organization had this feature available are not covered; see [Limitations](#limitations). + +