Configuration YAML (.yaml)

Spécification Standard

YAML Ain’t Markup Language (YAML) est le format de sérialisation de données le plus utilisé dans le DevOps et les infrastructures cloud modernes (Kubernetes, Docker Compose), ainsi que pour l’automatisation CI/CD. Son indentation claire en facilite la lecture.

Convertir YAML en JSON

Outil de conversion gratuit de YAML vers JSON dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.

Inspection et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers YAML en inspectant leur séquence initiale d'octets binaires :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (octets magiques)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers YAML en inspectant leur séquence initiale d'octets binaires :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

2D 2D 2D 0A

REPRÉSENTATION ASCII : ---\n

Normalisation : Spécification YAML 1.2.2

Spécifications techniques

Architecture de conteneurFormat de sérialisation de données lisible, fondé sur l’indentation ; surensemble de JSON prenant en charge les ancres et les alias
CompressionFlux de texte non compressé
Ordre des octetsFlux de texte UTF-8 / Unicode
Espaces colorimétriquesSans objet (sérialisation de données)
Canaux et structureMappages (dictionnaires clé-valeur), séquences (listes), types scalaires (chaînes, nombres, booléens) et ancres (&ref/*ref)
Dimensions maximalesTaille de document illimitée (prend en charge les flux multi-documents séparés par '---')
TransparenceAucune
Prise en charge du traitement en continuLes flux multi-documents permettent un traitement séquentiel document par document

Matrice de comparaison technique : YAML face aux concurrents

Attribut techniqueYAML (Actuel)JSONTOMLXML
Style de syntaxeHiérarchie définie par l’indentationCrochets et guillemets strictsTables et paires clé=valeurBalises d'ouverture/fermeture verbeuses
Prise en charge des commentairesNatif (commentaires #)Aucun commentaire autoriséNatif (commentaires #)<!-- commentaires -->
Adoption DevOpsLa prise en charge varie selon le logiciel.La prise en charge varie selon le logiciel.Configuration de paquet Rust/PythonConfiguration d’entreprise ancienne
Réutilisation des donnéesAncres natives (&) et alias (*)Aucune (duplication manuelle)Aucune (duplication manuelle)Entités XML

Modes de corruption courants et guide de restauration hexadécimale

Erreur d'analyseur : 'mapping values are not allowed here' ou erreur d'indentation.

Cause initiale: Mélange de tabulations et d'espaces ou niveaux d'indentation mal alignés.

Récupération: Convertissez les tabulations en espaces et validez la syntaxe à l'aide du formateur YAML File2File.app.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les analyseurs YAML qui prennent en charge les balises de type personnalisées (comme la fonction « yaml.load() » de PyYAML) ont historiquement permis l’exécution de code à distance en instanciant des objets arbitraires.

Vecteurs d’attaque connus

  • Exécution de code arbitraire par le biais de balises de désérialisation d'objets non sécurisées (par exemple, '!!python/object/apply').
  • Bombes d’expansion (équivalent YAML de l’attaque « Billion Laughs », fondée sur les ancres et les alias).
  • Vulnérabilités liées à une confusion de types due à l'analyse implicite des booléens et des horodatages.

Bonnes pratiques de défense: Utilisez toujours des analyseurs YAML sécurisés ('yaml.safe_load()' en Python) et appliquez des limites de profondeur d'expansion d'ancres.

Origines historiques et jalons

2021Publication de la révision YAML 1.2.2, affinant la compatibilité avec JSON et les définitions de grammaire formelle.
2009YAML 1.2 définit YAML comme un sur-ensemble strict de JSON, ce qui signifie que tout JSON valide est également du YAML valide.
2001Clark Evans, Ingy döt Net et Oren Ben-Kiki créent YAML comme une alternative conviviale à XML.

Principaux avantages

  • YAML est courant dans les outils d’infrastructure, mais la prise en charge et le comportement varient selon l’implémentation.
  • Syntaxe propre et lisible : élimine l'encombrement des accolades, des crochets et des guillemets grâce à une indentation intuitive.
  • Prend en charge les ancres et les alias (&anchor / *anchor), qui permettent de réutiliser des blocs de configuration sans les dupliquer.

Limites techniques

  • Le format est sensible aux espaces : une tabulation ou un espace de trop peut fausser la hiérarchie du document ou provoquer une erreur d’analyse.
  • La coercition de type est une source connue de problèmes : des mots non entourés de guillemets, comme « no », « on » ou « yes », ainsi que des codes de pays (par exemple « NO » pour la Norvège), peuvent être convertis silencieusement en booléens.
  • Vitesse d'analyse nettement plus lente par rapport aux formats binaires ou au JSON strict.

Faits intéressants

  • YAML signifiait à l’origine « Yet Another Markup Language ». Son nom a ensuite été remplacé, sur le ton de l’humour, par l’acronyme récursif « YAML Ain’t Markup Language » pour souligner sa vocation à la sérialisation de données.
  • Le « Problème norvégien » est un bogue de programmation célèbre où le code pays 'NO' dans un fichier YAML était analysé comme le booléen 'false'.
  • Tout fichier JSON valide est également un fichier YAML valide.

Foire aux questions techniques

À quoi sert YAML ?

YAML est principalement utilisé pour décrire la configuration de services cloud, de clusters Kubernetes, de fichiers Docker Compose, de workflows GitHub Actions et de logiciels.

Puis-je utiliser des tabulations dans les fichiers YAML ?

Non. La spécification YAML officielle interdit strictement l'utilisation de caractères de tabulation pour l'indentation ; vous devez toujours utiliser des espaces (généralement 2 espaces par niveau).

Comment puis-je convertir YAML en JSON ?

Avec File2File.app, convertissez des fichiers YAML en JSON propre et validé en un clic, directement dans votre navigateur et en toute confidentialité.