Cloud Computing
Savoir définir le cloud
Le cloud, de nos jours assez répandu, consiste de manière simple à accéder à des services depuis internet, qu'il s'agisse de stockage, de mails, musique, etc... Une mise en garde est posée concernant la vie privée; de plus, la question de l'existence future des ordinateurs personnels est posée.
Définition du NIST :
- cloud
- Le cloud computing est un modèle pour permettre de manière ubiquitaire, pratique, à la demande l'accès par le réseau à un parc de ressources informatiques partagées et configurables (par exemple des réseaux, des serveurs, du stockage, des applications et des services) qui peuvent être rapidement provisionnés et libérés avec un effort de gestion minimal ou sans interaction avec le fournisseur.
Fournisseurs
Il existe de nombreux fournisseurs : Amazon, Google, OVH, etc... Tous ont 3 points en commun :
- Les fournisseurs de cloud opèrent à grande échelle, et font ainsi des économies (d'échelle).
- Ils ont des savoirs-faire standardisés dans un produit dédié.
- La disponibilité des services est "à la demande", que ce soit pour quelques minutes ou pour plusieurs années. Le tout se fait sans coûts d'investissement.
NIST
Le NIST (National Institute of Standards and Technology) est une institution américaine en charge de promouvoir l'innovation. En plus de leur définition du cloud citée plus haut, donne 5 caractéristiques :
- Service à la demande
- Accès réseau global : accès par des mécanismes standards, via le réseau
- Mise en commun des ressources : le client n'ayant généralement pas le contrôle de l'emplacement de ses ressources, on peut mettre en commun les clients sur une seule ressource et les allouer au besoin (c'est ce que l'on appelle un modèle "multi-tenants").
- Élasticité rapide : Les capacités peuvent être facilement provisionnées ou relâchées, selon le besoin ou la demande.
- Service mesuré : Les systèmes cloud contrôlent et optimisent automatiquement l'usage des ressources en s'appuyant sur des systèmes de mesure.
Pour résumer
Sans reprendre l'analogie des bananes, ont peut dire que "le cloud computing est le supermarché de l'informatique" : faciole d'accès, avec une offre étoffée, et des tarifs transparents. Le modèle mutli-tenants rend possible le fait d'apporter une solution aux problèmes de chacun.
Notion de DevOps
- DevOps
- Le DevOps est la personne en charge de faire le pont entre le produit et le Cloud, il est en relation directe avec les développeurs et doit faire son possible pour rendre leurs tâches le plus simples possible en automatisant au maximum son environnement.
Cette notion devient de plus en plus importante dans l'administration système : l'administrateur est amené à travailler avec des développeurs et d'adopter leurs méthodes. On parle d'"Infrastructure as code", dans laquelle nous codons notre infrastructure et son déploiement.
Providers
Sans rentrer dans les détails, les plus gros providers sont :
- Google : avec son infrastructure mondiale, son prix très compétitif et la grosse évolution présente sur sa plateforme
- AWS : Leader mondial, en évolution continue avec un énorme écosystème
- Azure : Facile à intégrer avec les services Microsoft, permet la migration simple d'un parc Windows et une grosse évolution sur celui-ci.
Il en existe d'autres : Linode, Heroku, DigitalOcean; et en France : OVH, Scaleway...
Enfin, concernant le cloud privé, Openstack est le grand leader. Il est gratuit, opensource et peut prendre la main sur l'infra pour contrôler les serveurs physiques déjà présents.
Connaître les principaux services
VM
Je ne vais pas résumer ici ce qu'est une machine virtuelle; il est bien sûr possible d'en créer dans le cloud.
Panorama des services
Le cloud étant le supermarché de l'informatique, la question de savoir quels sont les rayons permet de savoir quoi chercher. Plusieurs choses sont disponibles :
- Temps de calcul (compute) : exécuter du code
- Persistance (Persist, Storage, Database) : stocker des données pour plus tard
- Réseau : Connecter des services entre eux
- Gestion (Management) : Supervision de nos services
- Intelligence (Machine learning, AI, NLP) : Profiter de procédés ou de données à valeur ajoutée d'une autre entreprise
- Application (SaaS) : Fournir des applications sans installation ni maintenance.
Sans surprise, il s'agit de métiers déjà familiers dans le monde de l'informatique. Nous allons détailler quelques services.
IaaS (Infrastructure as a Service)
Principes :
- Service de plus bas niveau dans le modèle cloud.
- Le fournisseur Cloud, livre un parc informatique virtualisé comprenant : machines virtuelles, serveurs de fichiers, stockage des données , pare-feu, les équilibreurs de charge, les adresses IP, les réseaux locaux virtuels, etc.
- L’installation et mise à jour de l’OS et autres logiciels sont sous la responsabilité de l’utilisateur.
Avantages :
- Extensible
- Facturé à l'utilisation
- Résilient
- Sécurité physique
- multi-tenant
Amazon AWS: Utilisé par SNCF , The Guardian, Amazon store Windows Azure, OVH, Rackspace open cloud, IBM SmartCloud, HPE Converged Infrastructure.
PaaS (Platform as a Service)
Principes :
- L’OS ,les logiciels et services d’infrastructure ainsi que tout l’environnement d’exécution applicatif(Serveur Web, Base de données, etc.) sont livrés en plus des composants IaaS.
- L’utilisateur installe ses applications et ses outils.
- Accès aux ressources PAAS via une console web.
Avantages :
- Développement simplifié et accessible
- Flexibilité
- Sécurité
- Très prises par les entreprises consommatrices de standards
Les avantages sont nombreux, mais attention au risque de dépendance au fournisseur!
Principaux fournisseurs: AWS Elastic Beanstalk, OpenShift de Redhat, Google app engine, Caspio, Microsoft Azure.
Les différentes couches du cloud

Exemples d'architecture cloud
Hybride
Ici, on se repose sur le cloud seulement pour les fortes charges, afin d'assurer la disponibilité du service.

FullCloud
Cloud et services managés uniquement, ici.

Serverless
Ici, nous n'avons plus du tout de serveur, mais uniquement des services managés.

Sécurité et risques
Lois et règlementations
Le Patriot act
- Loi anti-terroriste signée par le congrès américain en Octobre 2011 et qui autorise l’administration américaine à accéder à toute donnée informatique détenue par les particuliers et les entreprises sans autorisation préalable et sans en informer les utilisateurs.
- Elle s’applique aux données hébergées (ou transitant) sur des serveurs situés sur le sol américain, et sur toutes sociétés de droit américain et ses filiales partout dans le monde.
Le RGPD (Règlement général sur la protection des données)
- Nouveau texte européen renforçant la protection des données à caractère personnelle au sein de l’union européenne.
- Règlement adopté en avril 2016 et applicable à compter du 25 mai 2018
- Les changements : Le droit à l’effacement, application extraterritoriale, profilage, sanction plus importante en cas de non respect (4% du CA mondial annuel), Le droit à la portabilité des données personnelles, un cadre harmonisé.
LPM (Loi de programmation militaire)
- Loi du 18/12/2013 promulguée suite aux orientations fixée par le livre blanc sur la défense et la sécurité nationale 2013
- L’article 22 prévoit l’adoption de mesures de renforcement de la sécurité des opérateurs d’importance vitale et confère à l’ANSSI de nouvelles prérogatives : l’agence, pourra imposer aux OIV des mesures de sécurité et des contrôles de leurs systèmes d’information les plus critiques.
- OIV: Organisme d’importance vitale. Secteur Etatique (Activité civile , militaire, judiciaire), Secteur de la protection des citoyens (Santé, gestion de l’eau , alimentation) , Secteur de la vie économique et sociale de la nation ( Finance, Energie, industrie , transport, audiovisuel )
ISO27001
- Norme internationale publiée en 2005 et révisée en 2013 décrivant les exigences pour la mise en place d’un système de gestion de la sécurité de l’information.
- L’objectif est de protéger les fonctions et informations de toute perte, vol ou altération, et les systèmes informatiques de toute intrusion et sinistre informatique.
- La norme 27001 comporte 11 chapitres ; les exigences qu'ils contiennent doivent être respectées pour obtenir une certification.
Architecture
Application
- Service d’identification et d’authentification
- Accès à la donnée
- Vulnérabilité du code /API
Machines virtuelles
- Firewall local
- Antivirus
- Sécurisation des accès (VPN, tunnel SSH)
- CPU, Mémoire, OS
Hyperviseur
- Réseau virtuel (Ségrégation environnement développement vs production)
- Gestion des API de contrôle de la VM( Portabilité , contrôle de l’état)
Système d’exploitation
- Gestion des patchs
Stockage hardware et donnée
- Chiffrement de la donnée
- Gestion des clés
- Sécurisation des bloc de données
- DLP (Data loss prevention): outil permettant à l’entreprise de protéger ses données. (serveur de gestion centralisé)
- Service de destruction ou restauration de la donnée
Réseau
- Sécurisation des accès VPN
- Isolation réseau (Firewall , DMZ)
- Sécurisation des bloc de données
- DLP (Data loss prevention): outil permettant à l’entreprise de protéger ses données. (serveur de gestion centralisé)
- Système de détection et de prévention d’intrusion (sonde IPS/IDS)
- Sécurisation des services de transport(TLS , Ipsec)
- Sécurisation des messages (flux chiffré)
- Sécurité des datacenters
Attaques possibles
- Déni de service: indisponibilité d’un service par une surcharge réseau ou une perturbation des connexions.
- Attaque par balayage de port : découverte de ports ouverts et exploitables depuis l’extérieur. Attaque simultanée avec fort impact.
- Injection de maliciel.
- Piratage de compte en ligne
Risques
Risque organisationnel
- Vendor lock-in
- Perte de maîtrise et de gouvernance de son SI
- Challenge sur la conformité
- Fin d’activité d’un prestataire
Risque technologique
- Attaque malicieuse
- Compromission de la console de gestion
- Data leakage
- Perte des clés de chiffrement
- Isolation réseau faible ou cassée
Risque Juridique
- Changement de juridiction
- Licensing
Bonnes pratiques
- Sécuriser le compte maître
- Le mieux est de compartimenter au maximum les différents comptes, et utiliser la 2FA. Éviter les comptes communs, le 1FA, le monocompte...
- Gestion du firewall
- Dans le cloud un firewall est un groupe de sécurité, ceux ci permettent de définir les access a nos différentes ressources. Les groupes de sécurité sont des pare-feu couplés à un commutateur; l'objectif est de créer des rôles par instance, avec chacun ses propres règles. Dans le cloud, chaque flux (même dans un sous-réseau) passe par le firewall.
- AZs(Zones de disponibilité)
- Une AZ est en gros un groupe comprenant une ou plusieurs instances. Il permettent de répartir les données sur plusieurs datacenters et d'augmenter la résilience de l'application. Le traffic inter-AZ est souvent plus rapide (lien dédié) et parfois gratuit.
Les outils du DevOps
Le blue-green
IMAGE
Le blue green est une technique basique de gestion d'une production, nous avons un routeur (Load balancer) en frontal de notre application pour switcher le traffic entre deux chaines de production. si nous souhaitons mettre a jour une application au niveau n + 1 nous le faisons sur l'environment blue, alors inactif. Une fois la mise a jour faite nous faisons passer le traffic vers cette nouvelle chaine.
En cas de problème nous pouvons ainsi revenir facilement sur l'environnement n -1 en faisant un retour arrière sur le routeur
A/B testing
IMAGE
Fonctionne comme le Blue-Green mais permet un déploiement progressif des utilisateurs vers la nouvelle version pour tester son fonctionnement en production; cette solution n'est pas compatible avec toutes les applications car elle demande d'avoir 2 versions différentes de celle ci en production.
Features Flipping
IMAGE
Ici le code est mis à jour en continu sur la production mais les nouveautés peuvent être activées ou désactivées a la demande, c'est la solution la plus moderne mais la plus difficile a mettre en place.