Stratégies de pipeline
Les pipelines Data Science ont besoin de stratégies IAM spécifiques pour fonctionner correctement.
Ces stratégies garantissent l'accès aux services OCI essentiels tels que Networking, Logging, Object Storage, etc. Ce document fournit un guide complet et concis pour la mise en place de ces politiques,
Stratégies
- Accès à l'exécution de pipeline aux services OCI
- Autorisez les exécutions de pipeline à accéder aux services OCI tels que Logging, Networking et Object Storage :
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
- Accordez des droits d'accès aux exécutions de pipeline pour lire les images de conteneur dans OCIR :
allow any-user to read repos in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Réseaux personnalisés
- Autoriser Data Science à utiliser des fonctions de réseau personnalisées :
allow service datascience to use virtual-network-family in compartment <COMPARMENT_NAME>
- Utilisation de buckets Object Storage en tant que montages de stockage
- Activez les exécutions de pipeline pour accéder aux buckets Object Storage :
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
- Utilisation de montages de stockage et de stockage de fichiers
- 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 de Data Flow et de pipelines
- Si des applications Data Flow sont utilisées dans des pipelines, les stratégies qui accordent des privilèges d'exécution de pipeline pour accéder à Data Flow sont requises, comme suit :Assurez-vous que les utilisateurs travaillant avec les pipelines disposent des privilèges appropriés. Les stratégies suivantes sont nécessaires pour établir l'intégration entre Data Flow et Data Science pour le compte de l'utilisateur. De même, pour le compte de l'utilisateur, le service doit inspecter les compartiments afin de gérer les ressources et les règles d'événement afin d'établir la communication entre les services. La stratégie 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 Data Science
- Fournir un accès complet aux ressources Data Science :
allow any-user to manage data-science-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Ces instructions n'utilisent pas de groupes dynamiques, mais il est facile de créer des stratégies é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 suit :ALL { resource.type = 'datasciencepipelinerun' }