Hinweis:

Logs aus mehreren Oracle Cloud Infrastructure-Mandanten in einem zentralen Oracle Cloud Infrastructure-Mandanten-Bucket zentralisieren

Einführung

In einigen Fällen müssen Sie alle Logs an einem Ort zentralisieren, selbst wenn sie aus verschiedenen Mandanten stammen. Es könnte an Branchenvorschriften oder Unternehmensrichtlinien liegen; was auch immer Ihr Fall sein mag, Sie können unterschiedliche Managementbedenken haben, um dies zu erreichen.

In diesem Tutorial zentralisieren wir Audit-, Service- oder benutzerdefinierte Logs, die in verschiedenen Oracle Cloud Infrastructure-(OCI-)Mandanten generiert wurden, unter einem zentralen Mandanten mit Archivierungs- oder Visualisierungszwecken mit OCI-Cross-Mandantenzugriff und dem OCI Connector Hub-Service.

Architekturdiagramm

Architekturdiagramm.

Hinweis: Für dieses Tutorial müssen sich alle Mandanten in derselben Region befinden.

Ziele

Voraussetzungen

Aufgabe 1: Policys im Zielmandanten erstellen

Die folgenden OCI-IAM-Policys werden im Zielmandanten (Mandant C) konfiguriert, in dem sich der OCI Object Storage-Bucket befindet.

  1. Rufen Sie die folgenden Informationen für Mandant A ab.

    • OCID
    • Compartment-OCID, in der der OCI Connector Hub bereitgestellt wird.
  2. Rufen Sie die folgenden Informationen für Mandant C ab.

    • Compartment-Name, in dem der Bucket erstellt wurde.
  3. Erstellen Sie die folgenden Policys mit den in Schritt 1 und 2 erfassten Informationen.

    • Definieren Sie den Remotemandanten.

      define tenancy SCTenancyA as <Tenancy A OCID>
      

      Hinweis: Aktualisieren Sie <Tenancy A OCID> mit den in Schritt 1 erfassten Informationen.

    • Zulassen, dass ein Service-Connector-Principal aus dem Remotemandanten Buckets in einem lokalen Compartment liest.

      admit any-user of tenancy SCTenancyA to read buckets in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
      

      Hinweis: Aktualisieren Sie <Tenancy C Compartment name> und <Tenancy A Compartment OCID> mit den entsprechenden Informationen.

    • Zulassen, dass ein Service-Connector-Principal aus dem Remotemandanten Objekte in einem lokalen Bucket verwaltet, die auf Objektprüfungs- und Objekterstellungsaktionen beschränkt sind.

      admit any-user of tenancy SCTenancyA to manage objects in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id=’ <Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
      

      Hinweis:

      • Aktualisieren Sie <Tenancy C Compartment name> und <Tenancy A Compartment OCID> mit den entsprechenden Informationen.
      • Alle Ressourcen befinden sich im Geltungsbereich eines Quell- oder Ziel-Compartments. Weitere Informationen zu Endorse-, Admit- und Define-Anweisungen finden Sie unter Endorse, Admit und Define Statements.
  4. Melden Sie sich bei der OCI-Konsole an, navigieren Sie zu ID und Sicherheit, und klicken Sie auf Policys.

  5. Stellen Sie sicher, dass Sie sich im Root Compartment befinden, und klicken Sie auf Policy erstellen.

  6. Geben Sie Name, Beschreibung ein, und klicken Sie auf Manuellen Editor anzeigen.

  7. Schreiben Sie die in Aufgabe 1.3 erstellten Policys, und klicken Sie auf Erstellen.

Die Policys sollten folgendermaßen aussehen:

Policies_destination.

Aufgabe 2: Policys im Quellmandanten erstellen

Die folgenden OCI-IAM-Policys müssen in jedem Quellmandanten (Mandant A und Mandant B) konfiguriert werden, in dem ein OCI Connector Hub bereitgestellt wird. Der OCI Connector Hub erfasst die Logs und sendet sie an das zentrale Repository.

  1. Rufen Sie die folgenden Informationen für Mandant A ab.

    • Compartment-OCID, in der der OCI Connector Hub bereitgestellt wird.
  2. Rufen Sie die folgenden Informationen für Mandant C ab.

    • OCID
  3. Erstellen Sie die folgenden Policys mit den in Schritt 1 und 2 erfassten Informationen.

    • Definieren Sie den Remotemandanten.

      Define tenancy OSTenancyC as <Tenancy C OCID>
      

      Hinweis: Aktualisieren Sie <Tenancy C OCID> mit den entsprechenden Informationen.

    • Zulassen, dass ein Service-Connector-Principal aus dem lokalen Mandanten Buckets in einem Zielmandanten liest.

      endorse any-user to read buckets in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
      

      Hinweis: Aktualisieren Sie <Tenancy A Compartment OCID> mit den entsprechenden Informationen.

    • Zulassen, dass ein Service-Connector-Principal aus dem lokalen Mandanten Objekte im Zielmandanten verwaltet, die auf Objektprüfungs- und Objekterstellungsaktionen beschränkt sind.

      endorse any-user to manage objects in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
      

      Hinweis:

      • Aktualisieren Sie <Tenancy A Compartment OCID> mit den entsprechenden Informationen.
      • Alle Ressourcen befinden sich im Geltungsbereich eines Quell- oder Ziel-Compartments. Weitere Informationen zu Endorse-, Admit- und Define-Anweisungen finden Sie unter Endorse-, Admit- und Define-Anweisungen
  4. Melden Sie sich bei der OCI-Konsole an, navigieren Sie zu ID und Sicherheit, und klicken Sie auf Policys.

  5. Stellen Sie sicher, dass Sie sich im Root Compartment befinden, und klicken Sie auf Policy erstellen.

  6. Geben Sie Name, Beschreibung ein, und klicken Sie auf Manuellen Editor anzeigen.

  7. Geben Sie die in Aufgabe 2.3 vorbereiteten Policys ein, und klicken Sie auf Erstellen.

