Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:tech_team:traefik [2021/11/16 00:45] – qduchemi | technique:tech_team:traefik [2023/01/08 22:12] (Version actuelle) – pourquoi ajouter docker-socket-proxy ? ppom | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
Une des pièces centrales de l' | Une des pièces centrales de l' | ||
- | < | + | Comme on l'a vu dans les pages précédentes, |
- | * La documentation officielle peut être retrouvée ici : https://doc.traefik.io/ | + | |
- | * La configuration spécifique pour Picasoft est versionnée ici : https:// | + | Dans cette page, on va voir en illustration le problème avec les ports, et comment le résoudre grâce à Traefik. =) |
- | </ | + | |
## Problématique | ## Problématique | ||
Ligne 13: | Ligne 12: | ||
Sur chaque machine, Picasoft héberge plusieurs services web accessibles via une URL. Lors de la consultation sur un navigateur web, cette URL est traduite en adresse IP, et permet de trouver la machine qui correspond à l'URL. | Sur chaque machine, Picasoft héberge plusieurs services web accessibles via une URL. Lors de la consultation sur un navigateur web, cette URL est traduite en adresse IP, et permet de trouver la machine qui correspond à l'URL. | ||
- | Chaque service tourne dans un conteneur Docker. En prenant | + | Chaque service tourne dans un conteneur Docker. En prenant |
{{ : | {{ : | ||
- | Le navigateur contacte naturellement le port `443` car l'URL est en HTTPS, dans cet exemple. | + | < |
< | < | ||
Ligne 39: | Ligne 38: | ||
C'est une solution simple, néanmoins elle nécessite d' | C'est une solution simple, néanmoins elle nécessite d' | ||
+ | |||
+ | < | ||
## Utiliser un reverse proxy | ## Utiliser un reverse proxy | ||
Ligne 53: | Ligne 54: | ||
< | < | ||
- | Il y a plusieurs solutions. `nginx` peut tout à faire être [utilisé comme reverse proxy](https:// | + | Il y a plusieurs solutions. `nginx` peut tout à faire être [utilisé comme reverse proxy](https:// |
C'est pourquoi nous utilisons Traefik, un outil clé en main pour Docker. Traefik fonctionne comme un reverse proxy traditionnel, | C'est pourquoi nous utilisons Traefik, un outil clé en main pour Docker. Traefik fonctionne comme un reverse proxy traditionnel, | ||
Ligne 91: | Ligne 92: | ||
< | < | ||
+ | |||
+ | ### Point sécurité : réduction de la surface d' | ||
+ | |||
+ | 1. Traefik est un service critique pour la sécurité de nos services : c'est un des seuls services qui est accessible en première ligne depuis Internet. | ||
+ | De tous nos services, c'est un de ceux qui peut être le plus plausiblement compromis. | ||
+ | |||
+ | 2. Pour avoir la liste des autres conteneurs Docker, Traefik se connecte normalement via la socket d' | ||
+ | C'est une permission accordée que très exceptionnellement à un conteneur, car elle donne tous les droits sur Docker, et donc les droits `root` par extension. | ||
+ | |||
+ | Pour éviter de donner trop de permissions à Traefik, on utilise un [intermédiaire](https:// | ||
+ | Cet intermédiaire n'est pas accessible depuis le monde extérieur, donc difficile à compromettre. | ||
+ | Il ne va autoriser que les requêtes légitimes de Traefik (lister les conteneurs) et interdire toute autre tentative de connexion (créer ou supprimer un conteneur, un volume, etc). | ||
+ | |||
+ | ### Et plus concrètement ? | ||
+ | |||
+ | C'est parti pour un peu plus de pratique sur la [[technique: |