Resource Principal Policys
Wenn Sie einen Resource Principal verwenden, z.B. für Spark-Streaming, benötigen Sie bestimmte Policys in Data Flow.
Sie können diese Policys für den Resource Principal auf drei Arten hinzufügen:
Data Flow-Resource- Principal-Vorlagen von Policy Builder verwenden
Mit den Data Flow-Vorlagen im Policy Builder können Sie Ihre Policys für Resource Principals festlegen.
- Verwenden von Object Storage durch Data Flow-Ressource zulassen
- Lassen Sie das Erstellen und Verwenden von Objekten in einem angegebenen Object Storage-Speicherort durch eine dynamische Gruppe zu. Erstellen Sie die Policy im Mandanten.
- Konsumieren von Oracle Streaming durch die Data Flow-Ressource zulassen
- Lassen Sie das Konsumieren von Oracle Streaming durch eine dynamische Gruppe zu. Erstellen Sie die Policy im Mandanten.
- Schreiben in Oracle Streaming durch Data Flow-Ressourcen zulassen
- Lassen Sie das Produzieren in Oracle Streaming durch eine dynamische Gruppe zu. Erstellen Sie die Policy im Mandanten.
Dynamische Gruppe verwenden
Mit dynamischen Gruppen können Sie präzisere Policys schreiben und dieselbe Gruppe wiederverwenden. Sie können auch Tags referenzieren und eine Gruppe auf eine bestimmte Datenflussanwendung beschränken.
- Geben Sie das Compartment an, in dem Sie alle Data Flow-Ausführungen zulassen möchten:(Optional) Sie können die Anwendung auf eine bestimmte Datenflussanwendung in einem Compartment beschränken:
ALL {resource.type='dataflowrun', resource.compartment.id='<compartment_id>'}
ALL {resource.type='dataflowrun', resource.compartment.id='<compartment_id>', tag.oci-dataflow.application-id.value='<application_id>'}
- Lassen Sie zu, dass der Data Flow-Resource-Principal aus einem Streaming-Streampool und einem Object Storage-Bucket konsumiert:
ALLOW DYNAMIC-GROUP DF-IN-ROOT TO {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME} IN TENANCY WHERE ANY {target.streampool.id = '<streampool_id>'} ALLOW DYNAMIC-GROUP DF-IN-ROOT TO MANAGE OBJECTS IN TENANCY WHERE ANY {target.bucket.name = '<bucket_name>', target.bucket.name = '<bucket_name>'}
All-in-One-Policy verwenden
Alle Datenflussausführungen in einem bestimmten Compartment konsumieren aus einem bestimmten Streampool und einem Object Storage-Bucket.
ALLOW ANY-USER TO {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME} IN TENANCY WHERE ALL
{request.principal.type='dataflowrun', request.resource.compartment.id = '<compartment_id>', target.streampool.id = '<streampool_id>'}
ALLOW ANY-USER TO MANAGE OBJECTS IN TENANCY WHERE ALL
{request.principal.type='dataflowrun', request.resource.compartment.id = '<compartment_id>', target.bucket.name = '<bucket_name>'}