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: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
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
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:wobei
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>
sample_group
definiert ist als:ALL { resource.type = 'datasciencepipelinerun' }