This commit is contained in:
Emmanuel Garette 2020-07-03 13:53:07 +02:00
parent 05c2e68e0d
commit 214de69489
6 changed files with 209 additions and 218 deletions

View File

@ -10,6 +10,12 @@
## [Terminologie](./definition.md)
## [Types d'usagers](./user.md)
## [Types de données](./data.md)
## [Différents composants]('./components.md)
## [Fonctionnement général](./infrastructure.md)
## [Gestion de configuration](./configuration.md)
## [Réseau d'administration](./admin_network.md)

23
admin_network.md Normal file
View File

@ -0,0 +1,23 @@
### Réseau d'administration
#### Le réseau
Un réseau d'administration est mis en place.
Les administrateurs doivent être physiquement sur ce réseau pour faire des tâches d'administration sur les machines.
Ce réseau n'est pas routé.
Seul les tâches d'adminitration y sont autorisés.
Tout le traffic sur ce réseau doit être considéré comme illégitime et doit générer une alerte.
#### L'administration via ce réseau
- les administrateurs doivent pouvoir se connecter via le réseau d'administration sur les différentes machines
- il faut que l'administrateur ait des droits spécifiques sur la machine
- les droits utilisateurs sont définit dans les données de configuration
- le compte nécessite un mot de passe pour devenir root
- les connexions sont valide sans passer par le mécanisme TOFU
- le répertoire de connexion est temporaire et créé à la connexion, aucune donnée utilisateur dans ce répertoire ne sera conservé
- mode secours : il existe un mode secours où l'administrateur peut se connecter en root via TTY. Ce mode n'est a utilisé qu'en dernier recours et doit être justifié. Une alerte doit être remontée.

88
components.md Normal file
View File

@ -0,0 +1,88 @@
### Différents composants
#### Description de l'infrastructure
La description de l'infrastructure se fait par les administrateurs suivant les droits.
L'infrastructure est décrit via la ligne de commande.
L'infrastructure se défini avec les objets suivant :
- le cluster de virtualisation
- des noeuds de calculs
- des sites
- des zones
- des services
#### Génération des données de configuration
FIXME description de la partie Rougail
#### Installation du système
Les données du système sont installés de façon automatique.
L'installation se fait en suivant les recettes mis à diposition par les contributeurs.
Les recettes sont spécifiques à la distribution.
Le système installé est ensuite mis à disposition dans le disque prévu à cette effet. Ce disque est générique et peut servir pour plusieurs service de même type.
#### Personnalisation des fichiers de configuration
Les fichiers de configuration sont générés à partir des recettes fournis par les contributeurs et la configuration défini par l'administrateur.
L'administrateur prépare la configuration via la ligne de commande.
L'administrateur peut faire des modèles de serveurs contenant les valeurs par défaut des différents serveurs hérité de ce serveur modèles. Le multi-héritage et l'héritage multiple est possible.
L'administrateur commence par faire un "brouillon" de configuration qu'il devra valider lorsqu'il sera satisfait.
C'est cette configuration qui sera utilisée pour générer les fichiers de configuration.
Ces fichiers de configuration sont ensuite mis à disposition dans le disque prévu à cette effet.
#### Approvisionnement et mise à jour des données mutables
L'approvisionnement et la mise à jour se fait via des procédures prévus dans la recette et dans les fichiers de configuration suivant les besoins du service.
#### Fournisseur
FIXME décrire le fonctionnement de factory
#### Fournisseur d'identité
#### PKI
- SSL
L'ensemble des certificats doivent être signé par une autorité de certification centralisée.
Il est nécessaire de gérer 2 types d'autorités :
- une autorité extérieur pour que les services soient valide avec des acteurs hors de la plateforme
- une autorité interne
Aucun certificat généré sur la machine ne doit être utilisé.
- SSH
Les clé SSH sont signés par une autorité géré par l'usine d'infrastructure.
Cette signature :
- n'a une validité que d'une journée
- autorise la connexion au serveur via un compte nominatif
#### Les secrets
Différents mots de passe :
- pour se connecter aux différents machines via root (mode secours)
- un mot de passe par administrateur pour se connecté sur une machine
- pour se connecter en lecture ou en écriture sur les différents services
#### Outil de l'administrateur
L'administrateur peut piloter l'infrastructure via une ligne de commande unique.
L'utilisateur doit avoir une ouvrir une session d'administration pour avoir accès aux différentes fonctionnalités de la plateforme.
Les droits d'accès sont validé par la plateforme.

View File