Die Policys sollten folgendermaßen aussehen:

Policies_source.

Aufgabe 3: OCI Connector Hub im Quellmandanten bereitstellen

Stellen Sie den OCI Connector Hub in den Quellmandanten (Mandant A und Mandant B) mit der OCI-CLI bereit.

Hinweis: Um einen Connector zu erstellen, der auf Ressourcen in anderen Mandanten zugreift, müssen Sie das OCI-SDK, die CLI oder die API verwenden.

  1. Stellen Sie eine Verbindung zur OCI-CLI des Quellmandanten (Mandant A und Mandant B) her. Für dieses Tutorial verwenden wir OCI Cloud Shell. Weitere Informationen zur Verwendung von OCI Cloud Shell finden Sie unter Cloud Shell verwenden.

  2. Erstellen Sie zwei Dateien mit dem folgenden Inhalt: source.json und target.json.

    • source.json: Hier werden die Logquellen aus dem Quellmandanten (Mandant A oder Mandant B) definiert, in denen Logs erfasst werden.

      Aktualisieren Sie die folgenden Parameter mit Ihren Werten im Beispielcode.

      • <Tenancy A OCID where Audit log resides>
      • <Tenancy A Compartment OCID where log group resides>
      • <Tenancy A Log Group OCID>
      • <Tenancy A _Log-ID OCID_>
      {
      
      "kind": "logging",
      
      "logSources": [
      
      					{
      
      					"compartment-id": "_<Tenancy A OCID where Audit log resides>_",
      
      					"log-group-id": "_Audit_Include_Subcompartment",
      
      					"log-id": null
      
      					},
      
      					{
      
      					"compartment-id": "_<Tenancy A Compartment OCID where log group resides>_",
      
      					"log-group-id": _"<Tenancy A Log Group OCID>",_
      
      					"log-id": "<Tenancy A _Log-ID OCID_>"
      
      					}
      
      				]
      
      }
      

      Hinweis: Das obige source.json-Beispiel enthält zwei Logquellen: Beim ersten Beispiel wird OCI Connector Hub so konfiguriert, dass Auditlogs aus dem Root Compartment und allen Sub-Compartments erfasst werden. Im zweiten Schritt wird der OCI Connector Hub so konfiguriert, dass bestimmte Logs aus einer Loggruppe (definiert durch log-id und log-group-id) erfasst werden, wie ein Subnetzlog. Sie können Logquellen bei Bedarf zu dieser Konfiguration hinzufügen oder daraus entfernen.

    • Target.json: Er definiert den Bucket im Zielmandanten (Mandant C), in dem Logs archiviert werden.

      {
      			"kind": "objectStorage",
      			"bucketName": "<Tenancy C bucket name>",
      			"namespace": "<Tenancy C namespace where bucket was created>"
      }
      

      Hinweis: Sie können den Bucket-Namespace aus den Bucket-Details abrufen.

  3. Führen Sie den folgenden Befehl aus.

    oci sch service-connector create --compartment-id <Compartment OCID where SCH will be placed in Tenancy A> --display-name <Display name> --source file://Source.json --target file://Target.json
    

    Hinweis: Die Dateien source.json und target.json müssen zugänglich sein.

    Connector_deployment.

  4. Wiederholen Sie bei Bedarf die Schritte 1 bis 3 für alle anderen Quellmandanten. Weitere OCI Connector Hub-Zieloptionen finden Sie in der ObjectStorageTargetDetails-Referenz.

  5. Prüfen Sie die Ergebnisse.

    • Im Quellmandanten wird ein OCI Connector Hub mit den definierten Quellen und dem Ziel-Bucket erstellt.

      Connector_console.

    • Der Ziel-Bucket enthält einen Eintrag für jeden OCI Connector Hub.

      Bucket_Content.

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.