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
プラグインをデプロイする
ソース コントロール管理
ソース コントロール リポジトリを構成する
Namespace からパイプラインを同期する
リネージ
リネージを表示
ログ
ログを表示

* プリンシパルには、インスタンス管理者の 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
Namespace を取得する datafusion.namespaces.get
Namespace メタデータ(プロパティなど)を更新する
  • datafusion.namespaces.get
  • datafusion.namespaces.update
名前空間を削除する(回復不能リセットが有効になっている場合のみ)
  • datafusion.namespaces.get
  • datafusion.namespaces.delete
名前空間の権限を表示する datafusion.namespaces.getIamPolicy
Namespace に対する権限を付与する datafusion.namespaces.setIamPolicy
Namespace 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 について学習する。