diff --git a/README.md b/README.md index 7c0f0b8..f2188c6 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/admin_network.md b/admin_network.md new file mode 100644 index 0000000..cce93c0 --- /dev/null +++ b/admin_network.md @@ -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. diff --git a/components.md b/components.md new file mode 100644 index 0000000..3244f55 --- /dev/null +++ b/components.md @@ -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. diff --git a/configuration.md b/configuration.md deleted file mode 100644 index 9bb8463..0000000 --- a/configuration.md +++ /dev/null @@ -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. diff --git a/data.md b/data.md new file mode 100644 index 0000000..2565028 --- /dev/null +++ b/data.md @@ -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. diff --git a/user.md b/user.md index 3a7e828..a5a2efc 100644 --- a/user.md +++ b/user.md @@ -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.