StackIT-Abonnement in oneclick™ anbinden
Möchten Sie ein bereits vorhandenes StackIT-Abonnement in oneclick™ nutzen, muss oneclick™ über die StackIT-APIs auf dieses Projekt zugreifen können.
Der Zugriff erfolgt über einen StackIT Service Account mit passenden IAM-Berechtigungen sowie einen Service Account Key im JSON-Format.
1. StackIT-Projekt erstellen und öffnen
- Loggen Sie sich in Ihrem StackIT-Konto ein.
- Klicken Sie auf Ressource erstellen und anschließend auf Projekt erstellen.

- Vergeben Sie einen Projektnamen, weisen Sie das Projekt der gewünschten Organisation zu, wählen Sie einen Projekttyp aus und klicken Sie auf Erstellen.

- Klicken Sie auf das neu erstellte Projekt und anschließend auf Öffnen.

Das Projekt wird nun im StackIT-Portal angezeigt und steht für die weitere Konfiguration zur Verfügung.
2. StackIT Service Account - Rollen und Berechtigungen
Damit oneclick™ alle benötigten Cloud-Ressourcen lesen und verwalten kann, benötigt der verwendete Service Account ausreichende IAM-Berechtigungen auf Projektebene. Im Folgenden sind die minimal erforderlichen IAM-Berechtigungen (Scopes) für den StackIT Service Account aufgeführt, um alle API-Endpunkte des stackit_cloud Providers aufrufen zu können:
Empfohlene Rolle
project.editor - Diese Rolle umfasst alle unten aufgeführten Berechtigungen und ist die einfachste Lösung für produktive Umgebungen. Details zur Zuweisung sind im Abschnitt Anwendung der Berechtigungen beschrieben.
Alternative: Granulare Berechtigungen
Falls eine feinere Steuerung der Berechtigungen erforderlich ist, können die nachfolgenden spezifischen Berechtigungen zugewiesen werden:
-
Detaillierte Berechtigungen nach Service
Detaillierte Berechtigungen nach Service anzeigen
1. Virtual Machines (Server)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/servers- Server auflistenGET /v1/projects/{projectId}/servers/{serverId}- Server-Details abrufenPOST /v1/projects/{projectId}/servers- Server erstellenPATCH /v1/projects/{projectId}/servers/{serverId}- Server aktualisierenDELETE /v1/projects/{projectId}/servers/{serverId}- Server löschenGET /v1/projects/{projectId}/servers/{serverId}/console- Konsole abrufenGET /v1/projects/{projectId}/servers/{serverId}/log- Server-Log abrufenPOST /v1/projects/{projectId}/servers/{serverId}/start- Server startenPOST /v1/projects/{projectId}/servers/{serverId}/stop- Server stoppenPOST /v1/projects/{projectId}/servers/{serverId}/reboot- Server neustartenPOST /v1/projects/{projectId}/servers/{serverId}/deallocate- Server deallokierenPOST /v1/projects/{projectId}/servers/{serverId}/rescue- Server in Rescue-ModusPOST /v1/projects/{projectId}/servers/{serverId}/unrescue- Rescue-Modus beendenPOST /v1/projects/{projectId}/servers/{serverId}/resize- Server resizen
Erforderliche Berechtigungen:
iaas.server.list
iaas.server.get
iaas.server.create
iaas.server.update
iaas.server.delete
iaas.server.console-url.get
iaas.server.console-log.get
iaas.server.start
iaas.server.stop
iaas.server.reboot
iaas.server.deallocate
iaas.server.rescue
iaas.server.unrescue
iaas.server.resize
2. Volumes (Disks/Storage)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/volumes- Volumes auflistenGET /v1/projects/{projectId}/volumes/{volumeId}- Volume-Details abrufenPOST /v1/projects/{projectId}/volumes- Volume erstellenPATCH /v1/projects/{projectId}/volumes/{volumeId}- Volume aktualisierenDELETE /v1/projects/{projectId}/volumes/{volumeId}- Volume löschenPOST /v1/projects/{projectId}/volumes/{volumeId}/resize- Volume vergrößern
Erforderliche Berechtigungen:
iaas.volume.list
iaas.volume.get
iaas.volume.create
iaas.volume.update
iaas.volume.delete
iaas.volume.resize
3. Volume Attachments (Server-Volume-Zuordnung)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/servers/{serverId}/volume-attachments- Attachments auflistenGET /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId}- Attachment-DetailsPUT /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId}- Volume anhängenPATCH /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId}- Attachment aktualisierenDELETE /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId}- Volume trennen
Erforderliche Berechtigungen:
iaas.server.volume.list
iaas.server.volume.get
iaas.server.volume.add
iaas.server.volume.update
iaas.server.volume.remove
4. Networks
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/networks- Netzwerke auflistenGET /v1/projects/{projectId}/networks/{networkId}- Netzwerk-Details abrufenPOST /v1/projects/{projectId}/networks- Netzwerk erstellenDELETE /v1/projects/{projectId}/networks/{networkId}- Netzwerk löschenPOST /v1/projects/{projectId}/servers/{serverId}/networks/{networkId}- Netzwerk an Server anhängenDELETE /v1/projects/{projectId}/servers/{serverId}/networks/{networkId}- Netzwerk von Server trennen
Erforderliche Berechtigungen:
iaas.network.list
iaas.network.get
iaas.network.create
iaas.network.delete
iaas.server.network.add
iaas.server.network.remove
5. Network Interfaces (NICs)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/nics- Alle NICs im Projekt auflistenGET /v1/projects/{projectId}/nics/{nicId}- NIC-Details abrufenGET /v1/projects/{projectId}/networks/{networkId}/nics- NICs eines Netzwerks auflistenPOST /v1/projects/{projectId}/networks/{networkId}/nics- NIC erstellenPATCH /v1/projects/{projectId}/networks/{networkId}/nics/{nicId}- NIC aktualisierenDELETE /v1/projects/{projectId}/networks/{networkId}/nics/{nicId}- NIC löschenGET /v1/projects/{projectId}/servers/{serverId}/nics- NICs eines Servers auflistenPUT /v1/projects/{projectId}/servers/{serverId}/nics/{nicId}- NIC an Server anhängenDELETE /v1/projects/{projectId}/servers/{serverId}/nics/{nicId}- NIC von Server trennen
Erforderliche Berechtigungen:
iaas.nic.list
iaas.nic.get
iaas.nic.create
iaas.nic.update
iaas.nic.delete
iaas.server.nic.list
iaas.server.nic.add
iaas.server.nic.remove
6. Public IPs
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/public-ips- Public IPs auflistenGET /v1/projects/{projectId}/public-ips/{publicIpId}- Public IP-Details abrufenPOST /v1/projects/{projectId}/public-ips- Public IP erstellenPATCH /v1/projects/{projectId}/public-ips/{publicIpId}- Public IP aktualisierenDELETE /v1/projects/{projectId}/public-ips/{publicIpId}- Public IP löschenPUT /v1/projects/{projectId}/servers/{serverId}/public-ips/{publicIpId}- IP an Server anhängenDELETE /v1/projects/{projectId}/servers/{serverId}/public-ips/{publicIpId}- IP von Server trennen
Erforderliche Berechtigungen:
iaas.public-ip.list
iaas.public-ip.get
iaas.public-ip.create
iaas.public-ip.update
iaas.public-ip.delete
iaas.server.public-ip.add
iaas.server.public-ip.remove
7. Network Security Groups (NSGs/Firewalls)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/security-groups- Security Groups auflistenGET /v1/projects/{projectId}/security-groups/{securityGroupId}- Security Group-DetailsPOST /v1/projects/{projectId}/security-groups- Security Group erstellenPATCH /v1/projects/{projectId}/security-groups/{securityGroupId}- Security Group aktualisierenDELETE /v1/projects/{projectId}/security-groups/{securityGroupId}- Security Group löschenGET /v1/projects/{projectId}/security-groups/{securityGroupId}/rules- Regeln auflistenGET /v1/projects/{projectId}/security-groups/{securityGroupId}/rules/{ruleId}- Regel-DetailsPOST /v1/projects/{projectId}/security-groups/{securityGroupId}/rules- Regel erstellenDELETE /v1/projects/{projectId}/security-groups/{securityGroupId}/rules/{ruleId}- Regel löschenPUT /v1/projects/{projectId}/servers/{serverId}/security-groups/{securityGroupId}- NSG an Server anhängenDELETE /v1/projects/{projectId}/servers/{serverId}/security-groups/{securityGroupId}- NSG von Server trennen
Erforderliche Berechtigungen:
iaas.security-group.list
iaas.security-group.get
iaas.security-group.create
iaas.security-group.update
iaas.security-group.delete
iaas.security-group.rule.list
iaas.security-group.rule.get
iaas.security-group.rule.create
iaas.security-group.rule.delete
iaas.server.security-group.add
iaas.server.security-group.remove
8. Images
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/images- Images auflistenGET /v1/projects/{projectId}/images/{imageId}- Image-Details abrufenPOST /v2/projects/{projectId}/regions/{region}/volumes/{volumeId}/upload- Image erstellen/hochladenPATCH /v2/projects/{projectId}/regions/{region}/images/{imageId}- Image aktualisierenDELETE /v1/projects/{projectId}/images/{imageId}- Image löschen
Erforderliche Berechtigungen:
iaas.image.list
iaas.image.get
iaas.image.create
iaas.image.update
iaas.image.delete
9. Snapshots
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/snapshots- Snapshots auflistenGET /v1/projects/{projectId}/snapshots/{snapshotId}- Snapshot-Details abrufenPOST /v2/projects/{projectId}/regions/{region}/snapshots- Snapshot erstellenDELETE /v1/projects/{projectId}/snapshots/{snapshotId}- Snapshot löschen
Erforderliche Berechtigungen:
iaas.snapshot.list
iaas.snapshot.get
iaas.snapshot.create
iaas.snapshot.delete
10. Flavors/Machine Types
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/machine-types- Machine Types auflistenGET /v1/projects/{projectId}/volume-performance-classes- Volume Performance Classes auflisten
Erforderliche Berechtigungen:
iaas.machine-type.list
iaas.machine-type.get
iaas.volume-performance-class.list
iaas.volume-performance-class.get
11. Service Accounts (Server-bezogen)
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/servers/{serverId}/service-accounts- Service Accounts auflistenPUT /v1/projects/{projectId}/servers/{serverId}/service-accounts/{serviceAccountMail}- SA anhängenDELETE /v1/projects/{projectId}/servers/{serverId}/service-accounts/{serviceAccountMail}- SA trennen
Erforderliche Berechtigungen:
iaas.server.service-account.list
iaas.server.service-account.add
iaas.server.service-account.remove
12. Quotas
Verwendete API-Endpunkte:
GET /v1/projects/{projectId}/quotas- Projekt-Quotas abrufen
Erforderliche Berechtigungen:
iaas.quota.get
13. SKUs (Pricing Information Management)
Verwendete API-Endpunkte:
GET /v1/skus- SKUs auflisten (PIM API)
Erforderliche Berechtigungen:
Keine spezifische Permission dokumentiert - die PIM API ist öffentlich zugänglich
14. Availability Zones
Verwendete API-Endpunkte:
- (Implicit - wird von anderen Services verwendet)
Erforderliche Berechtigungen:
Keine zusätzlichen Berechtigungen erforderlich
-
Zusammenfassung: Vollständige Liste aller Berechtigungen
Vollständige Liste aller IAM-Berechtigungen anzeigen
# Server Management
iaas.server.list
iaas.server.get
iaas.server.create
iaas.server.update
iaas.server.delete
iaas.server.console-url.get
iaas.server.console-log.get
iaas.server.start
iaas.server.stop
iaas.server.reboot
iaas.server.deallocate
iaas.server.rescue
iaas.server.unrescue
iaas.server.resize
# Volume Management
iaas.volume.list
iaas.volume.get
iaas.volume.create
iaas.volume.update
iaas.volume.delete
iaas.volume.resize
# Volume Attachments
iaas.server.volume.list
iaas.server.volume.get
iaas.server.volume.add
iaas.server.volume.update
iaas.server.volume.remove
# Network Management
iaas.network.list
iaas.network.get
iaas.network.create
iaas.network.delete
iaas.server.network.add
iaas.server.network.remove
# NIC Management
iaas.nic.list
iaas.nic.get
iaas.nic.create
iaas.nic.update
iaas.nic.delete
iaas.server.nic.list
iaas.server.nic.add
iaas.server.nic.remove
# Public IP Management
iaas.public-ip.list
iaas.public-ip.get
iaas.public-ip.create
iaas.public-ip.update
iaas.public-ip.delete
iaas.server.public-ip.add
iaas.server.public-ip.remove
# Security Group Management
iaas.security-group.list
iaas.security-group.get
iaas.security-group.create
iaas.security-group.update
iaas.security-group.delete
iaas.security-group.rule.list
iaas.security-group.rule.get
iaas.security-group.rule.create
iaas.security-group.rule.delete
iaas.server.security-group.add
iaas.server.security-group.remove
# Image Management
iaas.image.list
iaas.image.get
iaas.image.create
iaas.image.update
iaas.image.delete
# Snapshot Management
iaas.snapshot.list
iaas.snapshot.get
iaas.snapshot.create
iaas.snapshot.delete
# Flavors/Machine Types
iaas.machine-type.list
iaas.machine-type.get
iaas.volume-performance-class.list
iaas.volume-performance-class.get
# Service Account Attachments
iaas.server.service-account.list
iaas.server.service-account.add
iaas.server.service-account.remove
# Quotas
iaas.quota.get
-
Anwendung der Berechtigungen mit der STACKIT CLI
Anwendung der Berechtigungen anzeigen
Option 1: Vordefinierte Rolle (Empfohlen)
Die einfachste Methode ist die Zuweisung der Rolle project.editor zum Service Account:
# Service Account erstellen (im STACKIT Portal)
# Rolle zuweisen
stackit project member add \
--project-id <PROJECT_ID> \
--email <SERVICE_ACCOUNT_EMAIL> \
--role project.editor
Option 2: Custom Role mit minimalen Berechtigungen
Falls Sie statt der empfohlenen Standardrolle eine eigene Rolle mit nur den oben aufgeführten Berechtigungen erstellen möchten, beachten Sie die StackIT Custom Roles Dokumentation.
Sicherheitshinweise
- Prinzip der minimalen Berechtigung: Verwenden Sie nur die Berechtigungen, die tatsächlich benötigt werden
- Key Flow bevorzugen: Nutzen Sie den Key Flow statt Token Flow für höhere Sicherheit
- Regelmäßige Reviews: Überprüfen Sie regelmäßig, ob alle Berechtigungen noch benötigt werden
- Service Account-Scope: Binden Sie den Service Account nur an die spezifischen Projekte, in denen er benötigt wird
- Rotation: Rotieren Sie Service Account Keys regelmäßig
Weitere Informationen
- StackIT IAM Dokumentation
- Service Accounts erstellen
- Rollen und Berechtigungen
- IaaS API Dokumentation
3. Service Account erstellen und Projektzugriff gewähren
Im folgenden Schritt erstellen Sie einen StackIT Service Account und weisen ihm die in Abschnitt 2 beschriebenen IAM-Berechtigungen für Ihr Projekt zu.
3.1 Service Account erstellen
- Scrollen Sie in der linken Navigation zu IAM und Verwaltung und klicken Sie auf Service Accounts.
- Klicken Sie auf Service Account erstellen.

