nextcloud x constellation

Nextcloud + Constellation

So können Sie Confidential Nextcloud einrichten

Herausforderung


Nextcloud ist ein beliebtes Collaboration-Tool, welches eine Alternative zu Microsoft 365 für Unternehmen darstellt. Als All-in-One Lösung können Sie Nextcloud selbst hosten.


Gerade für den öffentlichen Sektor kann dies nützlich und spannend sein, da diese Organisationen häufig On-Premise-Lösungen benötigen, um Datenschutz zu wahren und ein hohes Maß an Sicherheit zu gewährleisten.


Zwar räumen On-Premise-Lösungen den Nutzern ein hohes Maß an Kontrolle über die Installation ein, gleichzeitig führen diese aber zu Einschränkungen im Falle einer Skalierung über die anfänglichen Hardwareinvestitionen hinaus.


On-Premise-Installationen können schnell teurer werden, wenn sich die Infrastrukturanforderungen eines Unternehmens ändern. Darüber hinaus sind einfache Backups sowie geografische Redundanz bei vielen solcher Installationen nicht möglich.

Threat model, using nextcloud without constellation

Lösung


Confidential Computing bietet eine kostengünstige Alternative zu On-Premise-Implementierungen. Es handelt sich um eine revolutionäre Technologie, welche Daten immer verschlüsselt, auch während der Verarbeitung. Wenn es richtig angewendet wird, kann Confidential Computing sogar komplexe Anwendungen vor der Cloud-Infrastruktur abschirmen. So können nicht einmal Systemadministratoren, Mitarbeiter von Cloud-Anbietern oder privilegierte Angreifer darauf zugreifen. Zudem kann diese Verschlüsselung sogar remote überprüft werden. Grundlegende Funktionen des Confidential Computing‘s sind bereits auf den großen Clouds wie Azure, GCP und AWS verfügbar. Diese grundlegenden Funktionen reichen jedoch nicht aus, um komplexe und skalierbare Anwendungen wie Nextcloud effektiv zu schützen.


Hierfür benötigen Sie eine Lösung wie Constellation. Constellation ist eine Open-Source-Software, die gesamte Kubernetes-Deployments Ende-zu-Ende mithilfe von Confidential Computing in Clouds schützt. Im Wesentlichen kann Constellation jede Anwendung, die auf Kubernetes ausgeführt werden kann, abschirmen und zur Laufzeit verschlüsseln. Mit Constellation können Sie also komplexe Collaboration-Software wie Nextcloud in der Public Cloud ausführen. Dabei haben Sie die Sicherheit, dass der Code stets verschlüsselt ist und sowohl der Cloud-Anbieter als auch Angreifer, die über die Infrastruktur kommen, keinen Zugriff haben.

Mit der Gewissheit der Datensicherheit können Nextcloud-Installationen somit von den zusätzlichen Funktionen profitieren, die Hyperscaler-Cloud-Provider bieten: einfaches Deployment, ständige Verfügbarkeit, kostengünstige Backups und simplere Ansätze zur Skalierung.

nextcloud protected with constellation

Technische Details


Constellation gewährleistet, dass sämtliche Komponenten des Kubernetes-Clusters in verschlüsselten und isolierten CVMs laufen. Dadurch werden Daten, die in Datenbanken geschrieben und in den Cloud-Speicher übertragen werden, automatisch verschlüsselt. Die kryptografischen Keys für diese Daten werden innerhalb der CVMs erzeugt und verwaltet, ohne dass zusätzlicher Code von Ihren Entwicklern erforderlich ist. Zudem überprüft Constellation die Integrität und Authentizität aller CVMs, um sicherzustellen, dass sie das korrekte "gute" Constellation Node-Image verwenden. So bleiben alle Daten, die die CVMs verlassen, verschlüsselt.


Ergebnis


Durch die Nutzung von Nextcloud in Verbindung mit Confidential Computing können Administratoren Nextcloud auf gängigen Cloud-Plattformen betreiben, als wäre es eine On-Premise-Implementierung. Die Nutzung großer Cloud-Anbieter kann mehr Flexibilität in Bezug auf Standort, Skalierung und Infrastrukturauswahl anbieten, während die Kosten deutlich unter denen von On-Premise-Implementierungen liegen.


Insbesondere für Organisationen des öffentlichen Sektors kann der Zugang zu diesen zusätzlichen Ressourcen die Digitalisierung erleichtern, die IT-Infrastruktur widerstandsfähiger gegen Ausfallzeiten machen und zusätzliche Sicherheit in Form von Laufzeitverschlüsselung bieten.


