Testen und validieren

Auf dieser Seite werden einige der Tests behandelt, die direkt von VM-Instanzen ausgeführt werden können, die Mitglieder der konfigurierten dynamischen Gruppen sind. RCLONE und OCIFS sollten ähnlich getestet werden, mit einer Vielzahl von Befehlen, die Lese- und Schreibzugriff testen.

RCLONE-Tests

Im Rahmen dieses Aufwands wird die Aufbewahrungsregel für den Bucket für einen Teil der Zeit entfernt, damit wir die Fähigkeit von rclone zum Lesen und Schreiben in einen Bucket vollständig testen können.

Nach Abschluss des Tests kann die Regel wiederhergestellt und gesperrt werden. Das Testen erfolgt, indem Sie mit einer dynamischen Gruppe beginnen, die über die Berechtigungen "bucket read" und "object read" für alle Buckets innerhalb des Compartments verfügt, das den Archiv-Bucket enthält.

Um eine konfigurierte RCLONE-Remote anzuzeigen, führen Sie den folgenden Befehl aus:
OS prompt> rclone config show [OCI-IP]
type = oracleobjectstorage
provider = instance_principal_auth
namespace = <tenancy-namespace>
compartment = ocid1.compartment.oc1..xxx
region = us-ashburn-1
Alle folgenden Befehle erfordern OCI-IP, um auf die konfigurierte Objektspeicherumgebung und die Zugangsdaten zu verweisen. Um eine Datei in einen Bucket zu synchronisieren (kopieren oder aktualisieren), wurde der Bucket mit der OCI-Konsole vorab erstellt, da unser schmales Berechtigungsset keine Bucket-Erstellung oder -Löschung enthält. Im folgenden Block wird der Synchronisierungsvorgang gefolgt von einer Bucket-Liste angezeigt.
OS prompt> rclone sync rclone-test.txt OCI-IP:rclone-testing
OS prompt> rclone ls OCI-IP:rclone-testing 
 33 rclone-test.txt

Das Löschen von Dateien kann ebenfalls getestet werden. Befolgen Sie die RCLONE-Dokumentation für alle verfügbaren Optionen, wie z. B. Filtern.

OS prompt> rclone delete OCI-IP:rclone-testing/rclone-test.txt

Policy-Änderungen

Im Allgemeinen kehrt RCLONE einfach zur Eingabeaufforderung zurück, wenn der Vorgang erfolgreich war, gibt jedoch eine Fehlermeldung aus, wenn die Berechtigungen für einen bestimmten Vorgang fehlen. Beispiel: Wenn aufgrund der zuvor definierten Berechtigungen versucht wird, einen Bucket zu löschen, verläuft die Aktion mit der folgenden Meldung nicht erfolgreich:
OS prompt> rclone purge OCI-IP:rclone-testing
2024/08/29 14:36:15 ERROR : : Failed to rmdir: Error returned by ObjectStorage Service. Http Status Code: 404. Error Code: BucketNotFound. Opc request id: iad-1:xxx. Message: Either the bucket named 'rclone-testing' does not exist in the namespace '<namespace>' or you are not authorized to access it
Operation Name: DeleteBucket
Wie bereits erwähnt, können die Policy-Anweisungen, die für die dynamische Gruppe definiert wurden, bei Bedarf geändert werden. Beispiel: Um das Erstellen oder Löschen von Buckets zuzulassen, kann die folgende Anweisung hinzugefügt werden:
allow dynamic-group oci-rclone-full-dg to manage buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name =
    'rclone-testing'}
Nach dem Hinzufügen dieser Policy-Anweisung kann der vorherige Vorgang wiederholt werden, und der Bucket wird gelöscht.

Es ist hilfreich, einen Browser für den OCI Object Storage-Bildschirm geöffnet zu lassen und die Seite in einem Bucket zu aktualisieren, damit jeder Vorgang verifiziert werden kann.

OCIFS-Tests

Anhand der im vorherigen Abschnitt angegebenen Beispiele wurde das OCIFS-Utility auf verschiedene Weise getestet. Sobald die dynamische Gruppe und Policy so funktionieren, wie sie entworfen wurden, können Policys geändert und die Ergebnisse bei der Bearbeitung von Berechtigungen schnell geändert werden.

Im Rahmen von Berechtigungsänderungen wird empfohlen, OCIFS-Dateisysteme auszuhängen. Die Dokumentation enthält die Syntax zum Aushängen.

Caching, das von OCIFS bereitgestellt wird, ist ebenfalls verfügbar und wurde als Teil der Lösung getestet. Es werden mehrere Optionen beschrieben, von denen jede mit der Lösung funktioniert.

Hinweis:

Die Verwendung von Automount kann sich auf das OCIFS-Caching auswirken, da es den Cache entfernt, es sei denn, die Optionen cache-reuse und cache-keep werden verwendet.

Das folgende Beispiel zeigt, wie Sie einen Einhängepunkt erstellen und mit OCIFS eine Verbindung zu einem Bucket herstellen:

root OS prompt# mkdir /mnt/read-bucket
root OS prompt# ocifs --auth=instance_principal read-bucket /mnt/read-bucket/
root OS prompt# cd /mnt/read-bucket
root OS prompt# ls -al
total 0
drwxr-xr-x. 2 root root 6 Nov 6 14:56 .
drwxr-xr-x. 5 root root 68 Nov 6 14:56 ..
-rw-r--r--. 1 root root 4 Nov 6 14:57 file.txt
Als Test mit eingeschränkten Berechtigungen sollte diese VM keine Datei aus diesem Bucket löschen können. Ein Fehler sollte wie folgt auftreten:
root OS prompt# rm file.txt
rm: remove regular file 'file.txt'? y
rm: cannot remove file.txt': Input/output error

Weitere Tests mit zusätzlichen Buckets, dynamischen Gruppendefinitionen und Policy-Anweisungen können durchgeführt werden. Lassen Sie ein oder zwei Minuten zwischen Änderungen und Tests zu, damit die Berechtigungen propagiert werden können.