- Vergeben Sie einen eindeutigen Namen, z. B. "oc-service-account". Es muss nur der Name (Prefix) angegeben werden. Die vollständige Service-Account-E-Mail-Adresse wird von StackIT automatisch generiert und dem Service Account zugewiesen.
- Klicken Sie auf Erstellen.

- Der Service Account wird anschließend in der Liste angezeigt.
Kopieren Sie sich die E-Mail-Adresse, da Sie diese im nächsten Schritt benötigen.
3.2 Zugriff auf das Projekt gewähren (IAM Access)
- Öffnen Sie im Projekt den Menüpunkt Zugriff.
- Klicken Sie auf Zugriff gewähren.

- Wählen Sie unter Rolleninhaber hinzufügen den zuvor erstellten Service Account aus.
Fügen Sie hierzu die kopierte E-Mail-Adresse aus Schritt 3.1 ein. - Weisen Sie dem Service Account die Rolle Editor zu.
- Klicken Sie auf Speichern.

Der Service Account besitzt nun Zugriff auf das Projekt und dessen Ressourcen.
4. Service Account Key erstellen (JSON)
Damit oneclick™ sich bei StackIT authentifizieren kann, müssen Sie Zugangsdaten für den Service Account erzeugen.
- Öffnen Sie IAM und Verwaltung und klicken Sie auf Service Accounts.
- Wählen Sie den zuvor erstellten Service Account aus.

