Configuración YAML (.yaml)

YAML Estándar

YAML Ain’t Markup Language (YAML) es el formato de serialización de datos más utilizado en DevOps, infraestructura en la nube (Kubernetes, Docker Compose) y automatización CI/CD. Su sangría clara facilita la lectura.

Convertir de YAML a JSON

Convertidor gratuito de YAML a JSON en el navegador. Convierte archivos al instante en tu dispositivo.

Inspección y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de YAML inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Privado - los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de YAML inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

2D 2D 2D 0A

REPRESENTACIÓN ASCII: ---\n

Estandarización: YAML 1.2.2 Specification

Especificaciones técnicas

Arquitectura del contenedorFormato de serialización de datos legible basado en sangría; es un superconjunto de JSON que admite anclajes y alias
CompresiónFlujo de texto sin comprimir
Orden de bytes (Endianness)Flujo de texto UTF-8 / Unicode
Espacios de colorN/D (Serialización de datos)
Canales y estructuraMapeos (diccionarios clave-valor), secuencias (listas), valores escalares (cadenas, números y booleanos) y anclajes (&ref/*ref)
Dimensiones máximasTamaño de documento ilimitado (admite flujos de varios documentos separados por «---»)
TransparenciaNinguna
Streaming y progresivoLos flujos con varios documentos permiten procesarlos secuencialmente, uno por uno.

Matriz de comparación técnica: YAML frente a la competencia

Atributo técnicoYAML (Actual)JSONTOMLXML
Estilo de sintaxisJerarquía definida mediante sangríaCorchetes y comillas estrictosTablas y pares clave=valorEtiquetas de apertura y cierre verbosas
Soporte de comentariosNativo (comentarios #)No admite comentariosNativo (comentarios #)Comentarios con <!-- -->
Adopción de DevOpsLa compatibilidad varía según la aplicación.La compatibilidad varía según la aplicación.Configuración de paquetes de Rust/PythonConfiguración heredada empresarial
Reutilización de datosAnclajes (&) y alias (*) nativosNinguno (duplicación manual)Ninguno (duplicación manual)Entidades XML

Modos de corrupción comunes y guía de recuperación hexadecimal

El analizador indica «mapping values are not allowed here» (aquí no se permiten valores de mapeo) o informa de un error de sangría.

Causa raíz: Mezcla de tabuladores con espacios o niveles de sangría desalineados.

Recuperación: Cambia los tabuladores por espacios y Valida la sintaxis con YAML Formatter de File2File.app.

Análisis de seguridad y vectores de ataque al analizador

Históricamente, algunos analizadores YAML que admiten etiquetas de tipo personalizadas, como «yaml.load()» de PyYAML, permitían ejecutar código de forma remota al crear objetos arbitrarios.

Vectores de ataque conocidos

  • Ejecución de código arbitrario mediante etiquetas inseguras de deserialización de objetos (por ejemplo, «!!python/object/apply»).
  • Bombas de expansión de entidades (equivalentes a «billion laughs») creadas con anclajes y alias YAML.
  • Vulnerabilidades de confusión de tipos debido al análisis implícito de booleanos y marcas de tiempo.

Mejores prácticas defensivas: Usa siempre analizadores YAML seguros (como «yaml.safe_load()» en Python) y Limita la profundidad de expansión de los anclajes.

Orígenes históricos e hitos

2021Se publica la revisión YAML 1.2.2, que precisa la compatibilidad con JSON y las definiciones formales de la gramática.
2009YAML 1.2 establece que YAML es un superconjunto estricto de JSON: todo JSON válido también es YAML válido.
2001Clark Evans, Ingy döt Net y Oren Ben-Kiki crean YAML como alternativa a XML más fácil de leer.

Ventajas principales

  • YAML se usa mucho en herramientas de infraestructura, pero la compatibilidad y el comportamiento varían según la implementación.
  • Su sintaxis clara y legible evita el exceso de llaves, corchetes y comillas gracias a una sangría intuitiva.
  • Admite referencias y anclajes (&anchor / *anchor) para reutilizar bloques de configuración sin duplicarlos.

Limitaciones técnicas

  • Es sensible a los espacios en blanco: un tabulador accidental o un espacio de más pueden alterar la jerarquía del documento o causar errores de análisis.
  • Tiene problemas conocidos de conversión de tipos: palabras sin comillas como «no», «on» o «yes», y códigos de país como «NO» (Noruega), pueden interpretarse como valores booleanos.
  • Su análisis es mucho más lento que el de los formatos binarios o JSON estricto.

Curiosidades técnicas interesantes

  • YAML significaba originalmente «Yet Another Markup Language», pero se renombró en tono humorístico con el acrónimo recursivo «YAML Ain’t Markup Language» para subrayar que sirve para serializar datos.
  • El «problema de Noruega» es un error de programación conocido: en un archivo YAML, el código de país «NO» se interpretaba como el valor booleano false.
  • Todo archivo JSON válido también es un archivo YAML válido al 100 %.

Preguntas técnicas frecuentes

¿Para qué se utiliza YAML?

YAML es el lenguaje de configuración principal para la computación en la nube, el despliegue de clústeres de Kubernetes, los archivos Docker Compose, los flujos de trabajo de GitHub Actions y los ajustes de software.

¿Puedo usar tabuladores en archivos YAML?

No. La especificación oficial de YAML prohíbe usar tabuladores para la sangría. Usa siempre espacios (normalmente, dos por nivel).

¿Cómo puedo convertir YAML a JSON?

Puedes convertir archivos YAML a JSON limpio y validado con un clic, directamente en tu navegador con File2File.app y sin que los datos salgan de tu dispositivo.