OpenKeel: die souveräne französische Cloud-Lösung mit europäischer Reichweite der inherent-Gruppe inherent entdecken

Architektur

SecNumCloud-ready

OpenKeel ist darauf ausgelegt, SecNumCloud-ready zu sein: was heute konform ist, was in Arbeit ist und was noch weiterzuentwickeln ist, Anforderung für Anforderung, jeweils mit seinem Nachweis im Code.

Was SecNumCloud-ready bedeutet

SecNumCloud (ANSSI, Rahmenwerk 3.2) qualifiziert einen Dienst, der von einem Anbieter betrieben wird, keine Software. Das Rahmenwerk umfasst Organisation, Personalwesen, physische Sicherheit, Betrieb, Management von Sicherheitsvorfällen und den Schutz vor außereuropäischem Recht (§ 19.6) ebenso wie die Technik.

OpenKeel kann daher nicht „SecNumCloud-qualifiziert“ sein. Es will eine SecNumCloud-ready-Grundlage sein: eine Software, die keine technische Anforderung des Rahmenwerks blockiert, die erwarteten Mechanismen bereitstellt (Rückverfolgbarkeit, Trennung, Verschlüsselung, starke Authentifizierung) sowie die Dokumentation, mit der der Anbieter die Konformität im Audit nachweisen kann.

  • Jede Zeile verweist auf einen Nachweis: eine Datei, einen Test oder eine Konfiguration
  • Stand vom 2026-11-10
  • Organisation, Personal und Räumlichkeiten bleiben beim Anbieter

Wo wir stehen

  • 15Anforderungen konform
  • 4in Arbeit
  • 18noch weiterzuentwickeln

Aus den Tabellen unten gezählt; der Anteil des Anbieters wird gesondert aufgeführt.

Jeder interne Datenfluss mit TLS verschlüsselt

Eine interne PKI, betrieben von cert-manager (Issuer openkeel-ca), signiert die Zertifikate der Dienste; die CA des MariaDB-Operators signiert die der Datenbank. Jeder Dienst prüft den Server, mit dem er spricht.

DatenflussProtokollVertrauen
Clients → Ingress → APIsHTTPS, neu verschlüsselt zu HTTPS-Backends (Skyline, Nova-Konsole, Zun wsproxy)Öffentliches Zertifikat; interne cert-manager-Zertifikate
API ↔ APIREST über HTTPS, interne https-URLs im KatalogInterne PKI, cert-manager-Issuer openkeel-ca
Dienste → MariaDBSQL über TLS, vom Server verlangtCA des MariaDB-Operators, von jedem Dienst geprüft
Dienste → RabbitMQAMQPS (RPC und Benachrichtigungen)Interne PKI openkeel-ca
Neutron → OVN NB/SBOVSDB über ssl:, gegenseitiges TLSOVN-Client- und Serverzertifikate

Kein Memcached und kein Redis mehr: keine Komponente las sie, und okadm entfernt sie aus bestehenden Installationen. Nur die Admin-Ports :9090 (Health, Metriken), die Erlang-Distribution zwischen den RabbitMQ-Knoten und das RGW-Gateway von --ceph-s3 übertragen im Cluster noch Klartext. Die ganze Tabelle ist im Code umgesetzt (global.tls.internal, standardmäßig aktiv) und wurde am 2026-11-08 im Lab geprüft.

Images: eine kontrollierte Registry, ein SBOM und eine Signatur

Jedes Image, das ein Produktionscluster ausführt, stammt aus der Registry des Anbieters: die von OpenKeel, aus dem Workspace gebaut, und die von Drittanbietern, mit ihrem SBOM dorthin kopiert. Beide sind mit dem Schlüssel des Anbieters signiert.

