リソース・プリンシパル・ポリシー

たとえば、Sparkストリーミングでリソース・プリンシパルを使用する場合は、データ・フローに特定のポリシーが必要です。

ポリシー・ビルダーのデータ・フロー・リソース・プリンシパル・テンプレートの使用

ポリシー・ビルダーのデータ・フロー・テンプレートを使用して、リソース・プリンシパルのポリシーを設定します。

データ・フロー・リソースにオブジェクト・ストレージの使用を許可
動的グループが、指定したオブジェクト・ストレージの場所にオブジェクトを作成して使用できるようにします。テナンシにポリシーを作成します。
データ・フロー・リソースによるOracle Streamingからの消費を許可
動的グループがOracle Streamingから消費できるようにします。テナンシにポリシーを作成します。
データ・フロー・リソースによるOracle Streamingへの書込みを許可
動的グループがOracle Streamingへの生成を行えるようにします。テナンシにポリシーを作成します。

動的グループの使用

動的グループを使用すると、記述するポリシーをより簡潔にして、同じグループを再利用できます。また、タグを参照し、グループを特定のデータ・フロー・アプリケーションに制限することができます。

  1. すべてのデータ・フローの実行を許可するコンパートメントを指定します:
    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>'}
  2. データ・フロー・リソース・プリンシパルが、ストリーミング・ストリーム・プールおよびオブジェクト・ストレージ・バケットから消費できるようにします:
    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>'}

オールインワン・ポリシーの使用

特定のコンパートメントのすべてのデータ・フロー実行は、特定のストリーム・プールおよびオブジェクト・ストレージ・バケットから消費します。

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>'}