Zum Hauptinhalt springen

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

  1. Loggen Sie sich in Ihrem StackIT-Konto ein.
  2. Klicken Sie auf Ressource erstellen und anschließend auf Projekt erstellen.
  3. Vergeben Sie einen Projektnamen, weisen Sie das Projekt der gewünschten Organisation zu, wählen Sie einen Projekttyp aus und klicken Sie auf Erstellen.
  4. 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 auflisten
  • GET /v1/projects/{projectId}/servers/{serverId} - Server-Details abrufen
  • POST /v1/projects/{projectId}/servers - Server erstellen
  • PATCH /v1/projects/{projectId}/servers/{serverId} - Server aktualisieren
  • DELETE /v1/projects/{projectId}/servers/{serverId} - Server löschen
  • GET /v1/projects/{projectId}/servers/{serverId}/console - Konsole abrufen
  • GET /v1/projects/{projectId}/servers/{serverId}/log - Server-Log abrufen
  • POST /v1/projects/{projectId}/servers/{serverId}/start - Server starten
  • POST /v1/projects/{projectId}/servers/{serverId}/stop - Server stoppen
  • POST /v1/projects/{projectId}/servers/{serverId}/reboot - Server neustarten
  • POST /v1/projects/{projectId}/servers/{serverId}/deallocate - Server deallokieren
  • POST /v1/projects/{projectId}/servers/{serverId}/rescue - Server in Rescue-Modus
  • POST /v1/projects/{projectId}/servers/{serverId}/unrescue - Rescue-Modus beenden
  • POST /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 auflisten
  • GET /v1/projects/{projectId}/volumes/{volumeId} - Volume-Details abrufen
  • POST /v1/projects/{projectId}/volumes - Volume erstellen
  • PATCH /v1/projects/{projectId}/volumes/{volumeId} - Volume aktualisieren
  • DELETE /v1/projects/{projectId}/volumes/{volumeId} - Volume löschen
  • POST /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 auflisten
  • GET /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId} - Attachment-Details
  • PUT /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId} - Volume anhängen
  • PATCH /v1/projects/{projectId}/servers/{serverId}/volume-attachments/{volumeId} - Attachment aktualisieren
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/networks/{networkId} - Netzwerk-Details abrufen
  • POST /v1/projects/{projectId}/networks - Netzwerk erstellen
  • DELETE /v1/projects/{projectId}/networks/{networkId} - Netzwerk löschen
  • POST /v1/projects/{projectId}/servers/{serverId}/networks/{networkId} - Netzwerk an Server anhängen
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/nics/{nicId} - NIC-Details abrufen
  • GET /v1/projects/{projectId}/networks/{networkId}/nics - NICs eines Netzwerks auflisten
  • POST /v1/projects/{projectId}/networks/{networkId}/nics - NIC erstellen
  • PATCH /v1/projects/{projectId}/networks/{networkId}/nics/{nicId} - NIC aktualisieren
  • DELETE /v1/projects/{projectId}/networks/{networkId}/nics/{nicId} - NIC löschen
  • GET /v1/projects/{projectId}/servers/{serverId}/nics - NICs eines Servers auflisten
  • PUT /v1/projects/{projectId}/servers/{serverId}/nics/{nicId} - NIC an Server anhängen
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/public-ips/{publicIpId} - Public IP-Details abrufen
  • POST /v1/projects/{projectId}/public-ips - Public IP erstellen
  • PATCH /v1/projects/{projectId}/public-ips/{publicIpId} - Public IP aktualisieren
  • DELETE /v1/projects/{projectId}/public-ips/{publicIpId} - Public IP löschen
  • PUT /v1/projects/{projectId}/servers/{serverId}/public-ips/{publicIpId} - IP an Server anhängen
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/security-groups/{securityGroupId} - Security Group-Details
  • POST /v1/projects/{projectId}/security-groups - Security Group erstellen
  • PATCH /v1/projects/{projectId}/security-groups/{securityGroupId} - Security Group aktualisieren
  • DELETE /v1/projects/{projectId}/security-groups/{securityGroupId} - Security Group löschen
  • GET /v1/projects/{projectId}/security-groups/{securityGroupId}/rules - Regeln auflisten
  • GET /v1/projects/{projectId}/security-groups/{securityGroupId}/rules/{ruleId} - Regel-Details
  • POST /v1/projects/{projectId}/security-groups/{securityGroupId}/rules - Regel erstellen
  • DELETE /v1/projects/{projectId}/security-groups/{securityGroupId}/rules/{ruleId} - Regel löschen
  • PUT /v1/projects/{projectId}/servers/{serverId}/security-groups/{securityGroupId} - NSG an Server anhängen
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/images/{imageId} - Image-Details abrufen
  • POST /v2/projects/{projectId}/regions/{region}/volumes/{volumeId}/upload - Image erstellen/hochladen
  • PATCH /v2/projects/{projectId}/regions/{region}/images/{imageId} - Image aktualisieren
  • DELETE /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 auflisten
  • GET /v1/projects/{projectId}/snapshots/{snapshotId} - Snapshot-Details abrufen
  • POST /v2/projects/{projectId}/regions/{region}/snapshots - Snapshot erstellen
  • DELETE /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 auflisten
  • GET /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 auflisten
  • PUT /v1/projects/{projectId}/servers/{serverId}/service-accounts/{serviceAccountMail} - SA anhängen
  • DELETE /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

  1. Prinzip der minimalen Berechtigung: Verwenden Sie nur die Berechtigungen, die tatsächlich benötigt werden
  2. Key Flow bevorzugen: Nutzen Sie den Key Flow statt Token Flow für höhere Sicherheit
  3. Regelmäßige Reviews: Überprüfen Sie regelmäßig, ob alle Berechtigungen noch benötigt werden
  4. Service Account-Scope: Binden Sie den Service Account nur an die spezifischen Projekte, in denen er benötigt wird
  5. Rotation: Rotieren Sie Service Account Keys regelmäßig

