• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
 

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

on

  • 5,030 views

Cours Master 2 Sécurité des systèmes informatiques

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

Statistics

Views

Total Views
5,030
Views on SlideShare
3,799
Embed Views
1,231

Actions

Likes
7
Downloads
35
Comments
0

5 Embeds 1,231

http://www.linusnova.com 1209
http://www.scoop.it 13
https://twitter.com 5
http://cloud.feedly.com 3
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

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

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • OpenStack : Historique 16
  • OpenStack : Grizzly Release Horizon Nova Quantum Swift (Object Storage) Cinder (Block storage) Glance (VM Image Service) Keystone (Identity Service) 17
  • 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
  • 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
  • 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 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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. Chaque composant OpenStack possède son propre module dans Horizon 33
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • KeyStone : Validation 40
  • 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
  • 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
  • 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
  • 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
  • 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 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Message Queue (Bus de communication) Le Bus de communication est un moyen unifié pour faire collaborer les différents composants de NOVA 52
  • 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
  • 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
  • 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é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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 HA 2. L3 Agent dans la nouvelle release 2. Les états sont stockés dans la BD HA 74
  • 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é) : 1. 2. 3. Fonction Utilisateurs Les problèmes de sécurité communs 76
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 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
  • 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 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
  • 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
  • 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. Format d’image 4. Taille min/max, status, etc Glance Image cache 89
  • 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 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
  • 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
  • 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
  • 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
  • Synthèse 95
  • OpenStack : Implémentation 96
  • Openstack : Les nouveaux de la classe 97