Einstellungen konfigurieren
In diesem Thema wird beschrieben, wie Sie den Mandanten mit IAM-Berechtigungen, dynamischen Gruppen, OCI Object Storage-Service und VM-Instanzen konfigurieren.
Objekt-Bucket einrichten
Der für diese Lösung verwendete Bucket ist ein einfacher Objekt-Bucket, der im Standardmodus erstellt wird, da er alle Ebenen unterstützt: Standard, Selten und Archiv. Auf diese Weise können Objekte die Stufe ändern, wenn sie älter werden. Sie fließen in die Archivierungsebene mit den niedrigsten Kosten ein, die beibehalten werden muss, bis der angegebene Zeitrahmen verstrichen ist.
Zu diesem Bucket fügen wir eine Aufbewahrungsregel hinzu, die das Ändern oder Löschen von Objekten nach der Erstellung effektiv verhindert. Die Regel wird erst gesperrt, wenn der Test abgeschlossen ist.
Darüber hinaus fügen wir Objektlebenszyklusregeln hinzu, um die Storage Tier jedes Objekts je nach Anforderungen automatisch zu ändern. Nachdem das Objekt in die Archiv-Tier verschoben wurde, ist es nicht mehr sofort verfügbar, sondern muss vor dem Zugriff "zurückgerufen" werden. Dies kann über eine OCI-Funktion, ein Skript oder einen externen Prozess erfolgen, der entworfen werden muss.
Nachdem die OCID und der Name des Buckets bekannt sind, können wir schmale Berechtigungen für die dynamischen Gruppen festlegen, die auf den Bucket zugreifen. Diese Policy-Anweisungen können die erweiterten Policy-Prädikate von OCI nutzen, wie target.bucket.name.
Dynamische Gruppen einrichten
Möglicherweise ist bereits eine dynamische Gruppe auf Compartment-Ebene vorhanden, wenn der Mandant mit der CIS-Landing Zone eingerichtet wurde. In diesem Abschnitt wird davon ausgegangen, dass keine dynamische Gruppe vorhanden ist.
Dynamische Gruppen
Beachten Sie, dass unterschiedliche Sets von virtuellen OCI-Maschinen RCLONE oder OCIFS installieren und auf den Objektspeicher zugreifen. Daher können wir dynamische Gruppen basierend auf bestimmten Instanz-OCIDs oder Compartment-OCIDS definieren, je nachdem, wo die VMs erstellt werden. Für diese Lösung wurden die folgenden 2 dynamischen Gruppen erstellt:
Name: oci-rclone-full-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz1', instance.id = 'ocid.xxx.yyy.zzzz2' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz'
Name: oci-ocifs-readonly-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz3', instance.id = 'ocid.xxx.yyy.zzz4' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz
Platzhalter können für eine Instanz-OCID verwendet werden, wenn diese nicht erstellt wurde oder sich ändern kann. Mit der zweiten Option oben können Sie unbegrenzte Instanzen im referenzierten Compartment erstellen, ohne sich Gedanken über die Aktualisierung der dynamischen Gruppe machen zu müssen. Wenn alle Instanzen, die für die Lösung verwendet werden, im selben Compartment vorhanden sind, müssen dynamische Gruppen mit Instanz-OCIDs definiert werden, damit schreibgeschützte Instanzen nicht uneingeschränkt darauf zugreifen können.
Berechtigungen einrichten
Angenommen, Sie haben zum Starten keine spezifischen Objektspeicherberechtigungen für ein Compartment oder einen Bucket. Zu Beginn könnten wir entweder eine bestimmte Policy erstellen oder unsere Anweisungen an eine vorhandene Policy anhängen.
cislz-appdev-cmp-policy
aktualisiert, um dynamische Gruppenanweisungen hinzuzufügen, wie unten gezeigt. Wenn wir von Grund auf neu anfangen, verwendet das folgende Beispiel eine Policy-Vorlage, um den Zugriff der dynamischen Gruppe und Benutzergruppen auf den Objektspeicher zu definieren. Die Policy-Anweisungen können bei Bedarf jetzt oder später um Bedingungen erweitert werden.allow dynamic-group oci-rclone-full-dg to read buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-rclone-full-dg to manage objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-ocifs-readonly-dg to read objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
Weitere Berechtigungen können später und im Rahmen von Tests hinzugefügt oder entfernt werden. Es wird empfohlen, sowohl RCLONE als auch OCIFS vollständig zu testen, um sicherzustellen, dass alle erteilten Berechtigungen korrekt sind.
VM-Instanzen mit RCLONE einrichten
Die Erstellung virtueller OCI-Maschinen ist für diese Lösung nicht relevant, aber jede Linux-VM-Ausprägung funktioniert. Grundlegende Konnektivität über Servicegateway oder NAT-Gateway ist erforderlich, ebenso wie VCN-Egress für Port 443. Wenn private Object Storage-Endpunkte verwendet werden, sind die Gateways und Egress-Regeln nicht erforderlich.
Im Wesentlichen muss die VM auf OCI Object Storage zugreifen können. Die andere wichtige Anforderung besteht darin, dass die VM innerhalb des Compartments erstellt wird, das in der dynamischen Gruppe referenziert wird. Wie angegeben, kann die Definition der dynamischen Gruppe später so angepasst werden, dass sie nur die VM-OCID enthält, oder sie kann mit der Compartment-basierten Definition der dynamischen Gruppe übereinstimmen. Sobald die VM eingerichtet und zugänglich ist, kann RCLONE installiert werden. Befolgen Sie die allgemeine RCLONE-Dokumentation, insbesondere den Abschnitt OCI Object Storage.
Um das Setup der dynamischen Gruppe zu verwenden, lautet der Authentifizierungstyp hier instance_principal_auth
. Führen Sie die Schritte im obigen Dokument aus, und erstellen Sie eine Reihe von Tests. Je nach den Berechtigungen, die über eine dynamische Gruppe erteilt wurden, können Sie einen Bucket mit dem falschen rclone
-Befehl einfach löschen. Wie oben beschrieben, beschränkt die Berechtigung, mit der diese Lösung beginnt, die dynamische Gruppe auf "Buckets lesen" und "Objekte verwalten". Sie können also keinen Bucket erstellen oder löschen, aber seinen Inhalt entfernen. Die RCLONE-Dokumentation enthält einige sichere Beispiele für Tests, wie das Auflisten von Inhalten, das Einfügen von Objekten und das Entfernen eines einzelnen Objekts.
VM-Instanzen mit OCIFS einrichten
Ähnlich wie im vorherigen Abschnitt ist die Erstellung von virtuellen Maschinen nicht im Geltungsbereich. OCIFS wird ebenfalls auf einer Gruppe von VMs installiert.
Weitere Informationen zur Verwendung von Instanz-Principals, die von der zuvor hinzugefügten dynamischen Gruppe und Policy profitieren, finden Sie in der Dokumentation zum OCIFS-Utility.
- direkte ocifs-Einhängebefehle
/etc/fstab
-Einträge- Automount-Konfiguration
archive-bucket /mnt/archive-bucket fuse.ocifs auth=instance_principal 0 0
archive-bucket -fstype=fuse,allow_other,auth=instance_principal :ocifs\#archive-bucket