Políticas de Pipeline

Os Pipelines do Serviço Data Science exigem políticas específicas do serviço IAM para funcionar corretamente.

Essas políticas garantem o acesso a serviços essenciais do OCI, como Rede, Log, Armazenamento de Objetos e muito mais. Este documento fornece um guia abrangente e conciso para configurar essas políticas,

Políticas

Acesso de Execução do Pipeline aos Serviços do OCI
Permitir que execuções de pipeline acessem serviços do OCI, como Logging, Networking e 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' }
Acessando Imagens de Contêiner no OCIR
Conceda permissões para execuções de pipeline para ler imagens de contêiner no OCIR:
allow any-user to read repos in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Rede Personalizada
Permitir que o Data Science use a rede personalizada:
allow service datascience to use virtual-network-family in compartment <COMPARMENT_NAME>
Usando Buckets do Serviço Object Storage como Montagens do Serviço Storage
Ative execuções de pipeline para acessar buckets do Object Storage:
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Usando Montagens de Armazenamento e Armazenamento de Arquivos
Fornecer acesso ao armazenamento de arquivos:
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' }
Integração de Fluxo de Dados e Pipelines
Se os aplicativos do serviço Data Flow forem usados em pipelines, serão necessárias políticas que concedam privilégios de execução de pipeline para acessar o serviço Data Flow, da seguinte 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' }
Certifique-se de que os usuários que trabalham com pipelines recebam os privilégios apropriados. As políticas a seguir são necessárias para estabelecer a integração entre o serviço Data Flow e o Data Science em nome do usuário. Também em nome do usuário, o serviço precisa inspecionar compartimentos para gerenciar recursos lá e gerenciar regras de evento para estabelecer comunicação entre serviços. A política a seguir pressupõe que os usuários pertençam ao 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>
Acesso Geral aos Recursos do Serviço Data Science
Fornecer acesso abrangente aos recursos do Data Science:
allow any-user to manage data-science-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Essas instruções não usam grupos dinâmicos, mas é fácil criar políticas iguais usando grupos dinâmicos. Por exemplo, em vez de escrever:
allow any-user to read object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type='datasciencepipelinerun' }
você pode escrever:
allow dynamic-group sample_group to read object-family in compartment <COMPARTMENT_NAME>
em que sample_group é definido como:
ALL { resource.type = 'datasciencepipelinerun' }