Themen dieses Artikels
Überblick
Das S3-Protokoll, Simple Storage Service (S3), ist ein Filehosting-Dienst, der theoretisch beliebig große Datenmengen speichern kann. Daten werden nicht mehr klassisch in Dateien abgelegt, sondern man spricht hier von Objekten. Der Zugriff erfolgt über HTTP bzw. HTTPS. Amazon hat das Konzept der Buckets und Objects zuerst eingeführt, das Verzeichnissen und Dateien ähnelt und sich als Standard etabliert hat. Unternehmen wie NetApp, OpenIO oder auch Microsoft versuchen dieser Schnittstelle nachzukommen.
Ein Bucket wird in einer von vielen Regionen gespeichert, wobei eine bestimmte Region z.B. aufgrund von Latenzzeiten zu bevorzugen ist. Jeder Bucket verfügt über einen eindeutigen Identifier und ist damit in dem gesamten S3 Storage einmalig vorhanden.
Die Programmierschnittstelle des S3-Protokolls ist frei verfügbar. Benutzer von S3 müssen sich autorisieren. Zur Benutzeridentifikation hat das S3-Protokoll einen Authorization Header mit einem Zugangs-Key und Signaturen für Anfragen.
DRACOON und S3
Die DRACOON-Umgebung übernimmt in diesem Fall die Rolle eines S3-Clients, welcher die Daten in einem Bucket des S3-Storages ablegt.
- Möchte der Benutzer eine Datei in den DRACOON z.B. per Web App hochladen, wird zunächst am DRACOON ein Upload-Channel erzeugt.
- Der DRACOON-Server generiert mit den zuvor hinterlegten S3-Zugangsdaten für den Client eine vorsignierte URL. Diese spezifische URL enthält einen einmaligen Zugriffstoken auf den S3 Bucket zum Hochladen eines Objectes. Zusätzlich erhält dieses die für den Datenraum festgelegten Tags.
- Der Client lädt direkt über die vorsignierte URL die Datei in den S3 Bucket hoch.
- Wurden Richtlinien im S3 Storage für die Behandlung spezieller Tags definiert, beginnt diese nun beispielswiese mit der georedundaten Verteilung des Objects.
- Der Client meldet dem Server den erfolgreichen Upload der Datei zurück und schließt somit den Upload-Channel ab. Die Datei ist jetzt für andere Benutzer in den Clients sichtbar.
Der Download einer Datei ist analog zum Upload-Prozess zu sehen, nur dass hier die Behandlung der Tags wegfällt.
Im folgenden Diagramm sind die oben beschriebenen Schritte nochmals grafisch dargestellt:
Datenschutz und hohe Übertragungsgeschwindigkeit durch S3-Direkt-Dateitransfers
Wenn S3-Speicher an DRACOON angebunden ist, verwenden alle offiziellen DRACOON-Clients und SDKs automatisch S3-Direkt-Dateitransfer beim Hoch- und Herunterladen von Dateien, also S3-Direktupload bzw. S3-Direktdownload.
Dies bedeutet, dass der gesamte Datenverkehr der eigentlichen Dateiübertragung ausschließlich zwischen dem jeweiligen Client und dem angebundenen S3-Speicher stattfindet und nicht über DRACOON geroutet wird – DRACOON als Cloud-Anbieter ist also in keinem Fall in der Lage, auf die übertragenen Dateien zuzugreifen, wodurch der Datenschutz gewahrt bleibt.
Außerdem führen S3-Direkt-Dateitransfers dazu, dass Benutzer, die sich im Netzwerk des S3-Speichers befinden (z.B. im Firmen-LAN), in Höchstgeschwindigkeit Dateien hoch- und herunterladen können, weil der eigentliche Dateitransfer dann nicht übers Internet (zu DRACOON) stattfindet, sondern z.B. vom PC-Arbeitsplatz in der Firmenzentrale direkt an den S3-Speicher im Rechenzentrum vor Ort gerichtet ist.
Sichere Presigned URLs, die auf den S3-Speicher verweisen
Bei einer Up- bzw. Downloadanfrage durch einen Client an DRACOON mit angebundenem S3-Speicher erstellt DRACOON jeweils eine sog. Presigned URL, die auf den S3-Speicher verweist und über die der Client dann dort eine Datei hoch- bzw. herunterladen kann. Eine Presigned URL enthält alle für den Dateitransfer notwendigen Authentifizierungsinformationen:
- Referenz auf das Zielobjekt im S3-Speicher (Zieldatei)
- Erstellungszeitpunkt
- Gültigkeitszeitraum
- Begrenzt auf 5 Stunden für das Herunterladen von Dateien
- Begrenzt auf 4 Stunden für das Hochladen von Dateien
- Begrenzt auf 7 Tage für das Herunterladen eines Profilbilds
- Signatur: SHA256-HMAC (Authentifizierungsinfo) und S3 Secret Key, mit AWS Signatur-Algorithmus Version 4 verschlüsselt
Presigned URLs werden von DRACOON nur für authentifizierte und zugriffsberechtigte Benutzer erzeugt und direkt an den anfragenden Client übergeben – sie sind für Benutzer nicht sichtbar.
S3-Direktdownload
Ablauf, wenn ein Benutzer mit einem offiziellen DRACOON-Client eine Datei herunterlädt, die sich im an DRACOON angebundenen S3-Speicher befindet:
- Der Benutzer initiiert im Client (z.B. DRACOON für Windows) den Download der Datei. Der Client richtet den Download-Request an die DRACOON-Umgebung.
- Die DRACOON-Umgebung prüft Authentifizierung und Berechtigung zum Download der Datei durch den jeweiligen Benutzer, erstellt eine Presigned URL (s.o.) für die Datei und übergibt die Presigned URL an den Client.
- Der eigentliche Dateitransfer beginnt – sämtlicher Datenverkehr findet nun allein zwischen dem Client und S3-Speicher statt und läuft nicht über DRACOON: Der Client verwendet die empfangene Presigned URL, um die Datei direkt aus dem S3-Speicher anzufragen.
- Der Client erhält die angefragte Datei (eine PDF-Datei im obigen Beispiel) direkt vom S3-Speicher.
S3-Direktupload
Ablauf, wenn ein Benutzer mit einem offiziellen DRACOON-Client eine Datei hochlädt, die im an DRACOON angebundenen S3-Speicher abgelegt werden soll:
- Der Benutzer initiiert im Client (z.B. DRACOON für Windows) den Upload der Datei. Der Client richtet den Upload-Request an die DRACOON-Umgebung.
- Die DRACOON-Umgebung prüft Authentifizierung und Berechtigung zum Upload der Datei durch den jeweiligen Benutzer, erstellt eine Presigned URL (s.o.) für die Datei und übergibt die Presigned URL an den Client.
- Der eigentliche Dateitransfer wird durchgeführt: Der Client verwendet die empfangene Presigned URL, um die Datei direkt an den S3-Speicher zu senden und dort hochzuladen (zu speichern) – sämtlicher Datenverkehr während des Dateiuploads findet allein zwischen dem Client und S3-Speicher statt und läuft nicht über DRACOON.
- Abschluss des Dateitransfers: Der S3-Speicher meldet den erfolgreichen vollständigen Upload der Datei an den Client zurück.
- Der Client meldet an DRACOON den erfolgreichen vollständigen Upload der Datei in den S3-Speicher und sendet Metadaten zur hochgeladenen Datei an DRACOON.
- DRACOON überprüft den Upload logisch (jedoch nicht die hochgeladene Datei selbst!) und bestätigt dem Client, dass der Upload der neuen Datei akzeptiert wird (z.B., dass keine Quota in DRACOON überschritten wurde).
Datenfluss-Schaubild
Das folgende Schaubild stellt den Datenfluss zwischen den DRACOON-Clients, dem S3-Speicher und der DRACOON SaaS-Umgebung dar:
S3 in DRACOON konfigurieren
Es ist sehr einfach, mit S3 und DRACOON eine Hybrid-Cloud-Lösung zu realisieren. Dazu wird lediglich einmalig eine S3-Konfiguration in DRACOON hinterlegt. Diese bildet fortan die Basis für die Kommunikation zwischen der DRACOON-Software und den externen Datenspeichern auf Kundenseite – weitere Schritte sind nicht erforderlich.
Hierzu wird in der DRACOON Web App in den Einstellungen unter Speicher der S3-Endpunkt angegeben, neben dem Access- und Secret-Key, dem Bucket-Name und der Region. Der Access- und Secret-Key müssen Vollzugriffsrechte auf den Bucket haben.
Des weiteren können S3 Object Tags aktiviert werden (s.u). Ab diesem Zeitpunkt lassen sich S3 Tags definieren und einem Datenraum zuweisen.
- Der S3 Object Storage muss öffentlich im Internet erreichbar sein, um mit DRACOON verwendet werden zu können.
- Eine bestehende DRACOON-Umgebung kann jederzeit auf S3-Speicher umgestellt werden. Sobald ein S3-Speicher an DRACOON angebunden wurde, werden alle bereits in DRACOON vorhandenen Daten automatisch in den S3-Speicher verschoben – enthält die DRACOON-Umgebung bereits sehr viele Dateien, kann diese Migration in den S3-Speicher mehrere Tage dauern. Während der Migration kann DRACOON uneingeschränkt weiterverwendet werden – DRACOON erkennt beim Dateizugriff während der Migration automatisch, welche Dateien bereits in den S3-Speicher migriert wurden und welche sich noch im DRACOON-Speicher befinden.
- Beachten Sie: Wurde eine DRACOON-Umgebung auf S3-Speicher umgestellt, lässt sich dies nicht mehr rückgängig machen! DRACOON zeigt vor der endgültigen Umstellung eine entsprechende Warnung an, die bestätigt werden muss.
Zusätzliche Flexibilität durch S3 Object Tags
DRACOON unterstützt auch S3 Object Tags (kurz: S3 Tags). Wenn Sie S3 Tags unter Einstellungen > Speicher aktivieren, können Raum-Administratoren diese bestimmten Datenräumen zuweisen. Bestimmte S3 Tags können auch als verpflichtend festgelegt werden und werden somit automatisch an jede Datei in jedem Datenraum angehängt und können vom einem Raum-Administrator auch nicht deaktiviert werden.
In Verbindung z.B. mit NetApp wird durch S3 Tags eine bisher ungeahnte Flexibilität bei der Datenspeicherung möglich. In DRACOON können beliebige Object Tags (Schlüsselwörter), die Sie in der NetApp Policy Engine definiert haben, angegeben und bestimmten Datenräumen zugewiesen werden. NetApp wendet dann die definierten Speicherregeln an, je nach Schlüsselwort.
- Beispielsweise können so Daten von besonders sensiblen Datenräumen automatisch in einem Rechenzentrum der höchsten Sicherheitsstufe gespeichert werden oder an einem bestimmten Ort auf der Erde.
- Eine weitere Möglichkeit stellt die georedundante Speicherung von Daten dar. Hierbei wird dem Client für den Down- und Upload der Objects immer der nächstgelegene günstigste Storage-Knoten angeboten.
- Auch können per S3 Object Tags Archivierungsrichtlinien angewandt werden. Somit lassen sich beispielsweise S3 Objects erst nach 10 Jahren löschen und werden bis zum Ablauf der Frist revisionssicher archiviert.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.