Políticas de pipeline

Los pipelines de Data Science necesitan políticas de IAM específicas para funcionar correctamente.

Estas políticas garantizan el acceso a los servicios esenciales de OCI, como Networking, Logging, Object Storage, etc. Este documento proporciona una guía completa y concisa para configurar estas políticas.

Políticas

Acceso de ejecución de pipeline a servicios de OCI
Permitir que las ejecuciones de pipeline accedan a servicios de OCI como Logging, Networking y 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' }
Acceso a imágenes de contenedor en OCIR
Otorgue permisos para que las ejecuciones de pipeline lean imágenes de contenedor en OCIR:
allow any-user to read repos in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Red personalizada
Permitir a Data Science utilizar redes personalizadas:
allow service datascience to use virtual-network-family in compartment <COMPARMENT_NAME>
Uso de cubos de Object Storage como montajes de almacenamiento
Active las ejecuciones de pipeline para acceder a los cubos de Object Storage:
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Uso de File Storage y Storage Mounts
Proporcione acceso al almacenamiento de archivos:
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' }
Integración de flujos de datos y pipelines
Si las aplicaciones de Data Flow se utilizan en pipelines, se necesitan políticas que otorguen privilegios de ejecución de pipeline para acceder a Data Flow, de la siguiente forma:
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' }
Asegúrese de que a los usuarios que trabajan con pipelines se les otorgan los privilegios adecuados. Se necesitan las siguientes políticas para establecer la integración entre Data Flow y Data Science en nombre del usuario. Además, en nombre del usuario, el servicio debe inspeccionar los compartimentos para gestionar los recursos allí y gestionar las reglas de eventos para establecer la comunicación entre los servicios. La siguiente política asume que los usuarios pertenecen al grupo 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>
Acceso general a los recursos de Data Science
Proporcione acceso completo a los recursos de Data Science:
allow any-user to manage data-science-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Estas sentencias no utilizan grupos dinámicos, pero es fácil crear políticas iguales mediante grupos dinámicos. Por ejemplo, en lugar de escribir:
allow any-user to read object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type='datasciencepipelinerun' }
Puedes escribir:
allow dynamic-group sample_group to read object-family in compartment <COMPARTMENT_NAME>
donde sample_group se define como:
ALL { resource.type = 'datasciencepipelinerun' }