Identity and Access Managementポリシーの設定
データ・フローでは、Sparkアプリケーションを管理および実行するために、Identity and Access Management (IAM)に共通ポリシーを設定する必要があります。
IAMのポリシー・テンプレートを使用するか、ポリシーを手動で作成できます。IAMポリシーの仕組みの詳細は、アイデンティティ・ドメインのないIdentity and Access Managementのドキュメントまたはアイデンティティ・ドメインを使用したIdentity and Access Managementのドキュメントを参照してください。次の4つのポリシーを作成します:
- dataflow-service-level-policy
- dataflow-admins-policy
- dataflow-data-engineers-policy
- dataflow-sql-users-policy
データ・フロー・ポリシー・テンプレート
データ・フローには4つの共通ポリシー・テンプレートがあります。これらは、ポリシーを作成する必要がある順序でリストされます。
- データ・フロー管理者がすべてのアプリケーションと実行を管理
- サービスで任意のアクションを実行できるサービスの管理者のようなユーザー(またはスーパーユーザー)向けです。これにはグループに割り当てられたポリシーに従って、他のユーザーが所有するアプリケーションやテナンシ内のユーザーによって開始された実行の管理が含まれます
- データ・フロー・ユーザーが自分のアプリケーションと実行を管理。
- 自身のアプリケーションを作成および削除する権限のみを持っている他のすべてのユーザー。ただし、テナンシ内のアプリケーションは実行でき、他のユーザーが所有するアプリケーションの削除や他のユーザーが開始した実行の取消しなどの管理権限は持ちません。
- ユーザーまたはグループのかわりに、データ・フロー・サービスが、テナンシ内のオブジェクトに対してアクションを実行することを許可。
- データ・フロー・サービスでは、テナンシ内のオブジェクトでユーザーまたはグループのかわりにアクションを実行する権限が必要です。
- (オプション)データ・フロー・ユーザーにプライベート・エンドポイントの作成、編集または変更を許可。
- このポリシー・テンプレートは、virtual-network-familyの使用、より限定的なリソースへのアクセス、特定の操作へのアクセス、およびネットワーク構成の変更を許可します。
IAMポリシー・ビルダー・テンプレートを使用したポリシーの作成
IAMポリシー・ビルダー・テンプレートを使用して、データ・フローのポリシーを作成します。
IAMでアイデンティティ・ドメインを使用またはアイデンティティ・ドメインを使用してポリシー・ビルダーでテンプレートを使用し、次のステップに従ってコンソールを使用してポリシーを作成します:
- ナビゲーション・メニューで、「アイデンティティとセキュリティ」をクリックします。
- 「アイデンティティ」で、「ポリシー」をクリックします。
ポリシーの手動作成
IAMのテンプレートを使用してデータ・フローのポリシーを作成するかわりに、IAMのポリシー・ビルダーでポリシーを作成できます。
アイデンティティ・ドメインを使用またはアイデンティティ・ドメインを使用しないIAMのポリシーの管理のステップに従って、次のポリシーを手動で作成します:
データ・フロー・ユーザー・ポリシー
一般的に、データ・フロー・ユーザーを、権限が明確に分かれる2つのグループに分類します:
- サービスで任意のアクションを実行できるサービスの管理者のようなユーザー(またはスーパー・ユーザー)向け。これには、グループに割り当てられたポリシーに従って、他のユーザーが所有するアプリケーションおよびテナンシ内のユーザーによって開始された実行の管理が含まれます:
- アイデンティティ・サービス
dataflow-admin
にグループを作成し、このグループにユーザーを追加します。 dataflow-admin
というポリシーを作成し、次のステートメントを追加します:ALLOW GROUP dataflow-admin TO READ buckets IN <TENANCY>
ALLOW GROUP dataflow-admin TO MANAGE dataflow-family IN <TENANCY>
ALLOW GROUP dataflow-admin TO MANAGE objects IN <TENANCY> WHERE ALL {target.bucket.name='dataflow-logs', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
dataflow-logs
バケットへのアクセスが含まれます。 - アイデンティティ・サービス
- 2つ目のカテゴリは、自身のアプリケーションを作成および削除する権限のみを持っている他のすべてのユーザーが対象です。ただし、テナンシ内のアプリケーションは実行でき、他のユーザーが所有するアプリケーションの削除や他のユーザーが開始した実行の取消しなどの管理権限は持ちません。
- アイデンティティ・サービス
dataflow-users
にグループを作成し、このグループにユーザーを追加します。 dataflow-users
というポリシーを作成し、次のステートメントを追加します:ALLOW GROUP dataflow-users TO READ buckets IN <TENANCY>
ALLOW GROUP dataflow-users TO USE dataflow-family IN <TENANCY>
ALLOW GROUP dataflow-users TO MANAGE dataflow-family IN <TENANCY> WHERE ANY {request.user.id = target.user.id, request.permission = 'DATAFLOW_APPLICATION_CREATE', request.permission = 'DATAFLOW_RUN_CREATE'}
ALLOW GROUP dataflow-users TO MANAGE objects IN <TENANCY> WHERE ALL {target.bucket.name='dataflow-logs', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
- アイデンティティ・サービス
Oracle Cloud Infrastructure Loggingポリシー
これらのポリシーにより、データ・フローでOracle Cloud Infrastructure Loggingを使用できるようになります。
サービス・ログを有効にするには、ログ・グループに対する管理アクセス権とリソースへのアクセス権をユーザーに付与する必要があります。ログおよびログ・グループでは、
log-group
リソース・タイプが使用されますが、ログの内容を検索するには、log-content
リソース・タイプを使用する必要があります。次のポリシーを追加します:allow group dataflow-users to manage log-groups in compartment <compartment_name>
allow group dataflow-users to manage log-content in compartment <compartment_name>
Sparkストリーミングのポリシーの設定
データ・フローでSparkストリーミングを使用するには、共通ポリシー以上のものが必要です。
IAMポリシー・ビルダー・テンプレートまたは手動を使用して、共通ポリシーを作成しておく必要があります。
IAMポリシー・ビルダーを使用して、ソースへのアクセスを管理し、ストリーミング・アプリケーションが消費または生成先とするシンクを管理できます。たとえば、特定のストリーム・プールや、選択した場所にある特定のObject Storageバケットなどです。または、次のステップに従ってポリシーを手動で作成できます: