Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Compliance

Datadog Cloud Security Misconfigurations provides aggregated views of compliance rules and findings across your cloud resources, helping you assess posture against industry frameworks (such as HIPAA, SOC 2, ISO 27001) and custom frameworks. Learn more at https://docs.datadoghq.com/security/cloud_security_management/misconfigurations/#maintain-compliance-with-industry-frameworks-and-benchmarks.

Note: This endpoint is in Preview and subject to change. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/v2/compliance_findings/rule_based_viewhttps://api.ap2.datadoghq.com/api/v2/compliance_findings/rule_based_viewhttps://api.datadoghq.eu/api/v2/compliance_findings/rule_based_viewhttps://api.ddog-gov.com/api/v2/compliance_findings/rule_based_viewhttps://api.us2.ddog-gov.com/api/v2/compliance_findings/rule_based_viewhttps://api.datadoghq.com/api/v2/compliance_findings/rule_based_viewhttps://api.us3.datadoghq.com/api/v2/compliance_findings/rule_based_viewhttps://api.us5.datadoghq.com/api/v2/compliance_findings/rule_based_view

Présentation

Get an aggregated view of compliance rules with their pass, fail, and muted finding counts. Supports filtering by compliance framework, framework version, and additional query filters. This endpoint requires the security_monitoring_findings_read permission.

OAuth apps require the security_monitoring_findings_read authorization scope to access this endpoint.

Arguments

Chaînes de requête

Nom

Type

Description

to [required]

integer

Timestamp of the query end, in milliseconds since the Unix epoch.

framework

string

Compliance framework handle to filter rules and findings by.

version

string

Version of the compliance framework to filter rules and findings by.

query_findings_without_framework_version

boolean

When true, returns findings without a framework_version tag. Used for findings from custom frameworks or those created before framework versioning was introduced.

include_rules_without_findings

boolean

When true, includes rules in the response that have no associated findings.

is_custom

boolean

Set to true when the requested framework is a custom framework.

query

string

Additional event-platform filters applied to the underlying findings query. For example, scored:true project_id:datadog-prod-us5.

Réponse

OK

Response containing an aggregated view of compliance rules with their finding statistics.

Expand All

Champ

Type

Description

data [required]

object

Data envelope for the rule-based view response.

attributes [required]

object

Attributes of the rule-based view.

count [required]

int64

Total number of rules in the view.

rules [required]

[object]

List of rules in the rule-based view.

compliance_frameworks [required]

[object]

List of compliance framework mappings associated with the rule.

control

string

Identifier of the control inside the requirement.

framework

string

Handle of the compliance framework.

is_default

boolean

Whether the framework is a Datadog default framework. true indicates a Datadog framework and false indicates a custom framework.

message

string

Optional message describing the framework mapping for the rule.

requirement

string

Name of the requirement that contains the control.

version

string

Version of the compliance framework.

enabled [required]

boolean

Whether the rule is enabled.

id [required]

string

Unique identifier of the rule.

name [required]

string

Human-readable name of the rule.

resourceAttributes [required]

[string]

List of resource attribute names exposed by the rule.

resourceCategory [required]

string

Resource category targeted by the rule.

resourceType [required]

string

Resource type targeted by the rule.

stats [required]

object

Counts of findings for the rule, grouped by their evaluation status.

fail [required]

int64

Number of findings that failed evaluation.

muted [required]

int64

Number of findings that have been muted.

pass [required]

int64

Number of findings that passed evaluation.

status [required]

string

Severity associated with the rule (for example, info, low, medium, high, or critical).

tags [required]

[string]

List of tags attached to the rule.

type [required]

enum

The category of the security rule. Allowed enum values: cloud_configuration,infrastructure_configuration,api_security

id [required]

string

Unique identifier of the rule-based view document.

type [required]

enum

The type of the resource. The value should always be rule_based_view. Allowed enum values: rule_based_view

default: rule_based_view

{
  "data": {
    "attributes": {
      "count": 1,
      "rules": [
        {
          "compliance_frameworks": [
            {
              "control": "164.308-a-4-i",
              "framework": "hipaa",
              "is_default": true,
              "message": "",
              "requirement": "Information-Access-Management",
              "version": "1"
            }
          ],
          "enabled": true,
          "id": "qjx-udx-xo8",
          "name": "IAM roles should not allow untrusted GitHub Actions to assume them",
          "resourceAttributes": [
            "instance_id"
          ],
          "resourceCategory": "identity",
          "resourceType": "aws_iam_role",
          "stats": {
            "fail": 0,
            "muted": 0,
            "pass": 3
          },
          "status": "critical",
          "tags": [
            "security:compliance"
          ],
          "type": "cloud_configuration"
        }
      ]
    },
    "id": "JSONAPI_USELESS_ID",
    "type": "rule_based_view"
  }
}

Bad Request

API error response.

Expand All

Champ

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Not Authorized

API error response.

Expand All

Champ

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Champ

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Service Unavailable

API error response.

Expand All

Champ

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Exemple de code

                  # Required query arguments
export to="1.739982278e+12"
# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/compliance_findings/rule_based_view?to=${to}" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Get the rule-based view of compliance findings returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.compliance_api import ComplianceApi

configuration = Configuration()
configuration.unstable_operations["get_rule_based_view"] = True
with ApiClient(configuration) as api_client:
    api_instance = ComplianceApi(api_client)
    response = api_instance.get_rule_based_view(
        to=1739982278000,
    )

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Get the rule-based view of compliance findings returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.get_rule_based_view".to_sym] = true
end
api_instance = DatadogAPIClient::V2::ComplianceAPI.new
p api_instance.get_rule_based_view(1739982278000)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Get the rule-based view of compliance findings returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.GetRuleBasedView", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewComplianceApi(apiClient)
	resp, r, err := api.GetRuleBasedView(ctx, 1739982278000, *datadogV2.NewGetRuleBasedViewOptionalParameters())

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `ComplianceApi.GetRuleBasedView`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `ComplianceApi.GetRuleBasedView`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Get the rule-based view of compliance findings returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ComplianceApi;
import com.datadog.api.client.v2.model.RuleBasedViewResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.getRuleBasedView", true);
    ComplianceApi apiInstance = new ComplianceApi(defaultClient);

    try {
      RuleBasedViewResponse result = apiInstance.getRuleBasedView(1739982278000L);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ComplianceApi#getRuleBasedView");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Get the rule-based view of compliance findings returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_compliance::ComplianceAPI;
use datadog_api_client::datadogV2::api_compliance::GetRuleBasedViewOptionalParams;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.GetRuleBasedView", true);
    let api = ComplianceAPI::with_config(configuration);
    let resp = api
        .get_rule_based_view(1739982278000, GetRuleBasedViewOptionalParams::default())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Get the rule-based view of compliance findings returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.getRuleBasedView"] = true;
const apiInstance = new v2.ComplianceApi(configuration);

const params: v2.ComplianceApiGetRuleBasedViewRequest = {
  to: 1739982278000,
};

apiInstance
  .getRuleBasedView(params)
  .then((data: v2.RuleBasedViewResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"