Le Cloud IaaS & PaaS
OpenStack réseau et sécurité
Cours Master 2 Sécurité des systèmes informatiques
Université Paris-Est ...
Plan
A. Cloud
1.
2.
3.
4.

Concepts
IaaS
PaaS
SaaS

B. OpenStack Eco-Système
1.
2.
3.

Définition
Historique
Projet

C. Op...
Cloud ?
Un modèle d'accès aux ressources informatiques (réseaux, serveurs, stockage,
applications et services). Des ressou...
Cloud ?
Administration
ERP

SaaS
S
é
c
u
r
i
t
é

CRM
Analytics

Applications métier
M
o
n
i
t
o
r
i
n
g

PaaS

IaaS
Stock...
Cloud : Prérequis pour un Cloud opérationnel
Automatisation des déploiements

API

Faciliter les déploiements et réduire l...
IaaS
Fournit une infrastructure virtuelle à la demande qui évolue et
s'adapte aux nouveaux besoins de votre entreprise

Fo...
IaaS : Le compute
APIs

API REST

Une plate-forme ouverte, évolutive
et horizontalement scalable

Hyperviseur agnostique:
...
IaaS : Le Stockage
APIs

API REST

Files
Files
Files

Stockage d'objets redondant
et évolutif supportant jusqu’à
des Peta-...
IaaS : Une gestion centralisé de l'identité, des rôles et
de la sécurité des flux

SSL/TLS

SSL/TLS

Clouds
privés

APIs

...
Le PaaS : gestion granulaire du cycle de vie
Un déploiement automatisé et reproductible :
Pas de saisie manuelle
procédure...
Le PaaS : gestion granulaire du cycle de vie

Minimisation du risque d’erreur
lors des déploiements

Processus de déploiem...
Le PaaS : La haute disponibilité des services
Self-Healing (Résilience) : Reconstitution d'un service à l'identique suite ...
Le PaaS : La haute disponibilité des services
Elasticité : Mise à l'échelle automatique des services et des applications e...
IaaS

OpenSource Software to building private or public clouds -- OpenStack Fondation

Openstack is a framework to control...
OpenStack : les possibilités
1. VM à la demande :
• Provisionning
• Snapshotting

2. Volumes
2. Réseaux
3. Stockage Objet ...
OpenStack : Historique

16
OpenStack : Grizzly Release

Horizon
Nova

Quantum

Swift (Object Storage)
Cinder (Block storage)

