Stratégies avec principal de ressource
Si vous utilisez un principal de ressource, par exemple avec Spark Streaming, des stratégies spécifiques sont nécessaires dans Data Flow.
Vous pouvez ajouter ces stratégies pour le principal de ressource de trois façons :
Utilisation des modèles de principal de ressource Data Flow du générateur de stratégies
Utilisez les modèles Data Flow du générateur de stratégies afin de définir vos stratégies pour les principaux de ressource.
- Permet à la ressource Data Flow d'utiliser Object Storage
- Autorisez un groupe dynamique à créer et à utiliser des objets à un emplacement Object Storage indiqué. Créez la stratégie dans la location.
- Autoriser une ressource Data Flow à consommer des ressources d'Oracle Streaming
- Autorisez un groupe dynamique à consommer des ressources d'Oracle Streaming. Créez la stratégie dans la location.
- Permet à la ressource Data Flow d'écrire dans Oracle Streaming
- Autorisez un groupe dynamique à générer des objets vers Oracle Streaming. Créez la stratégie dans la location.
Utilisation d'un groupe dynamique
Les groupes dynamiques permettent d'écrire des stratégies plus concises et de réutiliser le même groupe. Vous pouvez également faire référence à des balises et limiter un groupe à une application Data Flow spécifique.
- Indiquez le compartiment à partir duquel autoriser toutes les exécutions de Data Flow :(Facultatif) Vous pouvez appliquer une limite à une application Data Flow spécifique dans un compartiment :
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>'}
- Autorisez le principal de ressource Data Flow à consommer les ressources d'un pool de flux de données Streaming et d'un bucket Object Storage :
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>'}
Utilisation d'une stratégie tout-en-un
Toutes les exécutions Data Flow d'un compartiment spécifique consomment les ressources d'un pool de flux de données spécifique et d'un bucket Object Storage.
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>'}