@ -1,207 +0,0 @@
## Configuration
### Types de données
#### Différents type de données
Voici les différents types de données :
- données système : le système d'exploitation mais également les différentes applications et la configuration par défaut. Généralement installés depuis une distribution.
- données de configuration : les personnalisations (issue des recettes fait par les contributeurs en suivant les configurations utilisateurs)
- données temporaire :
- illimité : conservées jusqu'au redémarrage de la machine. Par exemple cache squid, cache base de donnée, ...
- limité dans le temps : données temporaires qui seront supprimés au démarrage ou si elles sont perimées. Par exemple : session, copie de fichier avant traitement, ...
- la SWAP
- données utilisateurs : données produits par l'utilisateur.
#### Les disques
Il existe trois types de disques :
- le disque système qui contiendra les données systèmes
- le disque de configuration qui comprendra les données de configuration
- le disque de données qui comprendra les données temporaires et les données utilisateurs
Dans ces disques, il peut y avoir des partitions séparées.
#### La mutabilité des données
Les données système sont immuables.
Les données de configuration sont immuables.
Les données temporaires sont mutables.
Les données utilisateurs sont mutables.
#### Approvisionnement
Toutes les données immuables sont approvisionnées, reproductible et non modifiable.
Les données mutables peuvent être approvisionnées pour les initialiser.
Les répertoires temporaires mutables n'ont pas vocation a être provisionnés.
Les données mutables peuvent être facilement réinitialisé par l'administrateur et re approvisionnées.
#### Mise à jour
- des données systèmes d'une machine physique :
- la machine doit passer dans un état mutable pour les données systèmes
- la mise à jour système (notamment de la distribution) est effectuée
- la machine est redémarré
- des données systèmes d'une machine virtuelle :
- l'image est regénéré (pas de mise à jour)
- mise à disposition
- la machine est redémarré
- des données immuables de configuration :
- regénéré
- mise à disposition
- la machine est redémarré
- des données mutables utilisateurs : peuvent être mise à jour si nécessaire
- des données mutables temporaires : ne sont pas mise à jour, elles sont réinitialisés par un redémarrage.
#### Les recettes
Il existe deux grandes familles de recette :
- les recettes pour construire les données systèmes :
- pour mettre à disposition un système de base par système d'exploitation et par version
- pour installer les paquets spécifiques au service, les fichiers, script a exécuter, ...
- les recettes pour construire les données de configuration et approvisionnées les données mutables :
- les fichiers de configuration
- activation de service, ...
- le nécessaire pour faire les différents approvisionnement et mises à jour
#### Sauvegardes
Seules les données mutables sont sauvegardées.
Elles peuvent être sauvegardées :
- directement
- après extraction
#### Taille
La taille des disques de données est définit par le contributeur dans une recette et n'est pas modifiable par l'administrateur.
Seule les partitions mutables sont redimensionnable (il est possible de les augmenter). C'est le contributeur qui décide de les augmenter.
La taille des données système ne doivent pas dépasser idéalement les 500 Mo.
### Différents composants
#### Description de l'infrastructure
La description de l'infrastructure se fait par les administrateurs suivant les droits.
L'infrastructure est décrit via la ligne de commande.
L'infrastructure se défini avec les objets suivant :
- le cluster de virtualisation
- des noeuds de calculs
- des sites
- des zones
- des services
#### Génération des données de configuration
FIXME description de la partie Rougail
#### Installation du système
Les données du système sont installés de façon automatique.
L'installation se fait en suivant les recettes mis à diposition par les contributeurs.
Les recettes sont spécifiques à la distribution.
Le système installé est ensuite mis à disposition dans le disque prévu à cette effet. Ce disque est générique et peut servir pour plusieurs service de même type.
#### Personnalisation des fichiers de configuration
Les fichiers de configuration sont générés à partir des recettes fournis par les contributeurs et la configuration défini par l'administrateur.
L'administrateur prépare la configuration via la ligne de commande.
L'administrateur peut faire des modèles de serveurs contenant les valeurs par défaut des différents serveurs hérité de ce serveur modèles. Le multi-héritage et l'héritage multiple est possible.
L'administrateur commence par faire un "brouillon" de configuration qu'il devra valider lorsqu'il sera satisfait.
C'est cette configuration qui sera utilisée pour générer les fichiers de configuration.
Ces fichiers de configuration sont ensuite mis à disposition dans le disque prévu à cette effet.
#### Approvisionnement et mise à jour des données mutables
L'approvisionnement et la mise à jour se fait via des procédures prévus dans la recette et dans les fichiers de configuration suivant les besoins du service.
#### Fournisseur
FIXME décrire le fonctionnement de factory
#### Fournisseur d'identité
#### PKI
- SSL
L'ensemble des certificats doivent être signé par une autorité de certification centralisée.
Il est nécessaire de gérer 2 types d'autorités :
- une autorité extérieur pour que les services soient valide avec des acteurs hors de la plateforme
- une autorité interne
Aucun certificat généré sur la machine ne doit être utilisé.
- SSH
Les clé SSH sont signés par une autorité géré par l'usine d'infrastructure.
Cette signature :
- n'a une validité que d'une journée
- autorise la connexion au serveur via un compte nominatif
#### Les secrets
Différents mots de passe :
- pour se connecter aux différents machines via root (mode secours)
- un mot de passe par administrateur pour se connecté sur une machine
- pour se connecter en lecture ou en écriture sur les différents services
#### Outil de l'administrateur
L'administrateur peut piloter l'infrastructure via une ligne de commande unique.
L'utilisateur doit avoir une ouvrir une session d'administration pour avoir accès aux différentes fonctionnalités de la plateforme.
Les droits d'accès sont validé par la plateforme.
### Sécurisation de l'infrastructure
#### Réseau d'administration
Un réseau d'administration est mis en place.
Les administrateurs doivent être physiquement sur ce réseau pour faire des tâches d'administration sur les machines.
Ce réseau n'est pas routable.
Seul les tâches d'adminitration y sont autorisés.
Tout le traffic sur ce réseau doit être considéré comme illégitime et doit générer une alerte.
#### Connexion sur un interpreteur de commande
Il y a deux type de connexion sur un interpréteur de commande :
- automatisée : les connexions se font via SSH avec un compte générique autorisé sur l'ensemble des machines. Ce compte peut devenir root sans mot de passe
- manuelle :
- il faut que l'utilisateur ait les droits
- les droits utilisateurs sont définit dans les données de configuration
- la connexion est autorisé via SSH
- la connexion est autorisé via TTY
- le compte nécessite un mot de passe pour devenir root
- les connexions SSH sont valide sans passer par le mécanisme TOFU
- le répertoire de connexion est temporaire et créé à la connexion, aucune donnée utilisateur dans ce répertoire ne sera conservé
- mode secours : il existe un mode secours où l'utilisateur peut se connecter en root via TTY. Ce mode n'est a utilisé qu'en dernier recours et doit être justifié. Une alerte doit être remontée.
L'ensemble des connexions se font via le réseau administratif.