ImagesRegistrySBOM und ProvenienzSignatur
OpenKeel-Dienste, okadm, WebsiteVon make release gebaut und nach REGISTRY gepusht; die Charts verweisen darauf (global.imageRegistry)SPDX-SBOM pro Plattform und SLSA-Provenienz, von BuildKit im Image-Index angehängt; exportiert durch make sbomcosign, per Digest des Index (make sign), einschließlich der Attestierungen
okadm-BinärprogrammeRelease-Dateien in dist/cli, mit SHA256SUMSSPDX-SBOM pro Binärprogramm (syft)Prüfsummen
Voraussetzungen: cert-manager, MariaDB- und RabbitMQ-Operatoren, MariaDB, RabbitMQ, TraefikVon Registry zu Registry kopiert durch make mirror-prereqs, alle Plattformen, ein Präfix pro Upstream-RegistryDas SBOM des Herausgebers, wenn die Kopie es behält, sonst ein syft-SBOM, angehängt mit cosign attest (MIRROR_SBOM=1)Jede Kopie mit dem OpenKeel-Schlüssel signiert
Ironic (Upstream-Kolla-Images)Per Digest im Release-Manifest von okadm fixiert, über global.imageRegistry bezogenÜber den Mirror (MIRROR_EXTRA_IMAGES)Über den Mirror

Der Cluster bezieht aus dem Mirror, ohne ein Chart zu ändern: eine hosts.toml pro Upstream-Registry für containerd, machine.registries.mirrors unter Talos. Keine Signatur, kein SBOM und kein Image-Digest wird an die öffentlichen Sigstore-Dienste gesendet (build/cosign/signing-config-private.json). Quelle: BUILD.md.

Heute konform

