OpenStack-Projekt & Benutzer anlegen (Keystone)
Mandantenfähigkeit in OpenStack mit Keystone einrichten: Projekt erstellen, Benutzer anlegen, Rollen zuweisen und Quotas über die OpenStack-CLI setzen.
Keystone ist der Identitätsdienst im Zentrum jeder OpenStack-Cloud. Bevor jemand eine Instanz startet, ein Volume anhängt oder ein Netzwerk erstellt, muss Keystone wissen, wer die Person ist, zu welchem Projekt sie gehört und was sie tun darf. Diese Schicht richtig aufzusetzen macht aus einer einzelnen Cloud eine sicher geteilte, mandantenfähige Plattform.
Dieses Tutorial zeigt, wie Sie mit der OpenStack-CLI eine saubere Mandantenstruktur von Grund auf aufbauen: eine Domain (optional), ein Projekt, einen Benutzer, die richtigen Rollenzuweisungen und sinnvolle Quotas. Es setzt eine funktionierende Cloud voraus – etwa eine nach unserer Anleitung zur Installation von OpenStack mit OpenStack-Ansible aufgebaute.
Voraussetzungen
- Eine laufende OpenStack-2025.2-Cloud und der installierte
openstack-Client. - Admin-Zugangsdaten – eine
openrc- oderclouds.yaml-Eintragung mit der Rolleadminin der Default-Domain. - Eine Shell, in der Sie diese Admin-Zugangsdaten gesourct haben.
Bestätigen Sie, dass Sie als Administrator arbeiten, bevor Sie Änderungen vornehmen:
source ~/admin-openrc
openstack token issue
openstack project listDas Keystone-Objektmodell verstehen
Vier Begriffe erledigen die Hauptarbeit. Eine Domain ist ein übergeordneter Container für Projekte und Benutzer, um Organisationen auf einer geteilten Cloud zu trennen. Ein Projekt (früher Tenant genannt) besitzt Ressourcen und Quotas. Ein Benutzer ist eine Identität, die sich authentifiziert. Eine Rolle ist ein benannter Satz an Berechtigungen, den Sie einem Benutzer auf einem bestimmten Projekt gewähren. Autorisierung in OpenStack ist die Kombination: dieser Benutzer hat diese Rolle auf diesem Projekt.
Schritt 1: Eine Domain erstellen (optional)
Für eine kleine Cloud genügt die eingebaute default-Domain. Wenn Sie getrennte Kunden oder Geschäftsbereiche isolieren, erstellen Sie pro Mandant eine Domain, damit deren Benutzer und Projekte nie kollidieren:
openstack domain create --description 'Acme GmbH Mandant' acme
openstack domain listSchritt 2: Ein Projekt erstellen
Erstellen Sie ein Projekt für die Ressourcen des neuen Mandanten. Haben Sie oben eine Domain angelegt, platzieren Sie das Projekt darin; andernfalls lassen Sie --domain weg, um default zu nutzen.
openstack project create --domain acme \
--description 'Acme Produktiv-Workloads' acme-prod
openstack project show acme-prodSchritt 3: Einen Benutzer anlegen
Legen Sie einen Benutzer an, setzen Sie sein Passwort, weisen Sie ihn einem primären Projekt zu und hinterlegen Sie eine E-Mail für Wiederherstellung und Benachrichtigungen. In der Automatisierung würden Sie das Passwort aus einem Secret-Store beziehen statt über die Kommandozeile.
openstack user create --domain acme \
--project acme-prod \
--email alice@acme.example \
--password-prompt alice
openstack user show aliceSchritt 4: Rollen zuweisen
Ein frisch erstellter Benutzer kann sich authentifizieren, aber fast nichts tun, solange er keine Rolle auf einem Projekt besitzt. Die standardmäßige projektbezogene Rolle ist member (mit reader für Nur-Lese-Zugriff und admin für volle Kontrolle). Gewähren Sie Alice die Rolle member auf ihrem Projekt:
openstack role add --project acme-prod --user alice member
openstack role assignment list --user alice --namesBenötigt ein Benutzer wirklich administrative Rechte – setzen Sie das sparsam ein –, gewähren Sie stattdessen die Rolle admin. Rollen sind additiv, Sie können sie also nach Bedarf kombinieren:
openstack role add --project acme-prod --user alice adminSchritt 5: Projekt-Quotas setzen
Quotas verhindern, dass ein Mandant die gesamte Cloud beansprucht. Sie werden pro Projekt gesetzt und decken Compute, Netzwerk und Storage unabhängig voneinander ab. Beginnen Sie konservativ; Sie können jederzeit erhöhen.
openstack quota set --cores 20 --ram 49152 --instances 10 acme-prod
openstack quota set --networks 5 --subnets 5 --routers 2 \
--floating-ips 5 --secgroups 10 acme-prod
openstack quota set --volumes 10 --gigabytes 500 acme-prodPrüfen Sie die effektiven Grenzwerte des Projekts jederzeit:
openstack quota show acme-prodSchritt 6: Dem Benutzer eine funktionierende openrc geben
Geben Sie Alice eine Zugangsdaten-Datei zum Sourcen. Das ist das projektbezogene Pendant zur Admin-RC, die Sie anfangs genutzt haben:
cat > acme-openrc <<'EOF'
export OS_AUTH_URL=https://cloud.example.com:5000/v3
export OS_PROJECT_NAME=acme-prod
export OS_PROJECT_DOMAIN_NAME=acme
export OS_USERNAME=alice
export OS_USER_DOMAIN_NAME=acme
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
EOFWenn Alice diese Datei sourct und einen Befehl ausführt, wird sie nach ihrem Passwort gefragt, und jede Aktion ist auf acme-prod beschränkt.
Verifizierung
Bestätigen Sie, dass die gesamte Kette aus Sicht des Benutzers funktioniert. Sourcen Sie die neue Datei, fordern Sie ein Token an und prüfen Sie, dass der Scope zum gewünschten Projekt passt:
source acme-openrc
openstack token issue
openstack project show acme-prod -f value -c idHäufige Fehler und Fehlersuche
403 Forbidden / nicht autorisiert
Der Benutzer hat sich authentifiziert, besitzt aber keine Rolle auf dem genutzten Projekt, oder das Token ist auf das falsche Projekt bezogen. Prüfen Sie die Zuweisung mit openstack role assignment list --user alice --names und kontrollieren Sie die Variablen OS_PROJECT_NAME und Domain in der RC-Datei.
Benutzer / Domain nicht gefunden
Bei eigenen Domains muss fast jeder Befehl die Domain explizit nennen. Ergänzen Sie --domain acme bei Benutzer- und Projektbefehlen und setzen Sie sowohl OS_USER_DOMAIN_NAME als auch OS_PROJECT_DOMAIN_NAME in der RC-Datei.
Quota später überschritten
Schlägt der Start einer Instanz mit einem Quota-Fehler fehl, hat das Projekt ein Limit erreicht. Prüfen Sie die Nutzung mit openstack quota show acme-prod und erhöhen Sie den betreffenden Wert oder räumen Sie ungenutzte Ressourcen auf.
Fazit
Sie haben eine vollständige Mandantenstruktur aufgebaut: ein Projekt, einen Benutzer, rollenbasierten Zugriff und Quotas, die den Verbrauch in Schach halten. Das ist das Fundament sicherer Mandantenfähigkeit – isoliert, nachvollziehbar und pro Kunde souverän. Mit der Identität steht der nächste Schritt an: dem neuen Benutzer etwas zum Ausführen geben, indem Sie eine erste Instanz starten. Die OpenStack-CLI-Grundlagen sind ein praktischer Begleiter für den Alltag.
Domains, Rollen und Quotas über viele Mandanten hinweg sauber zu verwalten, ist genau die Governance, die clouditiv in seine gemanagte, digital souveräne Private Cloud einbaut – wo Identität und Daten jedes Mandanten isoliert und in Deutschland ansässig bleiben.