86
data.md Normal file
View File

@ -0,0 +1,86 @@
### Types de données
#### Différents type de données
Voici les différents types de données :
- données système : le système d'exploitation mais également les différentes applications et la configuration par défaut. Généralement installés depuis une distribution.
- données de configuration : les personnalisations (issue des recettes faites par les contributeurs en suivant les configurations utilisateurs)
- données temporaire :
- illimité : conservées jusqu'au redémarrage de la machine. Par exemple cache squid, cache base de donnée, ...
- limité dans le temps : données temporaires qui seront supprimés au démarrage ou si elles sont perimées. Par exemple : session, copie de fichier avant traitement, ...
- la SWAP
- données utilisateurs : données produits par l'utilisateur.
#### Les disques
Il existe trois types de disques :
- le disque système qui contiendra les données systèmes
- le disque de configuration qui comprendra les données de configuration personnalisées
- le disque de données qui comprendra les données temporaires et les données utilisateurs
Dans ces disques, il peut y avoir des partitions séparées.
#### La mutabilité des données
Les données système sont immuables.
Les données de configuration sont immuables.
Les données temporaires sont mutables.
Les données utilisateurs sont mutables.
#### Approvisionnement
Toutes les données immuables sont approvisionnées, reproductible et non modifiable.
Les données mutables peuvent être approvisionnées pour les initialiser.
Les répertoires temporaires mutables n'ont pas vocation a être provisionnés.
Les données mutables peuvent être facilement réinitialisé par l'administrateur et re-approvisionnées.
#### Mise à jour
- des données systèmes d'une machine physique :
- la machine doit passer dans un état mutable pour les données systèmes
- la mise à jour système (notamment de la distribution) est effectuée
- la machine est redémarré
- des données systèmes d'une machine virtuelle :
- l'image est regénéré (pas de mise à jour)
- mise à disposition
- la machine est redémarré
- des données immuables de configuration :
- regénéré
- mise à disposition
- la machine est redémarré
- des données mutables utilisateurs : peuvent être mise à jour si nécessaire
- des données mutables temporaires : ne sont pas mise à jour, elles sont réinitialisés par un redémarrage.
#### Les recettes
Il existe deux grandes familles de recette :
- les recettes pour construire les données systèmes :
- pour mettre à disposition un système de base par système d'exploitation et par version
- pour installer les paquets spécifiques au service, les fichiers, script a exécuter, ...
- les recettes pour construire les données de configuration et approvisionnées les données mutables :
- les fichiers de configuration
- activation de service, ...
- le nécessaire pour faire les différents approvisionnement et mises à jour
#### Sauvegardes
Seules les données mutables sont sauvegardées.
Elles peuvent être sauvegardées :
- directement
- après extraction
#### Taille
La taille des disques de données est définit par le contributeur dans une recette et n'est pas modifiable par l'administrateur.
Seule les partitions mutables sont redimensionnable (il est possible de les augmenter). C'est le contributeur qui décide de les augmenter.
La taille des données système ne doivent pas dépasser idéalement les 500 Mo.

15
user.md
View File

@ -1,25 +1,20 @@
Types d'usagers
===============================
### Types d'usagers
Développeur
-----------------
#### Développeur
Personne qui travail sur le générateur de plate forme
Contributeur
-------------------
#### Contributeur
Personne qui réalise les recettes et les mets à disposition.
Administrateur
-------------------
#### Administrateur
Personnes qui ont accès à l'ensemble ou une partie des éléments de l'infrastructure
Une gestion des droits permettra de définir ce que l'utilisateur à le droit d'administrer.
Utilisateur
--------------
#### Utilisateur
Usager de l'infrastructure.