Im Code und in den Charts erledigt oder für den Anbieter dokumentiert.

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
Kontrolle über den Code, keine Abhängigkeit von einem außereuropäischen Hersteller§ 19ErledigtOpen-Source-Neuschreibung von Keystone, Nova, Neutron, Cinder, Glance, Manila, Barbican… in Go (openkeel-*); keine Telemetrie, keine ausgehenden Aufrufe an DritteDie Images in einer europäischen CI neu bauen
Protokollierung der API-AktionenKap. 12ErledigtEin CADF-Ereignis pro Aufruf auf jeder API (internal/audit), Identitätsereignisse von Keystone (internal/notify), Zähler openkeel_audit_events_{sent,dropped,failed}_totalkube-apiserver und die Talos-API in den Audit-Trail aufnehmen
Aufbewahrung und Integrität der LogsKap. 12ErledigtDokumentiert in openkeel-chart/docs/audit-trail.md: WORM-Archiv (Object Lock, Compliance-Modus), 12 Monate, davon 3 online (Loki 400 d), NTP auf den Talos-Knoten, Alarme bei Verlusten, SIEM-RegelnAuf einer realen Plattform nachweisen (Anbieter)
Zugriffskontrolle der APIsKap. 9ErledigtOpenStack-RBAC-Richtlinien (admin, member, reader, service, Projekt- und System-Scopes), von jedem Dienst durchgesetzt; 403-Ablehnungen wie in OpenStack, abgedeckt durch die KonformitätstestsÜberprivilegierte Dienstkonten beschneiden
Verwaltung von Secrets und SchlüsselnKap. 10ErledigtBarbican in Go mit einem PKCS#11-HSM (internal/crypto/p11.go, SoftHSM-Tests) oder Vault / OpenBao; KEK-Rotation (internal/manage/rotate.go)ANSSI-qualifiziertes HSM in der Produktion
Isolation der Mandanten-ContainerKap. 13ErledigtZun standardmäßig unter Kata Containers (RuntimeClass kata): ein Kernel pro Mandanten-Container—
Verschlüsselung der Netzwerk-Control-PlaneKap. 10, 13ErledigtOVN Northbound / Southbound in mutual TLS (ssl:) zwischen Neutron, ovn-octavia-provider, FWaaS, VPNaaS, ovn-bgp-agent und OVN central—
Optionale APIs lassen sich deaktivierenKap. 13Erledigtec2-api lässt sich im Configurator deaktivieren (Komponente ec2-api seines Katalogs)—
Multi-Faktor-AuthentifizierungKap. 9ErledigtKeystone: TOTP-Methode (internal/keystone/totp.go) und MFA-Regeln pro Benutzer (options.multi_factor_auth_rules, internal/api/mfa_test.go)OIDC-Föderation
Verschlüsselung der DatenbankflüsseKap. 10ErledigtMariaDB mit verpflichtendem TLS (infrastructure.mariadb.tls.required: true), die CA des MariaDB-Operators von jedem Dienst geprüft (global.tls.trustedCAs, von okadm an jedes Release übergeben), tls=skip-verify abgelehnt; im Lab angewendet und geprüft (require_secure_transport auf ON)Galera-Replikation in TLS auf einem Cluster mit drei Knoten prüfen (das Lab hat nur einen)
TLS-Suites der ListenerKap. 10Erledigtinternal/tlsx in allen 16 Diensten (eine Kopie dessen von Keystone): mindestens TLS 1.2, nur ECDHE mit AES-GCM oder ChaCha20 (TLS-Leitfaden der ANSSI), Zertifikat bei Erneuerung neu gelesen; RabbitMQ auf TLS 1.2/1.3 und AEAD-Suiten begrenzt—
Kleinere Angriffsfläche: kein ungenutzter DatendienstKap. 13ErledigtMemcached und Redis entfernt: Keine Komponente las sie; okadm entfernt sie aus bestehenden Installationen (internal/deploy/retired.go)—
Verschlüsselung jedes internen DatenflussesKap. 10Erledigtglobal.tls.internal: true standardmäßig: interne cert-manager-CA (openkeel-ca), ein Zertifikat pro Chart (ECDSA P-256, 90 Tage); RabbitMQ nur über AMQPS; interne URLs und interner Katalog in https://; Ingress zu geprüften HTTPS-Backends (Traefik ServersTransport, nginx-Annotationen); okadm-Schritt rabbitmq-trust; Statusmeldungen von ovn-octavia-provider an einen eigenen TLS-Listener von Neutron (openkeel-neutron-lbaas:9878, nicht der Admin-Port). Im Lab am 2026-11-08 geprüft: 18 Listener in HTTPS mit geprüftem Zertifikat, Klartext-HTTP abgelehnt, AMQP-Verbindungen in TLS 1.3Netzwerkmitschnitt: kein Anwendungsverkehr im Klartext außerhalb von :9090
Integrität und Rückverfolgbarkeit der OpenKeel-ImagesKap. 14ErledigtJedes Image wird mit --sbom=true --provenance=mode=max gebaut (ATTEST=1, Standard): ein SPDX-SBOM pro Plattform (Debian-Pakete der Distroless-Basis, jedes Go-Modul) und die SLSA-Provenienz im Image-Index; make sbom exportiert sie nach dist/sbom, mit dem SBOM jedes okadm-Binärprogramms; make sign signiert jeden Index per Digest mit cosign, was seine Attestierungen abdeckt (build/sbom.sh, BUILD.md)Signaturen bei der Zulassung erzwingen
Drittanbieter-Images in einer kontrollierten Registry, mit SBOMKap. 14Erledigtmake mirror-prereqs kopiert die Images der Voraussetzungen (cert-manager, MariaDB- und RabbitMQ-Operatoren, MariaDB, RabbitMQ, Traefik: 14 Images) von Registry zu Registry, alle Plattformen, gemäß dem Release-Manifest von okadm; containerd oder Talos leiten jede Upstream-Registry auf den Mirror um; MIRROR_SBOM=1 exportiert ein SBOM pro Kopie, hängt mit cosign attest eines an, wo der Herausgeber keines liefert, und signiert jede Kopie mit dem OpenKeel-Schlüssel; die OpenKeel-Images und die per Digest fixierten Ironic-Images werden über global.imageRegistry bezogenDie Images spiegeln, die KubeVirt und CDI zur Laufzeit ableiten

