Mandantenübergreifender Objektspeicherzugriff

Data Flow-SQL-Endpunkte können mandantenübergreifend auf den Objektspeicher zugreifen. Sie können etwas in einem anderen Mandanten als dem, in dem sie existieren, tun.

Beim Lesen von Objekten, die in einem zweiten Mandanten gespeichert sind, ist ein Data Flow-SQL-Endpunkt in einem Mandanten vorhanden. Sie müssen Policys in jedem Mandanten entsprechend anwenden. Beispiel:
  • Der SQL-Endpunkt ist dataflow-sample-endpoint in einem Mandanten, Tenancy-A.
  • Die zu lesenden Objekte befinden sich in einem Mandanten namens Tenancy-B, und der Index der Objekte wird im selben Bucket erstellt.
Lassen Sie zu, dass tenancy-a-group Buckets und Objekte in Tenancy-B lesen kann:
  1. Wenden Sie die folgenden Policys im Root Compartment von Tenancy-A an:
    define tenancy Tenancy-B as tenancy-b-ocid
    endorse any-user to read buckets in tenancy Tenancy-B where ALL {request.principal.type='dataflowsqlendpoint',request.principal.id = '<dataflow-sample-endpoint-ocid>'}
    endorse any-user to manage objects in tenancy Tenancy-B where ALL {request.principal.type='dataflowsqlendpoint',request.principal.id = '<dataflow-sample-endpoint-ocid>'}
    endorse any-user to read object-family in tenancy Tenancy-B where ALL {request.principal.type='datacatalogmetastore'}

    Die erste Anweisung ist eine define-Anweisung, die der OCID von Tenancy-B ein benutzerfreundliches Label zuweisen. Mit der zweiten und dritten Anweisung kann dataflow-sample-endpoint Buckets lesen und Objekte in Tenancy-B verwalten. Mit der letzten Anweisung kann der Metastore Objekte in Tenancy-B lesen.

  2. Wenden Sie die folgenden Policys im Root Compartment von Tenancy-B an:
    define tenancy Tenancy_A as tenancy-a-ocid
    admit any-user of tenancy Tenancy-A to read buckets in compartment <compartment> where ALL {request.principal.type='dataflowsqlendpoint',request.principal.id = '<dataflow-sample-endpoint-ocid>'}
    admit any-user of tenancy Tenancy-A to manage objects in compartment <compartment> Tenancy-B where ALL {request.principal.type='dataflowsqlendpoint',request.principal.id = '<dataflow-sample-endpoint-ocid>'}
    admit any-user of tenancy Tenancy-A to read object-family in compartment <compartment> where ALL {request.principal.type='datacatalogmetastore'}

    Die erste Anweisung ist eine Definitionsanweisung, die der OCID von Tenancy-A ein benutzerfreundliches Label zuweist. Mit der zweiten und dritten Anweisung kann der dataflow-sample-endpoint die Buckets lesen und Objekte in Tenancy-B verwalten. Mit der letzten Anweisung kann Metastore Objekte in Mandanten-B lesen. Das Wort "admit" gibt an, dass der Zugriff für einen dataflow-sample-endpoint außerhalb des Mandanten gilt, in dem die Buckets und Objekte gespeichert sind.

    Sie können weitere Einschränkungen vornehmen, indem Sie die Policy für verwaltete Objekte auf einen Bucket beschränken. Beispiel: Beschränken Sie den Wert auf einen Bucket mit dem Namen your-bucket in your-compartment:

    admit any-user of tenancy Tenancy-A to manage objects in compartment your-compartment Tenancy-B where ALL {target.bucket.name = 'your-bucket', request.principal.type='dataflowsqlendpoint',request.principal.id = '<dataflow-sample-endpoint-ocid>'}