RBAC のロールと権限

このページでは、ロールベース アクセス制御(RBAC)が有効になっている Cloud Data Fusion インスタンスで使用されるロールと権限について説明します。

名前空間レベル以下でアクセス権をきめ細かく適用するには、以下のデータプレーンのリソースと権限を RBAC と組み合わせて使用します。

リソース階層

Cloud Data Fusion リソースには次のリソース階層があります。

Cloud Data Fusion プロジェクトのリソース階層

この図は、Google Cloud プロジェクト、ロケーション、Cloud Data Fusion インスタンス、名前空間といったリソース階層を降順(範囲の広いものから狭いものへ)で示しています。名前空間の下には順不同で、接続、セキュリティ キー、パイプライン、アーティファクト(プラグイン、ドライバ、アプリケーションなど)、コンピューティング プロファイルがあります。

名前空間、接続、セキュリティ キー、パイプライン、アーティファクト、コンピューティング プロファイルなどのリソースは、REST API や Cloud Data Fusion Studio で制御する Cloud Data Fusion データプレーンのリソースです。

RBAC の事前定義ロール

Cloud Data Fusion RBAC には、使用できるいくつかの事前定義ロールが含まれています。

インスタンス アクセスのロール(datafusion.accessor
プリンシパルに Cloud Data Fusion インスタンスへのアクセス権を付与しますが、インスタンス内のリソースには付与しません。このロールを他の名前空間固有のロールと組み合わせて使用すると、名前空間へのきめ細かなアクセスを行うことができます。
閲覧者のロール(datafusion.viewer
名前空間のプリンシパルに、パイプラインの表示のためのアクセス権を付与しますが、パイプラインの作成や実行のためのアクセス権を付与しません。
オペレーターのロール(datafusion.operator
名前空間のプリンシパルに、パイプラインへのアクセスと実行、コンピューティング プロファイルの変更、コンピューティング プロファイルの作成、アーティファクトのアップロードを行うためのアクセス権を付与します。パイプラインのプレビューを除き、デベロッパーと同じアクションを実行できます。
デベロッパーのロール(datafusion.developer
名前空間のプリンシパルに、名前空間内の制限付きリソース(パイプラインなど)を作成および変更するためのアクセス権を付与します。
編集者のロール(datafusion.editor
Cloud Data Fusion インスタンス内の名前空間の下にあるすべての Cloud Data Fusion リソースに対する完全アクセス権をプリンシパルに付与します。このロールは、プリンシパルに対するインスタンス アクセサー ロールに加えて付与する必要があります。このロールを使用して、プリンシパルは名前空間内にリソースを作成、削除、変更できます。
インスタンス管理者のロール(datafusion.admin
Cloud Data Fusion インスタンス内のすべてのリソースへのアクセス権を付与します。IAM を介して割り当てられます。RBAC を介して名前空間レベルで割り当てられません。
オペレーション datafusion.accessor datafusion.viewer datafusion.operator datafusion.developer datafusion.editor datafusion.admin
インスタンス
アクセス インスタンス
名前空間
名前空間を作成 *
明示的なアクセス権が付与された名前空間にアクセス
明示的なアクセス権が付与されていない名前空間にアクセス *
名前空間の編集
名前空間の削除
名前空間のサービス アカウント
サービス アカウントの追加
サービス アカウントの編集
サービス アカウントの削除
サービス アカウントの使用
RBAC
名前空間内の他のプリンシパルに対する権限の付与または取り消し *
スケジュール
スケジュールを作成
スケジュールを見る
スケジュールを変更
Compute profiles
コンピューティング プロファイルを作成
コンピューティング プロファイルを見る
コンピューティング プロファイルを編集
コンピューティング プロファイルを削除
接続
接続を作成する
接続を表示する
結合を編集する
接続を削除する
接続を使用する
パイプライン
パイプラインの作成
パイプラインの表示
パイプラインの編集
パイプラインの削除
パイプラインのプレビュー
パイプラインをデプロイする
パイプラインを実行する
セキュリティ キー
セキュリティ キーを作成する
セキュリティ キーを表示する
セキュリティ キーを削除する
タグ
タグを作成する
タグを表示する
タグを削除
Cloud Data Fusion Hub
プラグインをデプロイする
ソース コントロール管理
ソース管理リポジトリを構成する
名前空間からパイプラインを同期する
リネージ
リネージを表示
ログ
ログの表示

* プリンシパルには、インスタンス管理者の RBAC ロールではなく、Data Fusion 管理者の IAM ロールが必要です。

Cloud Data Fusion の事前定義ロールに含まれる権限の完全なリストについては、Cloud Data Fusion の事前定義ロールをご覧ください。

RBAC のカスタムロール

ユースケースの中には、Cloud Data Fusion の事前定義ロールでは実現できないものもあります。このような場合は、カスタムロールを作成します。

次の例は、RBAC のカスタムロールを作成する方法を示しています。

  • 名前空間内のセキュリティ キーに対するアクセス権のみを付与するカスタムロールを作成するには、datafusion.namespaces.get 権限と datafusion.secureKeys.* 権限を持つカスタムロールを作成します。

  • セキュリティ キーへの読み取り専用アクセス権を付与するカスタムロールを作成するには、datafusion.namespaces.get 権限、datafusion.secureKeys.getSecret 権限、datafusion.secureKeys.list 権限を持つカスタムロールを作成します。

一般的なアクションに対する権限

事前定義された 1 つの権限では、対応するアクションを実行するには不十分な場合があります。たとえば、名前空間のプロパティを更新する場合は、datafusion.namespaces.get 権限も必要になることがあります。次の表に、Cloud Data Fusion インスタンス内で実行される一般的なアクションとそれに必要な IAM 権限を示します。

アクション 必要な権限
インスタンスにアクセスする datafusion.instances.get
名前空間を作成する datafusion.namespaces.create
名前空間を取得する datafusion.namespaces.get
名前空間メタデータ(プロパティなど)を更新する
  • datafusion.namespaces.get
  • datafusion.namespaces.update
名前空間を削除する(回復不能リセットが有効になっている場合のみ)
  • datafusion.namespaces.get
  • datafusion.namespaces.delete
名前空間の権限を表示する datafusion.namespaces.getIamPolicy
名前空間に対する権限を付与する datafusion.namespaces.setIamPolicy
名前空間 SCM 構成からパイプラインを pull する
  • datafusion.namespaces.get
  • datafusion.namespaces.readRepository
  • datafusion.pipelines.create
名前空間の SCM リポジトリにパイプラインを push する
  • datafusion.namespaces.get
  • datafusion.namespaces.writeRepository
名前空間 SCM 構成を取得する datafusion.namespaces.get
名前空間 SCM 構成を更新する datafusion.namespaces.updateRepositoryMetadata
名前空間のサービス アカウントを設定する
  • datafusion.namespaces.get
  • datafusion.namespaces.setServiceAccount
名前空間のサービス アカウントの設定を解除する
  • datafusion.namespaces.get
  • datafusion.namespaces.unsetServiceAccount
名前空間のサービス アカウント認証情報をプロビジョニングする datafusion.namespaces.provisionCredential
パイプラインのドラフトを表示する datafusion.namespaces.get
パイプラインのドラフトを作成 / 削除する
  • datafusion.namespaces.get
  • datafusion.namespaces.update
コンピューティング プロファイルの一覧表示 datafusion.profiles.list
コンピューティング プロファイルの作成 datafusion.profiles.create
コンピューティング プロファイルの表示 datafusion.profiles.get
コンピューティング プロファイルの編集 datafusion.profiles.update
コンピューティング プロファイルの削除 datafusion.profiles.delete
接続を作成
  • datafusion.namespaces.get
  • datafusion.pipelineConnections.create
接続を表示
  • datafusion.namespaces.get
  • datafusion.pipelineConnections.get
接続を編集
  • datafusion.namespaces.get
  • datafusion.pipelineConnections.update
接続を削除
  • datafusion.namespaces.get
  • datafusion.pipelineConnections.delete
接続仕様を参照、サンプル、または表示
  • datafusion.namespaces.get
  • datafusion.pipelineConnections.use
パイプラインの一覧表示 datafusion.namespaces.get
Create Pipeline
  • datafusion.namespaces.get
  • datafusion.pipelines.create
パイプラインを表示
  • datafusion.namespaces.get
  • datafusion.pipelines.get
パイプラインを編集
  • datafusion.namespaces.get
  • datafusion.pipelines.create
パイプライン プロパティを編集
  • datafusion.namespaces.get
  • datafusion.pipelines.update
パイプラインの削除
  • datafusion.namespaces.get
  • datafusion.pipelines.delete
パイプラインをプレビュー datafusion.pipelines.preview
パイプラインの実行 datafusion.pipelines.execute
スケジュールを作成 datafusion.pipelines.execute
スケジュールを見る
  • datafusion.namespaces.get
  • datafusion.pipelines.get
スケジュールを変更 datafusion.pipelines.execute
セキュリティ キーの一覧表示
  • datafusion.namespaces.get
  • datafusion.secureKeys.list
セキュリティ キーを作成
  • datafusion.namespaces.get
  • datafusion.secureKeys.update
セキュリティ キーを表示
  • datafusion.namespaces.get
  • datafusion.secureKeys.getSecret
セキュリティ キーを削除
  • datafusion.namespaces.get
  • datafusion.secureKeys.delete
アーティファクトの一覧表示*
  • datafusion.namespaces.get
  • datafusion.artifacts.list
アーティファクトを作成
  • datafusion.namespaces.get
  • datafusion.artifacts.create
  • datafusion.artifacts.update
アーティファクトを取得
  • datafusion.namespaces.get
  • datafusion.artifacts.get
アーティファクトを削除
  • datafusion.namespaces.get
  • datafusion.artifacts.delete
環境設定、タグ、メタデータ 環境設定、タグ、メタデータは、特定のリソース(datafusion.RESOURCE.update)のリソースレベルで設定されます。
データセットの権限(非推奨) datafusion.namespaces.update

* プラグインやドライバなどのアーティファクトは、パイプライン開発のために Cloud Data Fusion にアップロードするアイテムです。

次のステップ

  • Cloud Data Fusion の RBAC について学習する。