Die Kapitelnummern dienen der Orientierung; sie sind vor dem Aufbau der Konformitätsmatrix mit dem veröffentlichten Rahmenwerk abzugleichen. Quelle: openkeel-docs/SECNUMCLOUD-STATUS.md.

In Arbeit

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
Einheitliche TLS-SuitesKap. 10In ArbeitDienste (tlsx) und RabbitMQ angeglichen; offen bleibt die öffentliche Seite der Ingress-ControllerANSSI-TLS-Profil an den öffentlichen Eingangspunkten des Ingress
Konsistente Charts—In ArbeitNamenskonflikt des Helpers svc.volumes zwischen Sub-Charts (Einbinden der vertrauenswürdigen CAs)Die Helper pro Chart mit einem Präfix versehen
Vom Anbieter erstellte und kontrollierte ImagesKap. 14In Arbeitmake release baut jedes Image für mehrere Architekturen aus dem Workspace (Distroless ohne Root, UID 65532, ohne Shell) mit SBOM, Provenienz und Signatur; die Standard-Signaturkonfiguration nutzt keinen der öffentlichen Sigstore-Dienste (build/cosign/); Ironic läuft noch mit Upstream-Kolla-Images (Python), per Digest gespiegeltmake release in einer europäischen CI ausführen; die Kolla-Images ersetzen
Überwachung der Schwachstellen der ImagesKap. 14In Arbeitmake vuln (govulncheck, go mod verify) in jedem Go-Modul; die SBOMs der OpenKeel- und Drittanbieter-Images lassen sich prüfen, ohne die Images erneut zu beziehen (grype, trivy sbom)Die SBOMs bei jedem Release und regelmäßig auf neue CVEs prüfen

Weiterzuentwickeln: Identität, Zugriff und minimale Rechte

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
MFA für Administratoren über einen IdPKap. 9OffenNur lokales TOTPOIDC-Föderation in Keystone (europäischer IdP, MFA durch den IdP), auf Rollen abgebildet
MFA für Kubernetes-AdministratorenKap. 9OffenZugriff per kubeconfig mit Client-Zertifikat (okadm access)OIDC und MFA am kube-apiserver, benannte Kubernetes-Rollen, kein dauerhaftes cluster-admin
Authentifizierter ConfiguratorKap. 9OffenUI ohne Anmeldung; ihre ClusterRole patcht Knoten und liest alle Logs (deploy/kustomize/base/rbac.yaml)OIDC-Authentifizierung, eine kleinere ClusterRole, Zugriff nur aus der Administrations-IT
Minimale DienstkontenKap. 9Offenadmin-Rolle für ec2-api (all_tenants), Masakari, Zun (binding:host_id), Skyline und neutron-vpnaas; openstack-exporter mit dem Admin-PasswortDedizierte Rollen und gezielte Richtlinienregeln pro Dienst; ein schreibgeschützter Exporter (System-reader)

Weiterzuentwickeln: Verschlüsselung ruhender Daten, Löschung und Kryptografie

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
Ein Schlüssel pro Mandant für VolumesKap. 10OffenCinder speichert den festen Schlüssel 00000000-0000-0000-0000-000000000000 und überlässt die Verschlüsselung der StorageClassCinder mit Barbican verbinden: ein Schlüssel pro verschlüsseltem Volume, im Projekt des Mandanten
FestplattenverschlüsselungKap. 10Offen—Longhorn LUKS pro Volume; Verschlüsselung von MariaDB, Glance und Swift
Löschung am VertragsendeKap. 19Offen—Kryptografisches Löschen: die Barbican-Schlüssel des Projekts vernichten, mit einem nachvollziehbaren Verfahren
Kein veralteter AlgorithmusKap. 10OffenEC2-Signaturen v0/v1 in HMAC-SHA1 werden von Keystone akzeptiert (internal/keystone/ec2sign.go)Eine Option, nur v2 (SHA-256) und v4 zu akzeptieren, die alten in der Produktion standardmäßig deaktiviert
Qualifiziertes HSMKap. 10OffenGenerisches PKCS#11, getestet mit SoftHSMMit einem ANSSI-qualifizierten HSM validieren

