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.
ASM for Envoy is in Preview

To try the preview of ASM for Envoy, follow the setup instructions below.

You can enable application security for the Envoy proxy. The Datadog Envoy integration has support for threat detection and blocking.

Prerequisites

Enabling threat detection

Get started

The ASM Envoy integration uses the Envoy external processing filter.

  1. Configure Envoy to use the external processing filter. For example:

    http_filters:
      # ... other filters
      - name: envoy.filters.http.ext_proc
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor
          config:
            grpc_service:
              envoy_grpc:
                cluster_name: datadog_ext_proc_cluster
                timeout: 1s
    
    clusters:
        # ... other clusters
        - name: datadog_ext_proc_cluster
          type: STRICT_DNS
          lb_policy: ROUND_ROBIN
          http2_protocol_options: {}
          transport_socket:
            name: envoy.transport_sockets.tls
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
          load_assignment:
            cluster_name: datadog_ext_proc_cluster
            endpoints:
              - lb_endpoints:
                  - endpoint:
                      address:
                        socket_address:
                          address: Your Datadog image host from step 2
                          port_value: 443
    

    Note: you need to replace Your Datadog image host from step 2 in the above example with the host where the Datadog Envoy docker image is running. You will configure this host next.

    You can find more configuration options available in the Envoy external processor documentation.

  2. Run a new container with the Datadog Envoy Docker image. The image is available on the Datadog GitHub Registry.

    The Docker image exposes some settings specifically for the Envoy integration:

    Environment variableDefault valueDescription
    DD_SERVICE_EXTENSION_HOST0.0.0.0gRPC server listening address.
    DD_SERVICE_EXTENSION_PORT443gRPC server port.
    DD_SERVICE_EXTENSION_HEALTHCHECK_PORT80HTTP server port for health checks.

    Configure the Datadog Agent to receive traces from the integration using the following environment variables:

    Environment variableDefault valueDescription
    DD_AGENT_HOSTlocalhostHostname where your Datadog Agent is running.
    DD_TRACE_AGENT_PORT8126Port of the Datadog Agent for trace collection.

    Une fois cette configuration terminée, la bibliothèque recueille des données de sécurité à partir de votre application et les envoie à l’Agent, qui les transmet à son tour à Datadog. Les règles de détection prêtes à l’emploi signalent alors les attaques et les problèmes potentiels de configuration, afin que vous puissiez agir en conséquence.

  3. Pour tester la détection des menaces Application Security Management, envoyez des patterns d’attaque connus à votre application. Par exemple, exécutez un fichier contenant le script curl suivant afin de déclencher la règle de détection de scanner de sécurité :

    for ((i=1;i<=250;i++)); 
    do
    # Target existing service’s routes
    curl https://your-application-url/existing-route -A dd-test-scanner-log;
    # Target non existing service’s routes
    curl https://your-application-url/non-existing-route -A dd-test-scanner-log;
    done

    Remarque : la plupart des versions récentes prennent en charge la valeur dd-test-scanner-log.

    Quelques minutes après avoir activé votre application et envoyé les patterns d’attaque, des informations sur les menaces s’affichent dans l’Application Signals Explorer. Des informations sur les vulnérabilités apparaissent également dans le Vulnerability Explorer.

Datadog Go Tracer and Envoy integration

Note: The ASM Envoy integration is built on top of the Datadog Go Tracer. It follows the same release process as the tracer, and its Docker images are tagged with the corresponding tracer version.

The Envoy integration uses the Datadog Go Tracer and inherits all environment variables from the tracer. You can find more information in Configuring the Go Tracing Library and ASM Library Configuration.

Limitations

The available functionality for Envoy version 1.71.0 has the following important limitations:

  • The request body is not inspected, regardless of its content type.

Further Reading