Weitere Informationen

 

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

  1. Scrollen Sie in der linken Navigation zu IAM und Verwaltung und klicken Sie auf Service Accounts.
  2. Klicken Sie auf Service Account erstellen.
  3. 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.
  4. Klicken Sie auf Erstellen.
  5. 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)

  1. Öffnen Sie im Projekt den Menüpunkt Zugriff.
  2. Klicken Sie auf Zugriff gewähren.
  3. 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.
  4. Weisen Sie dem Service Account die Rolle Editor zu.
  5. 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.

  1. Öffnen Sie IAM und Verwaltung und klicken Sie auf Service Accounts.
  2. Wählen Sie den zuvor erstellten Service Account aus.
  3. Klicken Sie auf Service Account Keys.
  4. Klicken Sie auf Service Account Schlüssel erstellen.
  5. Wählen Sie Schlüsselpaar generieren.
  6. Setzen Sie optional ein Ablaufdatum.
  7. Klicken Sie auf Erstellen.
  8. 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

  1. Öffnen Sie das Projekt im StackIT-Portal.
  2. Die Projekt-ID wird im oberen Bereich oder in der URL angezeigt.
  3. Kopieren Sie die Projekt-ID.

     

6. StackIT-Abonnement im oneclick™ Admin anbinden

  1. Öffnen Sie den oneclick™ Admin-Bereich.
  2. Klicken Sie im Reiter Ressourcen auf Anbindungen.
  3. Klicken Sie auf das Plus-Symbol, um ein Cloud-Abonnement anzubinden.
  4. Wählen Sie die Kachel Cloud-Abonnement und anschließend StackIT Cloud.
  5. Vergeben Sie einen Namen für die Anbindung und tragen Sie die Projekt ID aus Schritt 5 ein.
  6. Fügen Sie im Feld Service Account Key den vollständigen Inhalt der zuvor heruntergeladenen Service-Account-Key-JSON-Datei ein.
  7. Klicken Sie auf Speichern.
    Das StackIT-Abonnement ist nun angebunden und vorhandene Ressourcen werden ausgelesen. Kosten entstehen erst bei der Nutzung von virtuellen Maschinen.
  8. 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