Tutorial: So installieren Sie Nextcloud auf Constellation


Nextcloud ist eine Collaboration-Software, deren Testversion sehr schnell aufgesetzt werden kann. Sie kann confidential gemacht werden, indem sie in Kombination mit Constellation auf Confidential Computing-fähiger Hardware eingesetzt wird. Diese ist in Azure, GCP und AWS verfügbar ist.



Voraussetzungen und Überblick


Um Nextcloud auf Constellation laufen zu lassen, benötigen Sie:

  • Einen Cloud-Anbieter mit Confidential Computing-fähigen Rechenkapazitäten (z.B. AWS, Azure, GCP)

  • Einen Domain-Registrar, um einen Domainnamen für Ihren Cluster einzurichten

  • kubectl und helm müssen auf Ihrem Rechner installiert sein

Der Prozess besteht aus drei Hauptschritten:

  1. Einrichten von Constellation

  2. Einrichten der Domain

  3. Installation von Nextcloud über Helmchart

Wir haben die folgenden Anweisungen für Nutzer geschrieben, die Azure mit einem GoDaddy-Registrar verwenden, um die Anleitung übersichtlicher und einfacher zu gestalten. Dieses Tutorial kann jedoch mit jedem der großen Cloud-Anbieter und einem Registrar Ihrer Wahl durchgeführt werden.

Einrichten von Constellation


Nachdem Sie eine Verbindung zu Ihrem Cloud-Anbieter hergestellt haben, laden Sie die Constellation CLI herunter und installieren Sie diese.


Sobald diese installiert ist, erstellen Sie den Constellation Cluster:

Dieser Vorgang wird in den Constellation Docs ausführlich beschrieben.


constellation config generate azure
constellation iam create azure --region=westus --resourceGroup=constellTest --servicePrincipal=spTest --update-config
constellation create -y
constellation init
export KUBECONFIG="$PWD/constellation-admin.conf"


Sie können nun mit kubectl oder anderen Tools eine Verbindung zum Cluster herstellen, indem Sie die automatisch generierte constellation-admin.conf verwenden. Die Konfiguration stellt sicher, dass die Verbindung "confidential" ist und innerhalb des korrekten Clusters endet. Dadurch sind keine "Man-in-Middle"-Angriffe mehr möglich.



Einrichten von Nextcloud


Für unser Beispiel-Setup (Azure mit GoDaddy) haben wir ein leicht modifiziertes Helmchart bereitgestellt, welches external-dns und ingress-nginx im neuerstellten Cluster installiert und konfiguriert.


Um das Helmchart zu verwenden, müssen Sie nach dem Klonen des Repo ein paar grundlegende Änderungen vornehmen:

  • Ersetzen Sie die Werte in .env mit Ihren GoDaddy-API-Anmeldedaten und einer passenden Eigentümer-ID. Die Eigentümer-ID wird von external-dns verwendet, um die DNS-Einträge aus verschiedenen Clustern bei Ihrem DNS-Anbieter (GoDaddy) zu unterscheiden. Daher sollten Sie für jeden Cluster, den Sie nutzen, einen anderen Wert verwenden.

  • Ersetzen Sie your.domain von nextcloud.testing.your.domain in values.yaml durch eine Domain von Ihnen. Sie können auch die Subdomain ändern, wenn Sie möchten.

Wenn Sie Ihre Anmeldeinformationen haben, können Sie die erforderlichen helm-Befehle ausführen.

source .env
helm dependency update ./nextcloud
helm upgrade nextcloud ./nextcloud --install --namespace default --set apiKey=$GODADDY_API_KEY --set secretKey=$GODADDY_SECRET_KEY --set external-dns.txtOwnerID=$OWNER_ID --set nextcloud.nextcloud.password="somesecretadminpw" --set tlsCertEmail="<YOUR EMAIL HERE>"



Installation abgeschlossen


Sie haben nun Ihre eigene Confidential Nextcloud eingerichtet! Nachdem helm install abgeschlossen ist, benötigt Nextcloud etwa 5 Minuten für die Installation. Anschließend können Sie zu https://nextcloud.edgeless.systems/ navigieren und mit Ihrer Confidential Nextcloud starten.

Lernen Sie mehr über Constellation


Schauen Sie sich die Constellation Docs doch näher an oder lesen Sie, wie Constellation genutzt wird, um Journalisten zu schützen.

Interessiert an weiteren Informationen?


Kontaktieren Sie uns für eine eingehende Präsentation von Constellation oder um die Möglichkeiten des Tooling‘s von Edgeless Systems zu entdecken.