Accès interlocations au stockage d'objet

Les adresses SQL Data Flow peuvent accéder au stockage d'objets dans les locations. Ils peuvent faire quelque chose dans une location différente de celle dans laquelle ils existent.

Vous disposez d'une adresse SQL Data Flow dans une location lors de la lecture d'objets stockés dans une deuxième location. Vous devez appliquer des stratégies dans chaque location en conséquence. Par exemple :
  • L'adresse SQL est dataflow-sample-endpoint dans une location, Tenancy-A.
  • Les objets à lire se trouvent dans une location nommée Tenancy-B et l'index des objets est créé dans le même bucket.
Autorisez tenancy-a-group à lire les buckets et les objets dans Tenancy-B :
  1. Appliquez les stratégies suivantes dans le compartiment racine de Tenancy-A :
    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'}

    La première instruction est une instruction define qui affecte un libellé convivial à l'OCID de Tenancy-B. Les deuxième et troisième instructions permettent à dataflow-sample-endpoint de lire les buckets et de gérer les objets dans Tenancy-B. La dernière instruction permet au metastore de lire les objets dans Tenancy-B.

  2. Appliquez les stratégies suivantes dans le compartiment racine de Tenancy-B :
    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'}

    La première instruction est une instruction define qui affecte un libellé convivial à l'OCID de la location-A. Les deuxième et troisième instructions permettent à dataflow-sample-endpoint de lire les buckets et de gérer les objets dans Tenancy-B. La dernière instruction permet au metastore de lire des objets dans la location B. Le mot "admit" indique que l'accès s'applique à un point d'extrémité de flux de données en dehors de la location dans laquelle résident les buckets et les objets.

    Vous pouvez limiter davantage la stratégie relative aux objets gérés en la limitant à un bucket. Par exemple, limitez-vous à un bucket nommé your-bucket dans 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>'}