Nextcloud + Constellation

So können Sie Confidential Nextcloud einrichten

Herausforderung

Nextcloud ist ein beliebtes Collaboration-Tool, welches selbst gehostet werden kann und 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.

Lösung

Confidential Computing bietet eine kostengünstige Alternative zu On-Premise-Implementierungen. Es handelt sich um eine bahnbrechende Technologie, welche Daten immer verschlüsselt, auch während der Verarbeitung. Wenn es richtig angewendet, kann Confidential Computing sogar komplexe Anwendungen vor der Cloud-Infrastruktur abschirmen. Wenn Workloads auf diese Weise geschützt sind, 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 Computings 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 weder der Cloud-Anbieter noch Angreifer, die über die Infrastruktur kommen, darauf zugreifen können.

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.

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.

Anleitung: 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.

Live-Demo

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

Zur Veranschaulichung haben wir die folgenden Anweisungen für jemanden geschrieben, der Azure mit einem GoDaddy-Registrar nutzt. 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 richtigen Clusters endet. Dadurch wird sichergestellt, dass kein Man-in-Middle-Angriff möglich ist.

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.

Mehr erfahren

Tauchen Sie tiefer in die Constellation Docs ein oder lesen Sie, wie Constellation genutzt wird, um Journalisten zu schützen.

Kontakt

Setzen Sie sich mit uns in Verbindung, um eine ausführliche Präsentation über Constellation zu erhalten oder um Lösungen zu entdecken, die die Produkte von Edgeless System ermöglichen.