Réseau & Sécurité¶
Services de réseau, sécurité et identité sur OpenStack.
Neutron¶
Neutron est le service de réseau virtuel d'OpenStack. Il fournit la connectivité réseau entre les instances, les routeurs virtuels, les sous-réseaux, les IPs flottantes et les groupes de sécurité.
Cas d'usage : isolation réseau entre projets, connectivité internet, VPN, architectures multi-tiers.
Concepts clés¶
| Concept | Description |
|---|---|
| Network | Réseau virtuel isole (L2) |
| Subnet | Sous-réseau avec plage d'adresses IP et DHCP |
| Router | Routeur virtuel pour connecter sous-réseaux et réseau externe |
| Floating IP | Adresse IP publique associee a une instance |
| Security Group | Règles de pare-feu appliquees au port de l'instance |
| Port | Point de connexion d'une instance a un réseau |
Créer un réseau et un sous-réseau¶
# Creer un reseau prive
openstack network create mon-reseau
# Creer un sous-reseau
openstack subnet create mon-sous-reseau \
--network mon-reseau \
--subnet-range 10.0.0.0/24 \
--dns-nameserver 8.8.8.8
Configurer le routage et l'accès externe¶
# Creer un routeur
openstack router create mon-routeur
# Connecter le routeur au reseau externe
openstack router set mon-routeur --external-gateway external-net
# Ajouter le sous-reseau au routeur
openstack router add subnet mon-routeur mon-sous-reseau
# Allouer et associer une IP flottante
openstack floating ip create external-net
openstack server add floating ip mon-serveur 203.0.113.42
Groupes de sécurité¶
# Creer un groupe de securite
openstack security group create web-sg --description "HTTP et SSH"
# Autoriser SSH
openstack security group rule create web-sg \
--protocol tcp --dst-port 22
# Autoriser HTTP
openstack security group rule create web-sg \
--protocol tcp --dst-port 80
# Autoriser HTTPS
openstack security group rule create web-sg \
--protocol tcp --dst-port 443
Octavia¶
Octavia est le service de Load Balancing as a Service (LBaaS) d'OpenStack. Il distribué le trafic entrant entre plusieurs instances backend.
Cas d'usage : haute disponibilité applicative, répartition de charge, terminaison TLS.
# Creer un load balancer
openstack loadbalancer create --name mon-lb \
--vip-subnet-id mon-sous-reseau
# Creer un listener HTTP
openstack loadbalancer listener create --name http-listener \
--protocol HTTP --protocol-port 80 mon-lb
# Creer un pool de backends
openstack loadbalancer pool create --name mon-pool \
--protocol HTTP --lb-algorithm ROUND_ROBIN \
--listener http-listener
# Ajouter des membres
openstack loadbalancer member create --name web1 \
--address 10.0.0.10 --protocol-port 8080 mon-pool
openstack loadbalancer member create --name web2 \
--address 10.0.0.11 --protocol-port 8080 mon-pool
# Ajouter un health monitor
openstack loadbalancer healthmonitor create --name mon-hm \
--type HTTP --delay 10 --timeout 5 --max-retries 3 mon-pool
Barbican¶
Barbican est le service de gestion des secrets d'OpenStack. Il stocke de manière sécurisée les certificats TLS, clés de chiffrement, mots de passe et autres données sensibles.
Cas d'usage : stockage de certificats TLS pour Octavia, clés de chiffrement pour volumes Cinder, secrets applicatifs.
# Stocker un secret
openstack secret store --name ma-cle-api \
--payload "valeur-secrete" \
--payload-content-type text/plain
# Lister les secrets
openstack secret list
# Recuperer un secret
openstack secret get <secret-href> --payload
Intégration Octavia
Barbican est utilisé par Octavia pour stocker les certificats TLS des listeners HTTPS. Configurez --default-tls-container-ref lors de la création d'un listener TERMINATED_HTTPS.
Keystone¶
Keystone est le service d'identité et d'authentification d'OpenStack. Tous les autres services OpenStack utilisent Keystone pour authentifier les requêtes et vérifier les autorisations.
Cas d'usage : authentification des utilisateurs et services, gestion des autorisations (RBAC), catalogue de services, fédération d'identité.
Concepts clés¶
| Concept | Description |
|---|---|
| Domain | Conteneur de haut niveau pour projets et utilisateurs |
| Project | Unite d'isolation des ressources (quotas, membres) |
| User | Identité pouvant s'authentifier |
| Rôle | Ensemble de permissions (admin, member, reader) |
| Service | Service OpenStack enregistre (nova, neutron, cinder, etc.) |
| Endpoint | URL d'accès a un service (public, internal, admin) |
Gestion des projets et utilisateurs¶
# Creer un projet
openstack project create mon-projet --domain default
# Creer un utilisateur
openstack user create mon-user \
--password motdepasse \
--project mon-projet \
--domain default
# Assigner un role
openstack role add --user mon-user --project mon-projet member
# Lister le catalogue de services
openstack catalog list
Fédération d'identité
Keystone supporte la fédération d'identité (SAML2, OIDC) pour intégrer des fournisseurs d'identité externes (Active Directory, Keycloak, etc.). Cela permet le SSO entre l'entreprise et le cloud OpenStack.