Glance
(VM Image Servic...
OpenStack : Grizzly Release
Les projets cores
Nova
: Service compute
Glance : Service image
Quantum : service réseaux
Cind...
OpenStack : Organisation d’un projet

1.

Chaque projet a un Lead Technique élu (PTL)

2.

Séparation entre les équipes de...
OpenStack : Vue Conceptuelle

20
OpenStack : Architecture

21
OpenStack : Implémentation

22
OpenStack
UI : Horizon /CLI
Nova

Hypervisor

Keystone DB

Queue

Scheduler
Conductor

Keystone Server

Compute Node

Nova...
Http : Chaque composant expose une API RESTful
AMQP :
SQL :
Native API :
iSCSI :

UI : Horizon /CLI
Nova

Hypervisor

Keys...
http : Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL :
Native API :
iSCS...
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gèr...
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gèr...
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gèr...
Cas d’utilisation création d’une VM
1. Une opération courante, mais complexe
2. Elle nécessite l’interaction avec tous les...
Quotas
Limitation :
1. Network, Subnet, Port, Router,
Floatingip et security group.
2. VMs, Volumes
3. etc

Mécanisme util...
Connexion à Horizon
UI : Horizon /CLI
Nova

Keystone Server

Compute Node
Hypervisor

Nova API

Keystone DB

Queue

Schedu...
Horizon

OpenStack DashBoard (Horizon) fournie une interface
web pour la gestion des services OpenStack

32
Horizon
1. Stateless
2. Utilise memcached comme cache pour les sessions
3. Se met à jour via le polling de l’API Nova
4. C...
Connexion à Horizon
Les paramètre transmis sont
transformés en une requette HTTP
Post à destination de KeyStone

UI : Hori...
KeyStone
1. Keystone est un projet Openstack, il offre une gestion de
l’identité et des autorisations d’accès pour les dif...
KeyStone
Un projet Openstack, il offre une gestion
de l’identité et des autorisations d’accès
pour les différents services...
KeyStone : Concepts
User : peut-être une
personne, un système ou
un service

Tenant (ou projet) : est un
conteneur pour gr...
KeyStone : Architecture

KeyStone API
Rule management
interface and rule
based authorization

Policy
Backend

User, role a...
KeyStone : Validation

1. Horizon envoi une requête HTTP à KeyStone

2. Keystone de son côté parse cette demande et vérifi...
KeyStone : Validation

40
Connexion à Horizon
KeyStone envoi à Horizon un Token
temporaire.

UI : Horizon /CLI
Nova

Keystone Server

Compute Node
H...
Interaction avec Nova
Requête de création d'une VM à partir d'Horizon :

1. Nom de la VM
2. Image
3. Flavor (CPU, Mémoire,...
Nova API
Horizon envoi un http Post à Nova
API. Token récupérer auparavant est
envoyé également.

Nova

Keystone
Keystone ...
Nova
permet
l'exécution
de
plusieurs
instances
de
machines virtuelles sur un
nombre illimité d'hôtes
exécutant nova-comput...
Nova API

Horizon (UI)

Nova (CLI)
Compute API

Euca-tools(CLI)
EC2-API

Nova-Api

45
Nova API
Nova API envoi le token à KeyStone
pour validation.

UI : Horizon /CLI
Nova

Keystone Server

Compute Node
Hyperv...
Nova API
KeyStone valide le token. Il envoi à
Nova API une réponse http
contenant les infos d’acceptation
ou de rejet

UI ...
Nova API
Nova API valide le token
en
utilisant CA, CERT & CRL récupéré
de KeyStone.

Nova

Keystone
Keystone Server

Compu...
Nova API
Nova API parse la requête, crée un
objet python et insert l’objet dans
Nova DB. L’enregistrement ainsi crée
repré...
Nova DataBases
Stocke l’état des objets
répartis sur les différents
Compute Nodes

Théoriquement n’importe
quel SGBD du ma...
Message Queue (Bus de communication)
Nova API fait un rpc.call au
Scheduler. Le message publié
contient des infos sur la V...
Message Queue (Bus de communication)
Le Bus de communication est un moyen unifié pour faire collaborer
les différents comp...
Message Queue (Bus de communication)
Scheduler récupère le message à
partir de la MQ

UI : Horizon /CLI
Nova

Keystone Ser...
Nova Scheduler
Le demon Nova Scheduler détermine dans quel
Compute Node la requête va être exécutée
Création de la VM dans...
Nova Scheduler

55
Nova Scheduler : Filtre

56
Nova Scheduler : Filtre

57
Nova Scheduler : Filtre
1. Les filtres sont configurés dans le fichier nova.conf
2. Plusieurs filtres peuvent être spécifi...
Nova Scheduler
Scheduler récupère la liste de tous
les nœuds computes et les filtres. Il
selectionne le nœud et il met à j...
Nova Scheduler
Scheduler publie un message pour
nœud compute (ID) pour la création
d’une nouvelle VM

Nova

Keystone
Keyst...
Nova Compute
Nova compute récupère le message
qu’il lui y destiné à partir de la Queue

UI : Horizon /CLI
Nova

Keystone S...
Nova Compute
1. nova-compute est un worker demon

2. Crée et met fin aux VM via l’API installer dans l'hyperviseur
•
•
•
•...
Nova Compute
Nova compute envoi un message à
Conductor via la Queue pour
recuperer les infos sur la VM à créée

Nova

Keys...
Nova Conductor
Le proxy Base de données
de Nova Compute

Elimine les connexion à
distance vers la BD

Nova Conductor

Scal...
Nova Compute
Nova compute demande à Quantum
API de créer les éléments réseaux
pour la VM

UI : Horizon /CLI
Nova

Keystone...
Quantum
Propose la connectivité
réseau en tant que service
« Network as a service »

Expose une API qui permet aux
utilisa...
Quantum
Allocation
réseau.

d’IPs

pour

chaque

Allocation des adresses MAC
Mettre à jour le DHCP avec
l’association IP /...
Quantum : Architecture
Quantum Server:
1.
2.
3.

Metadataagent
l3-agent

Implémente quantum API et ces extension
Impose le...
Quantum
Quantum configure l’IP, GW, la
connectivité L2, Security Group, etc

UI : Horizon /CLI
Nova

Keystone Server

Comp...
Quantum : Workflow

70
Quantum : Compute Node

71
Quantum : Network Node

72
Quantum : Network vue d’ensemble

73
Haute disponibilité du réseau
1. Chaque Agent de la stack réseau
envoi des Heartbeat à la Queue

1. DHCP Agent support le ...
La sécurité dans le Cloud

La sécurité est un élément primordial dans le Cloud

75
La sécurité dans le Cloud
Un Cloud peut être abstrait comme une collection de composants logiques
(domaines de sécurité) :...
La sécurité dans le Cloud
Management :

Public :
1.

Un espace entièrement non fiable de
l'infrastructure Cloud.
Toutes le...
La sécurité dans le Cloud
Pontage des domaines de sécurité
1.

Un pont est un élément qui existe à l'intérieur d’un
ou plu...
La sécurité dans le Cloud

La gestion des identités et
des accès dans OpenStack

1. Délégation de la gestion des
identités...
Cinder
Nova compute contacte Cinder pour
monter un volume qui existe déjà.

Nova

Keystone
Keystone Server

Compute Node
H...
Cinder
Fournit un stockage POSIX.

Bloc Storage as a service

Le volume distant est vu
comme volume local

Compatible avec...
Cinder : Architecture/Workflow
Cinder API

Scheduler

Queue

Cinder Volume

Cinder DB

82
Cinder : driver

83
Cinder
Nova compute demande à iSCSI
Initiator et à l’hyperviseur de monter
le volume iSCSI comme un nouveau
volume dans la...
Montage d’un volume iSCSI
Pilote iSCSI
TCP/IP
Pilote carte réseau

Passerelle de stockage

85
Glance
Nova compute demande à Glance
l’image de la VM en précisant son ID.

UI : Horizon /CLI
Nova

Keystone Server

Compu...
Glance
Fournit un service de
catalogue pour le stockage et
l'interrogation des images de
disques virtuels

Support plusieu...
Glance : Architecture

88
Glance : Fonctionnalités
Image CRUD :
1. Create
2. Read
3. Update
4. Delete

Recherche d’image par :
1. Nom
2. Conteneur
3...
Glance : Formats d’image supporté

90
Glance
Glance renvoi un HTTP Get URI (Path)
si l’image ID fourni existe.

UI : Horizon /CLI
Nova

Keystone Server

Compute...
Nova compute
Nova
compute
recupère
les
informations sur la VM à partir de la
BD. Il crée la commande de création
de la VM ...
Nova compute
Nova compute envoi un message à
Nova conductor pour mettre à jour la
BD avec le nouveau statut de la VM.

Nov...
Horizon
Horizon demande périodiquement
l’état de la VM à l’API Nova. Un état
que Nova API récupère à partir de la
BD.

Nov...
Synthèse

95
OpenStack : Implémentation

96
Openstack : Les nouveaux de la classe

97
Prochain SlideShare
Chargement dans…5
×

Le Cloud IaaS & PaaS, OpenStack réseau et sécurité

13 240 vues

Publié le

Cours Master 2 Sécurité des systèmes informatiques
Université Paris-Est Créteil Val-de-Marne (Paris12)

Publié dans : Technologie
0 commentaire
16 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
13 240
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4 109
Actions
Partages
0
Téléchargements
565
Commentaires
0
J’aime
16
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Le Cloud IaaS & PaaS, OpenStack réseau et sécurité

  1. 1. Le Cloud IaaS & PaaS OpenStack réseau et sécurité Cours Master 2 Sécurité des systèmes informatiques Université Paris-Est Créteil Val-de-Marne (Paris12) Noureddine BOUYAHIAOUI noureddine@bouyahiaoui.com 1
  2. 2. Plan A. Cloud 1. 2. 3. 4. Concepts IaaS PaaS SaaS B. OpenStack Eco-Système 1. 2. 3. Définition Historique Projet C. OpenStack Architecture 1. 2. 3. Architecture logique Flux de création d’une VM Détail des composants 2
  3. 3. Cloud ? Un modèle d'accès aux ressources informatiques (réseaux, serveurs, stockage, applications et services). Des ressources qui peuvent être rapidement approvisionnées avec un minimum d’effort de la part du fournisseur du service. IaaS PaaS ? SaaS Un type de calcul massivement évolutif où les capacités de IT sont livrées ‘en service’ aux clients en utilisant les technologies internet 3
  4. 4. Cloud ? Administration ERP SaaS S é c u r i t é CRM Analytics Applications métier M o n i t o r i n g PaaS IaaS Stockage CPU Network 4 C h a r g e B a c k
  5. 5. Cloud : Prérequis pour un Cloud opérationnel Automatisation des déploiements API Faciliter les déploiements et réduire les temps d’attente Une interaction simplifiée et granulaire Contrôle financier Rationalisation des coûts Clouds publics Clouds privés Sécurité Evoluer en fonction du contexte Clouds Spécialisés Mise à l'échelle et monitoring Connaître les goulots d'étranglement et être capable de les corriger. 5
  6. 6. IaaS Fournit une infrastructure virtuelle à la demande qui évolue et s'adapte aux nouveaux besoins de votre entreprise Fournit des solutions de stockage et de sauvegarde évolutives et durables pour toutes les données, quelle que soit leur taille Fournit un modèles réseaux souples pour répondre aux besoins des différentes applications et groupes d'utilisateurs Fournit un accès sécurisé et granulaire aux différents composants de l’infrastructure via des flux sécurisés et une gestion centralisée de l'identité 6
  7. 7. IaaS : Le compute APIs API REST Une plate-forme ouverte, évolutive et horizontalement scalable Hyperviseur agnostique: Xen ,XenServer, Hyper-V, KVM, ESX Hardware agnostique 7
  8. 8. IaaS : Le Stockage APIs API REST Files Files Files Stockage d'objets redondant et évolutif supportant jusqu’à des Peta-octets de données. Files Hardware agnostique 8
  9. 9. IaaS : Une gestion centralisé de l'identité, des rôles et de la sécurité des flux SSL/TLS SSL/TLS Clouds privés APIs LDAP Toutes les autorisations d’accès de tous les composant d’OpenStack passe par un LDAP. SSL/TLS 9
  10. 10. Le PaaS : gestion granulaire du cycle de vie Un déploiement automatisé et reproductible : Pas de saisie manuelle procédures de contrôle automatisée Injection dynamique des paramètres systèmes Sur plusieurs serveurs Au sein d’un même serveur Installation d'un service et toutes ses dépendances Mise à jour d'un service
  11. 11. Le PaaS : gestion granulaire du cycle de vie Minimisation du risque d’erreur lors des déploiements Processus de déploiement pilotable par un système externe
  12. 12. Le PaaS : La haute disponibilité des services Self-Healing (Résilience) : Reconstitution d'un service à l'identique suite à une défaillance Machine physique ou virtuelle défaillante Service défaillant
  13. 13. Le PaaS : La haute disponibilité des services Elasticité : Mise à l'échelle automatique des services et des applications en fonction des exigences métiers Scale-in : répondre à la crue de demandes par l'instanciation de nouvelles instances. Scale-out : suivre la décrue par la mise hors service des instances
  14. 14. IaaS OpenSource Software to building private or public clouds -- OpenStack Fondation Openstack is a framework to control various virtual items and associated storage elements -- Ma vision 14
  15. 15. OpenStack : les possibilités 1. VM à la demande : • Provisionning • Snapshotting 2. Volumes 2. Réseaux 3. Stockage Objet pour les images de VM ou des fichiers quelconques 4. Multi-tenante : • Quotas par tenants • Utilisateurs peut appartenir à plusieurs tenant 15
  16. 16. OpenStack : Historique 16
  17. 17. OpenStack : Grizzly Release Horizon Nova Quantum Swift (Object Storage) Cinder (Block storage) Glance (VM Image Service) Keystone (Identity Service) 17
  18. 18. OpenStack : Grizzly Release Les projets cores Nova : Service compute Glance : Service image Quantum : service réseaux Cinder : Service stockage en bloque Swift : Service stockage objets Projets communs Keystone : service identitie Horizon : Web Gui / Dashboard Projet Librairie Oslo : Code partagé (Shared infrastructure Code) Projets en incubation (Officiel dans Havana) Ceilometer : Service Metering/Monitoring Heat : Service orchestration 18
  19. 19. OpenStack : Organisation d’un projet 1. Chaque projet a un Lead Technique élu (PTL) 2. Séparation entre les équipes de devellopements et d'architectures 3. Chaque projet possède une API RESTfull (JSON/HTTP) sauf Horizon 4. Base de données séparée 19
  20. 20. OpenStack : Vue Conceptuelle 20
  21. 21. OpenStack : Architecture 21
  22. 22. OpenStack : Implémentation 22
  23. 23. OpenStack UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB 23 Object Store
  24. 24. Http : Chaque composant expose une API RESTful AMQP : SQL : Native API : iSCSI : UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB Object Store 24
  25. 25. http : Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : Native API : iSCSI : UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB Object Store 25
  26. 26. Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : iSCSI : UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB Object Store 26
  27. 27. Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : Accès direct via un protocole propre iSCSI : UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB Object Store 27
  28. 28. Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : Accès direct via un protocole propre iSCSI : Le montage des volumes avec le protocole iSCSI (block storage) UI : Horizon /CLI Nova Hypervisor Keystone DB Queue Scheduler Conductor Keystone Server Compute Node Nova API Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB Object Store 28
  29. 29. Cas d’utilisation création d’une VM 1. Une opération courante, mais complexe 2. Elle nécessite l’interaction avec tous les composants d’OpenStack 3. Dans ce qui suit on admet que : • • • • L’utilisateur existe déjà Le tenant est crée L’utilisateur à le droit d’accès à Horizon Les quotas sont définit 29
  30. 30. Quotas Limitation : 1. Network, Subnet, Port, Router, Floatingip et security group. 2. VMs, Volumes 3. etc Mécanisme utilisé dans les différentes API d’OpenStack pour limiter le nombre de ressources qu’un tenant peut créer ou utiliser Quotas quantum.quota.ConfDriver : 1. Tous les projets auront les mêmes quotas 2. Quotas définis dans le fichier de conf quantum.db.quota_db.DbQuotaDriver 1. chaque projet a ses propres Quotas 2. Les quotas sont stockés dans la BD 30
  31. 31. Connexion à Horizon UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 31
  32. 32. Horizon OpenStack DashBoard (Horizon) fournie une interface web pour la gestion des services OpenStack 32
  33. 33. Horizon 1. Stateless 2. Utilise memcached comme cache pour les sessions 3. Se met à jour via le polling de l’API Nova 4. Chaque composant OpenStack possède son propre module dans Horizon 33
  34. 34. Connexion à Horizon Les paramètre transmis sont transformés en une requette HTTP Post à destination de KeyStone UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 34
  35. 35. KeyStone 1. Keystone est un projet Openstack, il offre une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. 2. Keystone fourni un jeton d'autorisation. Ce jeton est ensuite utilisé comme un laissé passé pour utiliser les ressources et services tel que le stockage ou le calcul etc. 3. API RESTful 4. Communication via le protocole http ou http via SSL (https). 35
  36. 36. KeyStone Un projet Openstack, il offre une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. Fourni un jeton d'autorisation. Ce jeton est utilisé comme un laissé passé pour utiliser les ressources et services tel que le stockage ou le calcul etc Keystone API RESTful Communication via le protocole http ou https via SSL. 36
  37. 37. KeyStone : Concepts User : peut-être une personne, un système ou un service Tenant (ou projet) : est un conteneur pour grouper les services ou les utilisateurs. Endpoint : Une adresse réseau, généralement décrite par une URL, où un service peut être accessible. Keystone Role : Un rôle comprend un ensemble de droits et privilèges. Les Credentials : les données qui permettent d’authentifier un utilisateur ou un service : 1. Login et Mot de passe 2. Login et une clé 3. Token qui vous a été délivré. 37
  38. 38. KeyStone : Architecture KeyStone API Rule management interface and rule based authorization Policy Backend User, role and tenant data Token Backend Temporary tokens Catalogue Backend Identity Backend Endpoint catalogue 38
  39. 39. KeyStone : Validation 1. Horizon envoi une requête HTTP à KeyStone 2. Keystone de son côté parse cette demande et vérifie les éléments suivants : • Authentification : la validité des credentials • Control d'accès : la validité du mapping User-Tenant-Role • Autorisation (droit d’accès) : La requête demandé est accessible pour l'utilisateur en question 39
  40. 40. KeyStone : Validation 40
  41. 41. Connexion à Horizon KeyStone envoi à Horizon un Token temporaire. UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 41
  42. 42. Interaction avec Nova Requête de création d'une VM à partir d'Horizon : 1. Nom de la VM 2. Image 3. Flavor (CPU, Mémoire, disque) 4. Réseau 5. Options : SSH Keys, volume, commentaires, personnalites, etc 42
  43. 43. Nova API Horizon envoi un http Post à Nova API. Token récupérer auparavant est envoyé également. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 43
  44. 44. Nova permet l'exécution de plusieurs instances de machines virtuelles sur un nombre illimité d'hôtes exécutant nova-compute Le composant de calcul du système d'exploitation Cloud Nova permet de créer un environnement Cloud Computing hautement évolutif et redondant Composé principalement de : 1. Nova API 2. Scheduler 3. Conductor 4. Nova-Compute 44
  45. 45. Nova API Horizon (UI) Nova (CLI) Compute API Euca-tools(CLI) EC2-API Nova-Api 45
  46. 46. Nova API Nova API envoi le token à KeyStone pour validation. UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 46
  47. 47. Nova API KeyStone valide le token. Il envoi à Nova API une réponse http contenant les infos d’acceptation ou de rejet UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 47
  48. 48. Nova API Nova API valide le token en utilisant CA, CERT & CRL récupéré de KeyStone. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB 48 Object Store
  49. 49. Nova API Nova API parse la requête, crée un objet python et insert l’objet dans Nova DB. L’enregistrement ainsi crée représente le premier état de la VM Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB 49 Object Store
  50. 50. Nova DataBases Stocke l’état des objets répartis sur les différents Compute Nodes Théoriquement n’importe quel SGBD du marché compatible. Les déploiement se font que sur MySQL et PostgreSQL Nova DataBase Nova API communique avec le SGBD via l’ORM SQLAlchemy Le HA se fait via : 1. Master/Master ou Master/Slave 2. TCP/IP RAID1 (PeaceMaker/DRBD) 50
  51. 51. Message Queue (Bus de communication) Nova API fait un rpc.call au Scheduler. Le message publié contient des infos sur la VM. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol GlanceRegistery DHCP/IPAM Quantum DB Swift Proxy Server Cinder DB Router/GW Cinder DB 51 Object Store
  52. 52. Message Queue (Bus de communication) Le Bus de communication est un moyen unifié pour faire collaborer les différents composants de NOVA 52
  53. 53. Message Queue (Bus de communication) Scheduler récupère le message à partir de la MQ UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 53
  54. 54. Nova Scheduler Le demon Nova Scheduler détermine dans quel Compute Node la requête va être exécutée Création de la VM dans un Compute Node particulier Création des VMs d'un tenant particulier dans des Computes Nodes isolés Nova Scheduler Création des VMs dans des Computes Nodes différents 54
  55. 55. Nova Scheduler 55
  56. 56. Nova Scheduler : Filtre 56
  57. 57. Nova Scheduler : Filtre 57
  58. 58. Nova Scheduler : Filtre 1. Les filtres sont configurés dans le fichier nova.conf 2. Plusieurs filtres peuvent être spécifiés en même temps 3. Il est possible de créer un filtre spécifique : • Par héritage de la Class BaseHostFilter • Surcharger hos_passes(self,host_state,filter_properties) 58
  59. 59. Nova Scheduler Scheduler récupère la liste de tous les nœuds computes et les filtres. Il selectionne le nœud et il met à jour la BD avec son ID Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 59
  60. 60. Nova Scheduler Scheduler publie un message pour nœud compute (ID) pour la création d’une nouvelle VM Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 60
  61. 61. Nova Compute Nova compute récupère le message qu’il lui y destiné à partir de la Queue UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 61
  62. 62. Nova Compute 1. nova-compute est un worker demon 2. Crée et met fin aux VM via l’API installer dans l'hyperviseur • • • • XenAPI pour XenServer / XCP libvirt pour KVM ou QEMU VMwareAPI pour VMware … etc. 62
  63. 63. Nova Compute Nova compute envoi un message à Conductor via la Queue pour recuperer les infos sur la VM à créée Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol Quantum DB Swift GlanceRegistery DHCP/IPAM Proxy Server Cinder DB Router/GW Cinder DB Object Store 63
  64. 64. Nova Conductor Le proxy Base de données de Nova Compute Elimine les connexion à distance vers la BD Nova Conductor Scalabilité Horizontal Schéma de la BD n’est plus visible à Nova Compute 64
  65. 65. Nova Compute Nova compute demande à Quantum API de créer les éléments réseaux pour la VM UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 65
  66. 66. Quantum Propose la connectivité réseau en tant que service « Network as a service » Expose une API qui permet aux utilisateurs de créer leurs propres réseaux, routeur et rattacher les interfaces réseaux aux ports des équipements réseaux crées Quantum Hautement configurable en raison de son architecture orienté plugin. Séparation de la description du réseau de son implémentation 66
  67. 67. Quantum Allocation réseau. d’IPs pour chaque Allocation des adresses MAC Mettre à jour le DHCP avec l’association IP /MAC Quantum Configuration du réseau niveau 2 (L2) via quantum plugin Configuration du réseau L3, Mise en place des GWs (création de routeurs) 67
  68. 68. Quantum : Architecture Quantum Server: 1. 2. 3. Metadataagent l3-agent Implémente quantum API et ces extension Impose le modèl network, subnet, portVM Attribution d’adresse IP Plugin agent: 1. 2. S’exécute sur chaque nœud de calcul/Network Connect les VMs aux réseaux Quantum Quantum Server Plugin plugin-agent Dhcp agent: 1. 2. 3. S’exécute sur chaque nœud network Connect les VMs aux réseaux Mettre à jour le DHCP Queue L3 agent: 1. Quantum DB dhcp-agent 2. Implément les floating IP, ainsi que tous les fonctionnalitées L3 (NAT, SNAT, …) Un agent par réseau Metatdata agent: Médiation entre l3-agent, dhcp-agent et novametadata API Server 68
  69. 69. Quantum Quantum configure l’IP, GW, la connectivité L2, Security Group, etc UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 69
  70. 70. Quantum : Workflow 70
  71. 71. Quantum : Compute Node 71
  72. 72. Quantum : Network Node 72
  73. 73. Quantum : Network vue d’ensemble 73
  74. 74. Haute disponibilité du réseau 1. Chaque Agent de la stack réseau envoi des Heartbeat à la Queue 1. DHCP Agent support le HA 2. L3 Agent dans la nouvelle release 2. Les états sont stockés dans la BD HA 74
  75. 75. La sécurité dans le Cloud La sécurité est un élément primordial dans le Cloud 75
  76. 76. La sécurité dans le Cloud Un Cloud peut être abstrait comme une collection de composants logiques (domaines de sécurité) : 1. 2. 3. Fonction Utilisateurs Les problèmes de sécurité communs 76
  77. 77. La sécurité dans le Cloud Management : Public : 1. Un espace entièrement non fiable de l'infrastructure Cloud. Toutes les données qui transitent ce domaine doivent être protégées et répondre aux exigences de la confidentialité et l'intégrité 2. 1. L'endroit où les services (APIs) interagissent. 2. Les réseaux dans ce domaine transportent des données confidentielles telles que les paramètres de configuration, noms d'utilisateur et mots de passe. 3. Le trafic de commandement et de contrôle réside habituellement dans ce domaine 4. Ce domaine doit être isolé et sécurisé Domaine de sécurité Data : 1. 2. 3. Concerne principalement les informations relatives aux services de stockage au sein OpenStack. La plupart des données qui traversent ce réseau nécessitent une grande intégrité et confidentialité. En fonction de type déploiement, il peut y avoir aussi une forte exigence de disponibilité Guest : 1. Utilisé pour le trafic d'instance à instance 77
  78. 78. La sécurité dans le Cloud Pontage des domaines de sécurité 1. Un pont est un élément qui existe à l'intérieur d’un ou plusieurs domaines de sécurité. 2. Les ponts sont souvent le point faible dans une architecture réseau. 3. Tout composant construisant un pont entre des domaines de sécurité doit être soigneusement configuré. 4. Un pont doit toujours être configuré pour répondre aux exigences de sécurité et d’un niveau de confiance. 5. Les ponts devraient être une préoccupation majeure en raison de la probabilité d'une attaque. 78
  79. 79. La sécurité dans le Cloud La gestion des identités et des accès dans OpenStack 1. Délégation de la gestion des identités au service LDAP 2. Keystone V3 amène plus de granularité Approche Sécurisations des Flux via des protocoles de sécurité tel que SSL/TLS Connaître les failles de sécurité du système et les gérer 79
  80. 80. Cinder Nova compute contacte Cinder pour monter un volume qui existe déjà. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 80
  81. 81. Cinder Fournit un stockage POSIX. Bloc Storage as a service Le volume distant est vu comme volume local Compatible avec tous fournisseur iSCSI du marché les Cinder Un volume est attaché à une instance VM à un instant t. L’état du indépendant VMs volume est des instances 81
  82. 82. Cinder : Architecture/Workflow Cinder API Scheduler Queue Cinder Volume Cinder DB 82
  83. 83. Cinder : driver 83
  84. 84. Cinder Nova compute demande à iSCSI Initiator et à l’hyperviseur de monter le volume iSCSI comme un nouveau volume dans la VM. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 84
  85. 85. Montage d’un volume iSCSI Pilote iSCSI TCP/IP Pilote carte réseau Passerelle de stockage 85
  86. 86. Glance Nova compute demande à Glance l’image de la VM en précisant son ID. UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 86
  87. 87. Glance Fournit un service de catalogue pour le stockage et l'interrogation des images de disques virtuels Support plusieurs types de stockages : 1. File System 2. http 3. Swift 4. Ceph Glance Support plusieurs types de format d’image. API RESTful 87
  88. 88. Glance : Architecture 88
  89. 89. Glance : Fonctionnalités Image CRUD : 1. Create 2. Read 3. Update 4. Delete Recherche d’image par : 1. Nom 2. Conteneur 3. Format d’image 4. Taille min/max, status, etc Glance Image cache 89
  90. 90. Glance : Formats d’image supporté 90
  91. 91. Glance Glance renvoi un HTTP Get URI (Path) si l’image ID fourni existe. UI : Horizon /CLI Nova Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Keystone Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Cinder Vol Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 91
  92. 92. Nova compute Nova compute recupère les informations sur la VM à partir de la BD. Il crée la commande de création de la VM et demande à l’hyperviseur son exécution. Nova UI : Horizon /CLI Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor Dans le cas de KVM/libvirtd le fichier de configuration de la VM est XML. Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 92
  93. 93. Nova compute Nova compute envoi un message à Nova conductor pour mettre à jour la BD avec le nouveau statut de la VM. Nova UI : Horizon /CLI Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor La communication iSCSI est initié. Le volume distant est monté et il est vu comme local. Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Scheduler Glance Storage Glance API Network Node GlanceRegistery Quantum DB Swift Proxy Server Cinder Vol DHCP/IPAM Cinder DB Router/GW Cinder DB Object Store 93
  94. 94. Horizon Horizon demande périodiquement l’état de la VM à l’API Nova. Un état que Nova API récupère à partir de la BD. Nova Keystone Keystone Server Compute Node Hypervisor Nova API Keystone DB Queue Scheduler Conductor UI : Horizon /CLI Nova-compute Quantum VM Quantum Server Nova DB Network Plugin/Agent Cinder Cinder API Block Storage Node Queue Glance Storage Glance API Scheduler Network Node Cinder Vol Quantum DB Swift GlanceRegistery DHCP/IPAM Proxy Server Cinder DB Router/GW Cinder DB Object Store 94
  95. 95. Synthèse 95
  96. 96. OpenStack : Implémentation 96
  97. 97. Openstack : Les nouveaux de la classe 97

×