Politiques de pipeline
Les pipelines de science des données nécessitent des politiques IAM spécifiques pour fonctionner correctement.
Ces politiques garantissent l'accès aux services OCI essentiels tels que le réseau, la journalisation, le stockage d'objets et bien plus encore. Ce document fournit un guide complet et concis pour la mise en place de ces politiques,
Politiques
- Accès à l'exécution de pipeline aux services OCI
- Autoriser les exécutions de pipeline à accéder aux services OCI tels que la journalisation, le réseau et le stockage d'objets :
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' } allow any-user to use virtual-network-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' } allow any-user to use log-content in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Accès aux images de conteneur dans OCIR
- Accorder des autorisations pour les exécutions de pipeline afin de lire les images de conteneur dans OCIR :
allow any-user to read repos in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Service de réseau personnalisé
- Autoriser le service de science des données à utiliser un réseau personnalisé :
allow service datascience to use virtual-network-family in compartment <COMPARMENT_NAME>
- Utilisation de seaux de stockage d'objets comme montages de stockage
- Activer les exécutions de pipeline pour accéder aux seaux de stockage d'objets :
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Utilisation du stockage de fichiers et des montages de stockage
- Fournissez l'accès au stockage de fichiers :
allow any-user to use file-systems in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' } allow any-user to use mount-targets in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Intégration du service de flux de données et des pipelines
- Si des applications de flux de données sont utilisées dans des pipelines, les politiques qui accordent des privilèges d'exécution de pipeline pour accéder au service de flux de données sont requises, comme suit :Assurez-vous que les utilisateurs qui utilisent des pipelines disposent des privilèges appropriés. Les politiques suivantes sont nécessaires pour établir l'intégration entre le service de flux de données et le service de science des données pour le compte de l'utilisateur. Également au nom de l'utilisateur, le service doit inspecter les compartiments pour y gérer les ressources et gérer les règles d'événement afin d'établir la communication entre les services. La politique suivante suppose que les utilisateurs appartiennent au groupe
allow any-user to read object-family in compartment <YOUR_COMPARTMENT> where any { request.principal.type = 'datasciencepipelinerun' } allow any-user to manage dataflow-run in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' } allow any-user to read dataflow-application in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
datascienceusers
:allow group datascienceusers to inspect compartments in tenancy allow group datascienceusers to manage cloudevents-rules in tenancy where all {target.rule.type='managed', target.event.source in ('dataflow')} allow group datascienceusers to read dataflow-application in compartment <YOUR_COMPARTMENT>
- Accès général aux ressources du service de science des données
- Fournir un accès complet aux ressources du service de science des données :
allow any-user to manage data-science-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Ces énoncés n'utilisent pas de groupes dynamiques, mais il est facile de créer des politiques égales à l'aide de groupes dynamiques. Par exemple, au lieu d'écrire :où
allow any-user to read object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type='datasciencepipelinerun' }
Vous pouvez écrire :allow dynamic-group sample_group to read object-family in compartment <COMPARTMENT_NAME>
sample_group
est défini comme :ALL { resource.type = 'datasciencepipelinerun' }