Exemples de stratégie
Voici quelques exemples de stratégies pour Data Catalog.
La syntaxe d'une stratégie est la suivante :
allow <subject> to <verb> <resource-type> in <location> where <conditions>
Pour plus d'informations, reportez-vous à Syntaxe de stratégie. Pour plus d'informations sur la création de stratégies, reportez-vous à Fonctionnement des stratégies, à Référence de stratégie et aux détails des stratégies pour Object Storage.
Vous pouvez créer des stratégies pour définir le mode d'accès des utilisateurs aux ressources du catalogue de données. Reportez-vous aux verbes de mise en correspondance des droits d'accès du catalogue de données afin de choisir celui qui répond à nos exigences d'accès.
Le verbe read
pour data-catalogs
couvre les mêmes droits d'accès et opérations d'API que le verbe inspect
, plus les droits d'accès CATALOG_READ
, CATALOG_JOB_DEFINITION_READ
, CATALOG_JOB_READ
et CATALOG_WORK_REQUEST_READ
, ainsi que les opérations d'API qu'ils couvrent, comme ListGlossaries
, GetCatalog
, etc.
Créez cette stratégie pour autoriser un groupe à afficher la liste de tous les catalogues de données dans la location :
allow group <group-name> to inspect data-catalogs in tenancy
Créez cette stratégie pour autoriser un groupe à effectuer toutes les opérations répertoriées pour CATALOG_READ
dans un compartiment spécifié :
allow group <group-name> to read data-catalogs in compartment <x>
Le verbe manage
inclut les mêmes droits d'accès et opérations d'API que le verbe use
, plus les droits d'accès CATALOG_CREATE
, CATALOG_DELETE
et CATALOG_MOVE
, qui comprennent respectivement les opérations d'API CreateCatalog
, DeleteCatalog
et MoveCatalog
.
Créez cette stratégie pour autoriser un groupe à gérer tous les catalogues de données situés dans un compartiment spécifique :
allow group <group-name> to manage data-catalog-family in compartment <x>
Créez cette stratégie pour autoriser un groupe à gérer tous les catalogues de données, sans pouvoir les supprimer :
allow group <group-name> to manage data-catalog-family in compartment <x>
where request.permission !='CATALOG_DELETE'
Créez cette stratégie pour autoriser un groupe à gérer toutes les ressources d'un catalogue de données spécifique :
allow group <group-name> to manage data-catalog-family in tenancy
where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
Avant de créer des ressources de données Object Storage, vous devez créer des stratégies pour octroyer l'accès aux objets de données requis. Une fois que vous avez créé ces stratégies, seules les entités de données auxquelles votre instance de catalogue de données a accès sont répertoriées lorsque vous collectez la ressource de données Object Storage. Vous pouvez sélectionner les objets de données à collecter dans la liste affichée.
Vous devez au moins disposer du droit d'accès READ
sur tous les types de ressource objectstorage-namespaces
, buckets
et objects
, ou sur le type agrégé de ressource Object Storage object-family
. Pour obtenir des instructions étape par étape, reportez-vous au tutoriel Collecte à partir d'Oracle Object Storage.
Tout d'abord, vous devez créer un groupe dynamique qui inclut l'OCID du catalogue de données en question en tant que ressource dans le groupe.
Par exemple :
Any {resource.id = 'ocid.datacatalog.oc1..<unique_ID>'}
Utilisez les stratégies suivantes si votre instance Data Catalog et Object Storage se trouvent dans la même location :
Autoriser l'accès à la location
- Créez cette stratégie uniquement pour que
root_compartment
autorise l'accès à n'importe quel objet, dans n'importe quel bucket, dans n'importe quel compartiment de la location. La portée de cette stratégie étant l'ensemble de la location, un compartiment enfant n'a pas accès aux compartiments racine ou parent.allow dynamic-group <dynamic-group-name> to read object-family in tenancy
Autoriser l'accès à des buckets spécifiques
- Accéder à n'importe quel objet dans
bucketA
oubucketB
d'une locationallow dynamic group <dynamic-group-name> to read object-family in tenancy where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
- Accéder à n'importe quel objet dans
bucketA
oubucketB
dans n'importe quel compartimentallow dynamic group <dynamic-group-name> to read object-family in compartment <compartment-name> where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
- Accéder à n'importe quel objet dans
bucketA
oubucketB
dans n'importe quel compartiment à l'aide de l'OCID de compartimentallow dynamic group <dynamic-group-name> to read object-family in compartment id <compartment_ocid> where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
Pour afficher l'OCID du compartiment dans la console, ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous Identité, cliquez sur Compartiments. Cliquez sur le lien du compartiment pour la ressource Object Storage. A partir de la page Détails du compartiment, copiez l'OCID sous Informations sur le compartiment.
Autoriser l'accès à un compartiment spécifique
-
Accéder à n'importe quel bucket d'un compartiment spécifique
allow dynamic-group <dynamic-group-name> to read object-family in compartment <compartment-name>
Lorsque vous collectez une ressource de données Object Storage, les entités de données de tous les buckets du compartiment indiqué sont répertoriées. Vous pouvez ensuite sélectionner les objets de données dans ces buckets pour la collecte.
- Accéder à n'importe quel bucket d'un compartiment à l'aide de l'OCID de compartiment
allow dynamic-group <dynamic-group-name> to read object-family in compartment id <compartment_ocid>
Pour afficher l'OCID du compartiment dans la console, ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Compartiments. Cliquez sur le lien du compartiment pour la ressource Object Storage. A partir de la page Détails du compartiment, copiez l'OCID sous Informations sur le compartiment.
Créez les stratégies suivantes en tant que prérequis si votre instance Data Catalog et Object Storage se trouvent dans des locations différentes.
Dans la location de catalogue :
- Définissez une location
tenancy-name1
pour identifier l'OCID Object Storage, puis approuvez le groupe dynamiquedynamic-group-name1
pour gérerobject-family
dans<tenancy-name1>
.Define tenancy <tenancy-name1> as <object-storage-tenancy-OCID> Endorse dynamic-group <dynamic-group-name1> to manage object-family in tenancy <tenancy-name1>
Dans la location Object Storage :
- Définissez une location
tenancy-name2
avec l'OCID de location de catalogue. Définissezdynamic-group-name2
avec l'OCIDdynamic-group-name1
créé dans la location de catalogue, puis admettezdynamic-group-name2
pour gérerobject-family
dans la location Object Storage.Define tenancy <tenancy-name2> as <catalog-tenancy-OCID> Define dynamic-group <dynamic-group-name2> as <dynamic-group-name1-OCID> Admit dynamic-group <dynamic-group-name2> of tenancy <tenancy-name2> to manage object-family in tenancy
Autoriser l'accès à des buckets spécifiques
Accès à des buckets spécifiques tels que BucketA
ou BucketB
dans un compartiment.
Dans la location de catalogue :
Define tenancy <tenancy-name2> as <object-storage-tenancy-OCID>
Endorse dynamic group <dynamic-group-name1> to manage object-family in compartment <compartmentA> where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
Dans la location Object Storage :
Define tenancy <tenancy-name1> as <catalog-tenancy-OCID>
Define dynamic-group <dynamic-group-name2> as <dynamic-group-name1-OCID>
Admit dynamic group <dynamic-group-name2> of tenancy <tenancy-name1> to manage object-family in compartment compartmentA where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
De même, vous pouvez également accéder aux buckets d'un compartiment à l'aide de l'ID de compartiment.
Autoriser l'accès à un compartiment spécifique
Accédez à n'importe quel bucket d'un compartiment spécifique à l'aide du nom du compartiment.
Define tenancy <tenancy-name2> as <object-storage-tenancy-OCID>
Endorse dynamic group <dynamic-group-name1> to manage object-family in compartment <compartment-name>
Define tenancy <tenancy-name1> as <catalog-tenancy-OCID>
Define dynamic group <dynamic-group-name2> as <dynamic-group-name1-OCID>
admit dynamic group <dynamic-group-name2> of tenancy <tenancy-name1> to manage object-family in compartment <compartment-name>
Vous pouvez accéder à n'importe quel bucket d'un compartiment spécifique à l'aide de l'OCID de compartiment.
Pour que les utilisateurs du catalogue de données puissent configurer des réseaux privés, vous devez créer des stratégies.
Créez cette stratégie pour autoriser un groupe à effectuer toutes les actions sur les adresses privées du catalogue de données.
allow group <group-name> to manage data-catalog-private-endpoints in tenancy
Créez cette stratégie pour autoriser un groupe à effectuer toutes les opérations liées aux fonctions de réseau dans la location.
allow group <group-name> to manage virtual-network-family in tenancy
Si vous gérez la ressource d'adresses privées du catalogue de données, nous vous recommandons également de disposer de l'autorisation de gestion des demandes de travail. Vous pouvez ainsi visualiser les journaux et les messages d'erreur rencontrés lors de l'utilisation des adresses privées.
allow group <group-name> to manage work-requests in tenancy
Créez cette stratégie pour autoriser un groupe à effectuer toutes les actions sur les adresses privées du catalogue de données, à l'exception de leur suppression.
allow group <group-name> to manage data-catalog-private-endpoints in tenancy
where request.permission!='CATALOG_PRIVATE_ENDPOINT_DELETE'
Vous pouvez créer des stratégies pour définir le mode d'accès des utilisateurs aux ressources du glossaire. Reportez-vous aux verbes de mise en correspondance des droits d'accès du glossaire afin de choisir le verbe qui répond à nos exigences d'accès. Par exemple, le verbe INSPECT
permet aux utilisateurs d'afficher la liste des glossaires disponibles et le verbe READ
leur permet d'afficher les détails du glossaire ainsi que d'exporter ce dernier.
Créez cette stratégie pour autoriser un groupe à effectuer toutes les opérations sur tous les glossaires, les catégories et les termes disponibles dans la location :
allow group <group-name> to manage data-catalog-glossaries in tenancy
Créez cette stratégie pour autoriser un groupe à créer, mettre à jour et supprimer des termes, des catégories et des relations dans un glossaire donné :
allow group <group-name> to use data-catalog-glossaries in tenancy where target.glossary.key = '<glossary-key>'
Vous pouvez copier la clé du glossaire requis à partir de la page des détails de ce glossaire dans l'interface utilisateur.
Créez cette stratégie pour autoriser un groupe à afficher les glossaires et leurs détails dans un compartiment donné :
allow group <group-name> to read data-catalog-glossaries in compartment <x>
Créez cette stratégie pour autoriser un groupe à afficher la liste de tous les glossaires disponibles dans un catalogue de données spécifique de la location :
allow group <group-name> to inspect data-catalog-glossaries in tenancy where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
Vous pouvez créer des stratégies pour définir le mode d'accès des utilisateurs aux ressources de la ressource de données. Reportez-vous aux verbes de mise en correspondance des droits d'accès de la ressource de données afin de choisir celui qui répond à nos exigences d'accès. Par exemple, le verbe INSPECT
permet aux utilisateurs d'afficher la liste des ressources de données disponibles et le verbe READ
leur permet d'afficher les détails des ressources de données.
Créez cette stratégie pour autoriser un groupe à effectuer toutes les opérations sur toutes les ressources de données disponibles dans une location :
allow group <group-name> to manage data-catalog-data-assets in tenancy
Créez cette stratégie pour autoriser un groupe à utiliser une ressource de données spécifique dans une location :
allow group <group-name> to use data-catalog-data-assets in tenancy where target.data-asset.key='<data-asset-key>'
Vous pouvez copier la clé de la ressource de données requise à partir de la page des détails de cette ressource de données dans l'interface utilisateur.
Créez cette stratégie pour autoriser un groupe à afficher les détails (connexions, fichiers, entités de données, attributs, etc.) de toutes les ressources de données disponibles dans un compartiment donné :
allow group <group-name> to read data-catalog-data-assets in compartment <x>
Créez cette stratégie pour autoriser un groupe à afficher la liste de toutes les ressources de données disponibles d'un catalogue de données spécifique dans un compartiment donné :
allow group <group-name> to inspect data-catalog-data-assets in compartment <x> where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
Pour plus d'informations, reportez-vous à Stratégies IAM requises.
Empêcher les utilisateurs de supprimer les instances de catalogue de données
Créez cette stratégie pour permettre au groupe DataCatalogUsers
d'effectuer toutes les actions sur les catalogues de données, sauf l'action de suppression.
allow group DataCatalogUsers to manage data-catalog-family in tenancy
where request.permission!='CATALOG_DELETE'