Weiterzuentwickeln: Lieferkette

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
Bei der Zulassung erzwungene SignaturenKap. 14OffenImages signiert und attestiert, aber der Cluster führt jedes Image ausKyverno verifyImages oder der Sigstore policy-controller mit cosign.pub, für die Images von OpenKeel wie für die der Operatoren

Weiterzuentwickeln: Administrations-IT, Rückverfolgbarkeit und Datenflüsse

AnforderungSecNumCloud 3.2StatusNachweisNächster Schritt
Getrennte Administrations-ITKap. 9, 13; PA-022OffenEin schriftlicher Vorschlag: Zonen Z1, Z2 und Z3 (openkeel-docs/SECNUMCLOUD-ADMIN-SI.md)Administrationsnetz, Bastion, Administrationsarbeitsplätze (Anbieter)
Control Plane von der Data Plane getrenntKap. 13OffenEin Talos-Cluster trägt die APIs und die Workloads der MandantenSchritt 1: Härtung des einzelnen Clusters, zentralisierte Nova- und Zun-Agenten (kein DSN auf den Hypervisoren); Ziel: getrennte Control- und Data-Cluster
Protokollierung der PlattformadministrationKap. 12OffenNur die OpenStack-APIs werden protokolliertAudit-Richtlinie des kube-apiserver, Logs der Talos-API, der Bastion und der BMCs, archiviert wie der CADF-Trail
Verschlüsselte Admin-PortsKap. 10OffenHealth und Metriken auf :9090 im Klartext-HTTP, innerhalb des Clusters; die Statusmeldungen von ovn-octavia-provider laufen dort nicht mehr: Neutron empfängt sie auf einem eigenen TLS-ListenerTLS (oder Prometheus-mTLS) auf :9090 oder eine NetworkPolicy, die nur Prometheus zulässt
Kein außereuropäischer Fernsupport§ 19.6OffenFernsupport der Speichersysteme (Pure1, Fernzugriff des Herstellers) wird von OpenKeel nicht deaktiviertIm Installationsleitfaden für die Produktion dokumentieren und prüfen, dass sie deaktiviert ist
Erlang-Distribution von RabbitMQKap. 10OffenVerkehr zwischen den RabbitMQ-Knoten (Port 25672) unverschlüsselt, innerhalb des ClustersTLS für die Erlang-Distribution (ssl_dist), die der Operator nicht verwaltet
RGW-Gateway (--ceph-s3)Kap. 10OffenRGW erreicht Keystone über geprüftes HTTPS (caBundleRef), liefert S3 und Swift im Cluster aber über Klartext-HTTP auf Port 80Sicherer Port von RGW mit einem Zertifikat der internen CA
Aufrufe von okadm an die APIsKap. 10OffenÜber den Service-Proxy des Kubernetes-API-Servers in https:: verschlüsselt, die Zertifikate der Pods nicht geprüftÜber den Ingress aufrufen oder clientseitig prüfen

Ziel: drei Zonen, nicht zwei

Die OpenKeel-APIs sind Teil des an die Mandanten verkauften Dienstes: Sie sind nicht die Administrations-IT. Der Vorschlag trennt daher drei Zonen, und die Administrationsschnittstellen von Z2 und Z3 (kube-apiserver, Talos-API, BMC, etcd, Admin-Ports) sind nur aus Z1 erreichbar.

