このページでは、ロールベース アクセス制御(RBAC)が有効になっている Cloud Data Fusion インスタンスで使用されるロールと権限について説明します。
名前空間レベル以下でアクセス権をきめ細かく適用するには、以下のデータプレーンのリソースと権限を RBAC と組み合わせて使用します。
リソース階層
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 からパイプラインを同期する | ||||||
リネージ | ||||||
リネージを表示 | ||||||
ログ | ||||||
ログを表示 |
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.getIamPolicy |
Namespace に対する権限を付与する | datafusion.namespaces.setIamPolicy |
Namespace SCM 構成からパイプラインを pull する |
|
名前空間の SCM リポジトリにパイプラインを push する |
|
名前空間 SCM 構成を取得する | datafusion.namespaces.get |
名前空間 SCM 構成を更新する | datafusion.namespaces.updateRepositoryMetadata |
名前空間のサービス アカウントを設定する |
|
名前空間のサービス アカウントの設定を解除する |
|
名前空間のサービス アカウント認証情報をプロビジョニングする | datafusion.namespaces.provisionCredential |
パイプラインのドラフトを表示する | datafusion.namespaces.get |
パイプラインのドラフトを作成 / 削除する |
|
コンピューティング プロファイルの一覧表示 | datafusion.profiles.list |
コンピューティング プロファイルの作成 | datafusion.profiles.create |
コンピューティング プロファイルを表示する | datafusion.profiles.get |
コンピューティング プロファイルを編集する | datafusion.profiles.update |
コンピューティング プロファイルを削除する | datafusion.profiles.delete |
接続を作成 |
|
接続を表示 |
|
接続を編集 |
|
接続を削除 |
|
接続仕様の参照、サンプルの取得、表示 |
|
パイプラインの一覧表示 | datafusion.namespaces.get |
Create Pipeline |
|
パイプラインを表示 |
|
パイプラインを編集 |
|
パイプライン プロパティを編集 |
|
パイプラインの削除 |
|
パイプラインをプレビュー | datafusion.pipelines.preview |
パイプラインの実行 | datafusion.pipelines.execute |
スケジュールを作成 | datafusion.pipelines.execute |
スケジュールを見る |
|
スケジュールを変更 | datafusion.pipelines.execute |
セキュリティ キーを一覧表示する |
|
セキュリティ キーを作成 |
|
セキュリティ キーを表示 |
|
セキュリティ キーを削除 |
|
アーティファクトを一覧表示する* |
|
アーティファクトを作成 |
|
アーティファクトを取得 |
|
アーティファクトを削除 |
|
環境設定、タグ、メタデータ | 環境設定、タグ、メタデータは、特定のリソース(datafusion.RESOURCE.update )のリソースレベルで設定されます。 |
データセットの権限(非推奨) | datafusion.namespaces.update |
次のステップ
- Cloud Data Fusion の RBAC について学習する。