- Klicken Sie auf Service Account Keys.
- Klicken Sie auf Service Account Schlüssel erstellen.

- Wählen Sie Schlüsselpaar generieren.
- Setzen Sie optional ein Ablaufdatum.
- Klicken Sie auf Erstellen.

- Laden Sie die erzeugte JSON-Datei herunter und speichern Sie sie sicher.

Die JSON-Datei kann nicht erneut angezeigt oder heruntergeladen werden.
Die JSON-Datei wird später in oneclick™ benötigt.
5. Projekt-ID ermitteln
- Öffnen Sie das Projekt im StackIT-Portal.
- Die Projekt-ID wird im oberen Bereich oder in der URL angezeigt.
- Kopieren Sie die Projekt-ID.

6. StackIT-Abonnement im oneclick™ Admin anbinden
- Öffnen Sie den oneclick™ Admin-Bereich.
- Klicken Sie im Reiter Ressourcen auf Anbindungen.
- Klicken Sie auf das Plus-Symbol, um ein Cloud-Abonnement anzubinden.

- Wählen Sie die Kachel Cloud-Abonnement und anschließend StackIT Cloud.

- Vergeben Sie einen Namen für die Anbindung und tragen Sie die Projekt ID aus Schritt 5 ein.
- Fügen Sie im Feld Service Account Key den vollständigen Inhalt der zuvor heruntergeladenen Service-Account-Key-JSON-Datei ein.
- Klicken Sie auf Speichern.
Das StackIT-Abonnement ist nun angebunden und vorhandene Ressourcen werden ausgelesen. Kosten entstehen erst bei der Nutzung von virtuellen Maschinen. - Nun können Sie neue virtuelle Maschinen anlegen.
7. Infos zu bearbeiteten Default Network Security Groups
Sie haben bereits VMs über das StackIT-Portal angelegt und lesen diese in oneclick™ aus?
Dann haben Sie vermutlich in oneclick™ dieser Cloud-Ressource auch eine Firewall-Regel hinzugefügt, um über oneclick™ Zugriff auf die Ressource zu erhalten.
Beim Hinzufügen einer Firewall-Regel in oneclick™ wird eine neue Network Security Group pro Cloud-Ressource in StackIT angelegt.
Die Default Security Group wird immer an VMs angehängt und ist technisch notwendig.
Haben Sie eigene Einstellungen in der Default Security Group vorgenommen, die Sie weiterhin benötigen, fügen Sie diese über einen der beiden folgende Wege erneut hinzu:
- Erstellen Sie neue Firewall-Regeln in oneclick™. Diese setzen Sie bei den Einstellungen der Cloud-Ressource. Die Firewall-Regeln die Sie dort definieren, werden der oneclick™ Network Security Group in StackIT hinzugefügt.
- Legen Sie eine neue Network Security Group über das StackIT-Portal an und setzen Sie Ihre bisher erstellten Regeln neu. Fügen Sie diese anschließen bei Ihrer Cloud-Ressource hinzu.
Support-Hinweis
Für die Umsetzung der beschriebenen Schritte übernehmen wir keine Haftung. Bei Unklarheiten oder technischen Abweichungen empfehlen wir, den Support des Cloud-Providers direkt zu kontaktieren.
Kontaktinformationen
STACKIT GmbH & Co. KG
Stiftsbergstraße 1
74172 Neckarsulm
Deutschland
Hotline:
+49 7132 30-474747
Support-Portal:
STACKIT Help Center