Crear un filtro de exclusión WAF
https://api.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.us3.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.us5.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.datadoghq.eu/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.ap1.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.ap2.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.uk1.datadoghq.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.ddog-gov.com/api/v2/remote_config/products/asm/waf/exclusion_filtershttps://api.us2.ddog-gov.com/api/v2/remote_config/products/asm/waf/exclusion_filtersDescripción general
Crea un nuevo filtro de exclusión WAF con los parámetros dados.
Una solicitud coincidente con un filtro de exclusión será ignorada por el producto Application Security WAF. Ve a https://app.datadoghq.com/security/appsec/passlist para revisar los filtros de exclusión existentes (también llamados entradas de lista de aprobado).
Solicitud
Body Data (required)
La definición del nuevo filtro de exclusión WAF.
data [required]Objeto de solicitud para crear un único filtro de exclusión WAF.
attributes [required]Attributes for creating a WAF exclusion filter.
description [required]A description for the exclusion filter.
enabled [required]Indicates whether the exclusion filter is enabled.
ip_listThe client IP addresses matched by the exclusion filter (CIDR notation is supported).
on_matchThe action taken when the exclusion filter matches. When set to monitor, security traces are emitted but the requests are not blocked. By default, security traces are not emitted and the requests are not blocked.
monitorparametersA list of parameters matched by the exclusion filter in the HTTP query string and HTTP request body. Nested parameters can be matched by joining fields with a dot character.
path_globThe HTTP path glob expression matched by the exclusion filter.
rules_targetThe WAF rules targeted by the exclusion filter.
rule_idTarget a single WAF rule based on its identifier.
tagsTarget multiple WAF rules based on their tags.
categoryThe category of the targeted WAF rules.
typeThe type of the targeted WAF rules.
scopeThe services where the exclusion filter is deployed.
envDeploy on this environment.
serviceDeploy on this service.
type [required]Type of the resource. The value should always be exclusion_filter.
exclusion_filterexclusion_filter{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}Respuesta
OK
Response object for a single WAF exclusion filter.
dataA JSON:API resource for an WAF exclusion filter.
attributesAttributes describing a WAF exclusion filter.
descriptionA description for the exclusion filter.
enabledIndicates whether the exclusion filter is enabled.
event_queryThe event query matched by the legacy exclusion filter. Cannot be created nor updated.
ip_listThe client IP addresses matched by the exclusion filter (CIDR notation is supported).
metadataExtra information about the exclusion filter.
added_atThe creation date of the exclusion filter.
added_byThe handle of the user who created the exclusion filter.
added_by_nameThe name of the user who created the exclusion filter.
modified_atThe last modification date of the exclusion filter.
modified_byThe handle of the user who last modified the exclusion filter.
modified_by_nameThe name of the user who last modified the exclusion filter.
on_matchThe action taken when the exclusion filter matches. When set to monitor, security traces are emitted but the requests are not blocked. By default, security traces are not emitted and the requests are not blocked.
monitorparametersA list of parameters matched by the exclusion filter in the HTTP query string and HTTP request body. Nested parameters can be matched by joining fields with a dot character.
path_globThe HTTP path glob expression matched by the exclusion filter.
rules_targetThe WAF rules targeted by the exclusion filter.
rule_idTarget a single WAF rule based on its identifier.
tagsTarget multiple WAF rules based on their tags.
categoryThe category of the targeted WAF rules.
typeThe type of the targeted WAF rules.
scopeThe services where the exclusion filter is deployed.
envDeploy on this environment.
serviceDeploy on this service.
search_queryGenerated event search query for traces matching the exclusion filter.
idThe identifier of the WAF exclusion filter.
typeType of the resource. The value should always be exclusion_filter.
exclusion_filterexclusion_filter{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"event_query": "string",
"ip_list": [
"198.51.100.72"
],
"metadata": {
"added_at": "2019-09-19T10:00:00.000Z",
"added_by": "string",
"added_by_name": "string",
"modified_at": "2019-09-19T10:00:00.000Z",
"modified_by": "string",
"modified_by_name": "string"
},
"on_match": "string",
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"rule_id": "dog-913-009",
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
],
"search_query": "string"
},
"id": "3dd-0uc-h1s",
"type": "exclusion_filter"
}
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Not Authorized
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Concurrent Modification
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Ejemplo de código
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/remote_config/products/asm/waf/exclusion_filters" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"description": "Exclude false positives on a path",
"enabled": true,
"parameters": [
"list.search.query"
],
"path_glob": "/accounts/*",
"rules_target": [
{
"tags": {
"category": "attack_attempt",
"type": "lfi"
}
}
],
"scope": [
{
"env": "www",
"service": "prod"
}
]
},
"type": "exclusion_filter"
}
}
EOF// Create a WAF exclusion filter 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() {
body := datadogV2.ApplicationSecurityWafExclusionFilterCreateRequest{
Data: datadogV2.ApplicationSecurityWafExclusionFilterCreateData{
Attributes: datadogV2.ApplicationSecurityWafExclusionFilterCreateAttributes{
Description: "Exclude false positives on a path",
Enabled: true,
Parameters: []string{
"list.search.query",
},
PathGlob: datadog.PtrString("/accounts/*"),
RulesTarget: []datadogV2.ApplicationSecurityWafExclusionFilterRulesTarget{
{
Tags: &datadogV2.ApplicationSecurityWafExclusionFilterRulesTargetTags{
Category: datadog.PtrString("attack_attempt"),
Type: datadog.PtrString("lfi"),
},
},
},
Scope: []datadogV2.ApplicationSecurityWafExclusionFilterScope{
{
Env: datadog.PtrString("www"),
Service: datadog.PtrString("prod"),
},
},
},
Type: datadogV2.APPLICATIONSECURITYWAFEXCLUSIONFILTERTYPE_EXCLUSION_FILTER,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewApplicationSecurityApi(apiClient)
resp, r, err := api.CreateApplicationSecurityWafExclusionFilter(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ApplicationSecurityApi.CreateApplicationSecurityWafExclusionFilter`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ApplicationSecurityApi.CreateApplicationSecurityWafExclusionFilter`:\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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create a WAF exclusion filter returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ApplicationSecurityApi;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterCreateAttributes;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterCreateData;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterCreateRequest;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterResponse;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterRulesTarget;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterRulesTargetTags;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterScope;
import com.datadog.api.client.v2.model.ApplicationSecurityWafExclusionFilterType;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
ApplicationSecurityApi apiInstance = new ApplicationSecurityApi(defaultClient);
ApplicationSecurityWafExclusionFilterCreateRequest body =
new ApplicationSecurityWafExclusionFilterCreateRequest()
.data(
new ApplicationSecurityWafExclusionFilterCreateData()
.attributes(
new ApplicationSecurityWafExclusionFilterCreateAttributes()
.description("Exclude false positives on a path")
.enabled(true)
.parameters(Collections.singletonList("list.search.query"))
.pathGlob("/accounts/*")
.rulesTarget(
Collections.singletonList(
new ApplicationSecurityWafExclusionFilterRulesTarget()
.tags(
new ApplicationSecurityWafExclusionFilterRulesTargetTags()
.category("attack_attempt")
.type("lfi"))))
.scope(
Collections.singletonList(
new ApplicationSecurityWafExclusionFilterScope()
.env("www")
.service("prod"))))
.type(ApplicationSecurityWafExclusionFilterType.EXCLUSION_FILTER));
try {
ApplicationSecurityWafExclusionFilterResponse result =
apiInstance.createApplicationSecurityWafExclusionFilter(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling"
+ " ApplicationSecurityApi#createApplicationSecurityWafExclusionFilter");
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create a WAF exclusion filter returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.application_security_api import ApplicationSecurityApi
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_create_attributes import (
ApplicationSecurityWafExclusionFilterCreateAttributes,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_create_data import (
ApplicationSecurityWafExclusionFilterCreateData,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_create_request import (
ApplicationSecurityWafExclusionFilterCreateRequest,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_rules_target import (
ApplicationSecurityWafExclusionFilterRulesTarget,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_rules_target_tags import (
ApplicationSecurityWafExclusionFilterRulesTargetTags,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_scope import (
ApplicationSecurityWafExclusionFilterScope,
)
from datadog_api_client.v2.model.application_security_waf_exclusion_filter_type import (
ApplicationSecurityWafExclusionFilterType,
)
body = ApplicationSecurityWafExclusionFilterCreateRequest(
data=ApplicationSecurityWafExclusionFilterCreateData(
attributes=ApplicationSecurityWafExclusionFilterCreateAttributes(
description="Exclude false positives on a path",
enabled=True,
parameters=[
"list.search.query",
],
path_glob="/accounts/*",
rules_target=[
ApplicationSecurityWafExclusionFilterRulesTarget(
tags=ApplicationSecurityWafExclusionFilterRulesTargetTags(
category="attack_attempt",
type="lfi",
),
),
],
scope=[
ApplicationSecurityWafExclusionFilterScope(
env="www",
service="prod",
),
],
),
type=ApplicationSecurityWafExclusionFilterType.EXCLUSION_FILTER,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = ApplicationSecurityApi(api_client)
response = api_instance.create_application_security_waf_exclusion_filter(body=body)
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create a WAF exclusion filter returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::ApplicationSecurityAPI.new
body = DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterCreateRequest.new({
data: DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterCreateData.new({
attributes: DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterCreateAttributes.new({
description: "Exclude false positives on a path",
enabled: true,
parameters: [
"list.search.query",
],
path_glob: "/accounts/*",
rules_target: [
DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterRulesTarget.new({
tags: DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterRulesTargetTags.new({
category: "attack_attempt",
type: "lfi",
}),
}),
],
scope: [
DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterScope.new({
env: "www",
service: "prod",
}),
],
}),
type: DatadogAPIClient::V2::ApplicationSecurityWafExclusionFilterType::EXCLUSION_FILTER,
}),
})
p api_instance.create_application_security_waf_exclusion_filter(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create a WAF exclusion filter returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_application_security::ApplicationSecurityAPI;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterCreateAttributes;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterCreateData;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterCreateRequest;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterRulesTarget;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterRulesTargetTags;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterScope;
use datadog_api_client::datadogV2::model::ApplicationSecurityWafExclusionFilterType;
use std::collections::BTreeMap;
#[tokio::main]
async fn main() {
let body = ApplicationSecurityWafExclusionFilterCreateRequest::new(
ApplicationSecurityWafExclusionFilterCreateData::new(
ApplicationSecurityWafExclusionFilterCreateAttributes::new(
"Exclude false positives on a path".to_string(),
true,
)
.parameters(vec!["list.search.query".to_string()])
.path_glob("/accounts/*".to_string())
.rules_target(vec![ApplicationSecurityWafExclusionFilterRulesTarget::new(
)
.tags(
ApplicationSecurityWafExclusionFilterRulesTargetTags::new()
.category("attack_attempt".to_string())
.type_("lfi".to_string())
.additional_properties(BTreeMap::from([])),
)])
.scope(vec![ApplicationSecurityWafExclusionFilterScope::new()
.env("www".to_string())
.service("prod".to_string())]),
ApplicationSecurityWafExclusionFilterType::EXCLUSION_FILTER,
),
);
let configuration = datadog::Configuration::new();
let api = ApplicationSecurityAPI::with_config(configuration);
let resp = api
.create_application_security_waf_exclusion_filter(body)
.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.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run/**
* Create a WAF exclusion filter returns "OK" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v2.ApplicationSecurityApi(configuration);
const params: v2.ApplicationSecurityApiCreateApplicationSecurityWafExclusionFilterRequest =
{
body: {
data: {
attributes: {
description: "Exclude false positives on a path",
enabled: true,
parameters: ["list.search.query"],
pathGlob: "/accounts/*",
rulesTarget: [
{
tags: {
category: "attack_attempt",
type: "lfi",
},
},
],
scope: [
{
env: "www",
service: "prod",
},
],
},
type: "exclusion_filter",
},
},
};
apiInstance
.createApplicationSecurityWafExclusionFilter(params)
.then((data: v2.ApplicationSecurityWafExclusionFilterResponse) => {
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"