ZoneInhaltWer Zugang hat
Z1, Administrations-ITAdministrationsarbeitsplätze, Bastion, IdP der Administratoren (MFA), okadm-Runner und Git-Repository der Values, Configurator, Erfassung und Speicherung der Logs (Loki, SIEM, WORM-Bucket), signierter Registry-MirrorNur Administratoren, von ihren Arbeitsplätzen aus
Z2, Control Plane des DienstesOpenKeel-APIs, Conductors, Scheduler, MariaDB, RabbitMQ, Barbican, öffentlicher IngressMandanten (öffentliche APIs über den Ingress); Administratoren über Z1
Z3, Data PlaneHypervisoren (KubeVirt), Zun-Knoten (Kata), Speicher (Longhorn), Netzwerk-Gateways (OVN-Gateway, BGP)Mandanten (ihre VMs und Container); Administratoren über Z1

Empfehlung des Vorschlags: ein Administrationsnetz und ein gehärteter einzelner Cluster ab sofort, in jedem Produktions-Deployment; zentralisierte Nova- und Zun-Agenten als erste Entwicklung; getrennte Control- und Data-Cluster als Ziel für ein qualifiziertes Angebot. Nichts davon ist bisher umgesetzt.

Reihenfolge der Arbeiten

  1. 1

    Internes TLS

    TLS auf jedem internen Datenfluss fertigstellen und dann mit einem Netzwerkmitschnitt prüfen.

  2. 2

    Identität und Schlüssel

    OIDC und MFA für Administratoren, Verschlüsselung ruhender Daten mit einem Schlüssel pro Mandant.

  3. 3

    Lieferkette und Administration

    Images in einer europäischen CI gebaut, Signaturen bei der Zulassung erzwungen, das Administrations-IS und die Trennung der Ebenen.

  4. 4

    Matrix und Vor-Audit

    Die Anforderungsmatrix, eine interne Prüfung, dann ein Vor-Audit durch einen qualifizierten Auditor.

Der Anteil des Anbieters

Der Großteil des Rahmenwerks betrifft den Anbieter, der den Dienst betreibt. OpenKeel ersetzt ihn nicht, darf ihm aber nicht im Weg stehen und liefert einen Teil der Nachweise.

Organisation und Personal

Sicherheitsrichtlinie, Rollen, Freigaben und Schulung des Personals. OpenKeel stellt benannte Rollen und den Audit-Trail ihrer Aktionen bereit.

Physische Sicherheit

Rechenzentren, Zugangskontrolle zu den Räumen und zur Hardware. OpenKeel läuft auf den eigenen Servern des Anbieters, in Frankreich und in Europa.

Betrieb

Changes, Backups, Schwachstellen- und Kapazitätsmanagement. okadm plant, installiert und aktualisiert eine Komponente nach der anderen; Grafana zeigt den Zustand jedes Dienstes.

Management von Sicherheitsvorfällen

Erkennung, Behandlung und Meldung von Sicherheitsvorfällen. Der CADF-Trail, Loki und die Prometheus-Alarme liefern die Fakten.

Schutz vor außereuropäischem Recht

§ 19.6: Eigentum, Speicherort der Daten und Support in der Europäischen Union. OpenKeel ist Open Source, ohne Telemetrie und ohne ausgehende Aufrufe.

Nachweise für das Audit

Konfigurationen, Richtlinien und Logs, gesammelt in der Konformitätsmatrix und mit dem Code versioniert.

Auf dem Weg zur Qualifizierung

SchrittWasErgebnis
AnforderungsmatrixSecNumCloud 3.2 Kapitel für Kapitel: Verantwortlicher (OpenKeel oder Anbieter), Mechanismus, NachweisKonformitätsmatrix, mit dem Code versioniert
Interne PrüfungJeder Nachweis auf einer Installation im Produktionsmodus geprüftPrüfbericht, offene Lücken verfolgt
Vor-AuditQualifizierter Auditor, auf einer vollständigen PilotplattformVor-Audit-Bericht und Maßnahmenplan
PASSI-PenetrationstestÖffentliche APIs, Ausbruch aus VM und Kata in die Steuerungsebene, Administrations-ISBericht, Korrekturen und Nachtest
CSPN (optional)Kritische Komponenten: Keystone, Barbican, Isolation von Kata und KubeVirtZertifizierung erster Stufe der gewählten Komponenten