Pipeline-Policys

Für Data Science-Pipelines müssen bestimmte IAM-Policys ordnungsgemäß funktionieren.

Diese Policys stellen den Zugriff auf wichtige OCI-Services wie Networking, Logging, Object Storage und mehr sicher. Dieses Dokument enthält einen umfassenden und kurzen Leitfaden zur Einrichtung dieser Richtlinien.

Policys

Pipelineausführungszugriff auf OCI-Services
Zugriff auf OCI-Services wie Logging, Networking und Object Storage durch Pipelineausführungen zulassen:
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' }
Auf Containerimages in OCIR zugreifen
Berechtigungen für Pipelineausführungen zum Lesen von Containerimages in OCIR erteilen:
allow any-user to read repos in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Benutzerdefiniertes Networking
Verwenden von benutzerdefiniertem Networking durch Data Science zulassen:
allow service datascience to use virtual-network-family in compartment <COMPARMENT_NAME>
Object Storage-Buckets als Speicher-Mounts verwenden
Aktivieren Sie Pipelineausführungen für den Zugriff auf Object Storage-Buckets:
allow any-user to use object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
File Storage und Storage Mounts verwenden
Zugriff auf Dateispeicher gewähren:
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' }
Integration von Datenfluss und Pipelines
Wenn Data Flow-Anwendungen in Pipelines verwendet werden, sind Policys, die der Pipeline-Ausführung Berechtigungen für den Zugriff auf Data Flow erteilen, wie folgt erforderlich:
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' }
Stellen Sie sicher, dass Benutzern, die mit Pipelines arbeiten, die entsprechenden Berechtigungen erteilt werden. Die folgenden Policys sind erforderlich, um die Integration zwischen Data Flow und Data Science im Namen des Benutzers einzurichten. Auch im Namen des Benutzers muss der Service Compartments prüfen, um dort Ressourcen zu verwalten, und Ereignisregeln verwalten, um die Kommunikation zwischen Services herzustellen. Bei der folgenden Policy wird davon ausgegangen, dass die Benutzer zur Gruppe datascienceusers gehören:
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>
Allgemeiner Zugriff auf Data Science-Ressourcen
Umfassender Zugriff auf Data Science-Ressourcen:
allow any-user to manage data-science-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type = 'datasciencepipelinerun' }
Diese Anweisungen verwenden keine dynamischen Gruppen, aber es ist einfach, gleiche Policys mit dynamischen Gruppen zu erstellen. Beispiel: Statt zu schreiben:
allow any-user to read object-family in compartment <COMPARTMENT_NAME> where ALL { request.principal.type='datasciencepipelinerun' }
Sie können schreiben:
allow dynamic-group sample_group to read object-family in compartment <COMPARTMENT_NAME>
wobei sample_group definiert ist als:
ALL { resource.type = 'datasciencepipelinerun' }