Este producto no es compatible con el sitio Datadog seleccionado. ().

You can enable App and API Protection for Ruby services with the following setup options:

  1. If your Ruby service doesn't have APM tracing set up, you can easily enable App and API Protection with Datadog's Automatic Installation
  2. Otherwise, keep reading the following manual setup instructions

Overview

App and API Protection works by leveraging the Datadog Ruby library to monitor and secure your Ruby service. The library integrates seamlessly with your existing application without requiring code changes.

For detailed compatibility information, including supported Ruby versions, frameworks, and deployment environments, see Ruby Compatibility Requirements.

This guide explains how to set up App and API Protection (AAP) for Ruby applications. The setup involves:

  1. Installing the Datadog Agent
  2. Enabling App and API Protection monitoring
  3. Run Your Application
  4. Verifying the setup

Requisitos previos

  • Clúster de Kubernetes
  • Aplicación Ruby en contenedor con Docker
  • kubectl configurado para acceder a tu clúster
  • Helm (recomendado para la instalación del Agent)
  • Tu clave de API Datadog
  • Bbiblioteca de rastreo Ruby Datadog (consulta los requisitos de la versión)

1. Instalación del Datadog Agent

Instala el Datadog Agent siguiendo las instrucciones de instalación de Kubernetes.

2. Activación de la monitorización de App and API Protection

Instala y configura el gem datadog en tu aplicación Ruby.

Añade el gem datadog a tu Gemfile:

gem 'datadog', '~> 2.0'

Configura la biblioteca Datadog añadiendo un inicializador:

Datadog.configure do |c|
  c.service = 'your_service_name'
  c.env = Rails.env

  c.agent.host = 'your_agent_host'

  c.tracing.enabled = true

  # La instrumentación del rastreo para Rails tiene que estar explícitamente activada
  c.tracing.instrument :rails

  c.appsec.enabled = true
  c.appsec.api_security.enabled = true

  # La instrumentación de Rails es necesaria para App and API Protection
  c.appsec.instrument :rails
end

Añade el gem datadog a tu Gemfile y solicita la instrumentación automática:

gem 'datadog', '~> 2.0', require: 'datadog/auto_instrument'

Configura variables de entorno para tu aplicación. Añádelas a tu archivo de configuración de despliegue:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-app
spec:
  template:
    spec:
      containers:
      - name: your-app
        image: your-app-image
        env:
        - name: DD_APPSEC_ENABLED
          value: "true"
        - name: DD_API_SECURITY_ENABLED
          value: "true"
        - name: DD_SERVICE
          value: "<MY_SERVICE>"
        - name: DD_ENV
          value: "<MY_ENV>"
        command: ["bin/rails"]
        args: ["server"]

Para desactivar el rastreo APM mientras se mantiene activado App and API Protection, debes definir la configuración del rastreo APM como false.

Añade el gem datadog a tu Gemfile:

gem 'datadog', '~> 2.0'

Configura la biblioteca Datadog añadiendo un inicializador:

Datadog.configure do |c|
  c.service = 'your_service_name'
  c.env = Rails.env

  c.agent.host = 'your_agent_host'

  # Desactivar el rastreo APM
  c.tracing.enabled = false

  # La instrumentación del rastreo para Rails tiene que estar explícitamente activada
  c.tracing.instrument :rails

  c.appsec.enabled = true
  c.appsec.api_security.enabled = true

  # La instrumentación para Rails es necesaria para App and API Protection
  c.appsec.instrument :rails
end

Añade el gem datadog a tu Gemfile y solicita la instrumentación automática:

gem 'datadog', '~> 2.0', require: 'datadog/auto_instrument'

Configura variables de entorno para tu aplicación. Añádelas a tu archivo de configuración de despliegue:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-app
spec:
  template:
    spec:
      containers:
      - name: your-app
        image: your-app-image
        env:
        - name: DD_APPSEC_ENABLED
          value: "true"
        - name: DD_API_SECURITY_ENABLED
          value: "true"
        - name: DD_APM_TRACING_ENABLED
          value: "false"
        - name: DD_SERVICE
          value: "<MY_SERVICE>"
        - name: DD_ENV
          value: "<MY_ENV>"
        command: ["bin/rails"]
        args: ["server"]

3. Ejecutar tu aplicación

Aplica tu despliegue actualizado:

kubectl apply -f your-deployment.yaml

4. Verificar la configuración

Para comprobar que App and API Protection funciona correctamente:

  1. Envía tráfico a tu aplicación.
  2. Comprueba el inventario de servicio de App and API Protection en Datadog.
  3. Busca tu servicio y comprueba que App and API Protection está activado en la columna Coverage (Cobertura).

Solucionar problemas

Si tienes problemas al configurar App and API Protection para tu aplicación Ruby, consulta la guía de resolución de problemas de App and API Protection en Ruby.

Referencias adicionales