Configurar App and API Protection para Ruby en Docker
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:
- If your Ruby service doesn't have APM tracing set up, you can easily enable App and API Protection with Datadog's Automatic Installation
- 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:
- Installing the Datadog Agent
- Enabling App and API Protection monitoring
- Run Your Application
- Verifying the setup
Requisitos previos
- Docker instalado en tu host
- Aplicación Ruby en contenedores con Docker
- Tu clave de API Datadog
- Biblioteca de rastreo de Datadog Ruby (consulta requisitos de la versión)
1. Instalación del Datadog Agent
Instala el Datadog Agent siguiendo las instrucciones de instalación de Docker.
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:
Configura la biblioteca de Datadog añadiendo un inicializador:
Datadog.configure do |c|
c.service = 'your_service_name'
c.env = Rails.env
c.tracing.enabled = true
# Tracing instrumentation for Rails has to be explicitly enabled
c.tracing.instrument :rails
c.appsec.enabled = true
c.appsec.api_security.enabled = true
# Rails instrumentation is required for App and API Protection
c.appsec.instrument :rails
end
Añade el gem datadog a tu Gemfile y requiere la instrumentación automática:
gem 'datadog', '~> 2.0', require: 'datadog/auto_instrument'
Establece variables de entorno para tu aplicación. Añádelas a tu archivo de Docker:
# Set environment variables
ENV DD_APPSEC_ENABLED=true
ENV DD_API_SECURITY_ENABLED=true
ENV DD_SERVICE=<YOUR_SERVICE_NAME>
ENV DD_AGENT_HOST=<YOUR_AGENT_HOST>
ENV DD_ENV=<YOUR_ENVIRONMENT>
Para desactivar el rastreo de APM mientras se mantiene activada App and API Protection, debes establecer la configuración de rastreo de APM en false (falso).
Añade el gem datadog a tu Gemfile:
Configura la biblioteca de Datadog añadiendo un inicializador:
Datadog.configure do |c|
c.service = 'your_service_name'
c.env = Rails.env
c.agent.host = 'your_agent_host'
# Disable APM Tracing
c.tracing.enabled = false
# Tracing instrumentation for Rails has to be explicitly enabled
c.tracing.instrument :rails
c.appsec.enabled = true
c.appsec.api_security.enabled = true
# Rails instrumentation is required for App and API Protection
c.appsec.instrument :rails
end
Añade el gem datadog a tu Gemfile y requiere la instrumentación automática:
gem 'datadog', '~> 2.0', require: 'datadog/auto_instrument'
Establece variables de entorno para tu aplicación. Añádelas a tu archivo de Docker:
ENV DD_APPSEC_ENABLED=true
ENV DD_API_SECURITY_ENABLED=true
ENV DD_APM_TRACING_ENABLED=false
ENV DD_SERVICE=<YOUR_SERVICE_NAME>
ENV DD_AGENT_HOST=<YOUR_AGENT_HOST>
ENV DD_ENV=<YOUR_ENVIRONMENT>
3. Ejecutar tu aplicación
Crea tu imagen y luego ejecuta tu contenedor.
Cuando ejecutes tu contenedor, asegúrate de conectarlo a la misma red de Docker que el Datadog Agent y configura el host del agent correcto en tu aplicación.
4. Verificar la configuración
Para comprobar que App and API Protection funciona correctamente:
- Envía tráfico a tu aplicación.
- Comprueba el Inventario de servicio de App and API Protection en Datadog.
- Busca tu servicio y comprueba que App and API Protection está activada 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 solución de problemas de App and API Protection en Ruby.
Referencias adicionales
Más enlaces, artículos y documentación útiles: