Aller au contenu
English
Cloud medium

Images, cloud-init et service de métadonnées

5 min de lecture

Une machine qu'on configure à la main après son démarrage est une machine qu'on ne saura pas recréer. Cette leçon montre comment préparer une instance au moment où elle démarre, avec une image système et un fichier de configuration, puis comment elle obtient ses identifiants sans qu'aucun secret n'ait été stocké dessus.

  • Préparer une machine au démarrage avec cloud-init, sans y toucher ensuite.
  • Distinguer ce qui appartient à l'image de ce qui appartient au démarrage.
  • Comprendre le service de métadonnées, qui donne à la machine son identité.
  • Protéger ce service, cible d'une classe d'attaques bien connue.

Une image est le disque de départ de votre machine. Trois façons de faire cohabitent, et le choix a des conséquences sur la sécurité comme sur le temps de démarrage.

ApprocheCommentCe qu'elle coûte
Image officielle plus configuration au démarragecloud-init installe et configuredémarrage plus long, dépendances externes
Image préparée par vousconstruite en amont, prête à l'emploiun travail de fabrication, et un cycle de mise à jour
Image officielle plus configuration manuellequelqu'un se connecte et installeà éviter : rien n'est reproductible

La troisième ligne mérite son avertissement. Une machine configurée à la main est une machine que personne ne saura recréer à l'identique, y compris celui qui l'a faite. Le jour où elle tombe, l'incident dure le temps de retrouver ce qui avait été installé.

cloud-init est le mécanisme standard, présent sur pratiquement toutes les images Linux officielles, quel que soit le fournisseur. Il lit une configuration que vous fournissez à la création et l'applique au premier démarrage.

#cloud-config
package_update: true
packages:
- nginx
users:
- name: appli
groups: [sudo]
shell: /bin/bash
ssh_authorized_keys:
- ssh-ed25519 AAAA... votre-cle
write_files:
- path: /etc/nginx/conf.d/app.conf
content: |
server { listen 8080; root /var/www/app; }
runcmd:
- systemctl enable --now nginx

Le service de métadonnées : ce que votre machine sait d'elle-même

Section intitulée « Le service de métadonnées : ce que votre machine sait d'elle-même »

Chaque machine du cloud peut interroger une adresse locale spéciale qui lui répond sur sa propre configuration, et, surtout, lui remet des identifiants temporaires. C'est le mécanisme qui rend possible l'identité attachée à la ressource décrite dans le principe API-first : la machine n'a aucun secret stocké, elle demande un jeton au moment de s'en servir.

Cette adresse est locale au serveur physique : elle n'est pas routée, elle ne répond qu'aux processus de la machine elle-même, et la réponse est propre à cette machine.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn