Googleサービスアカウントをプロジェクト内の特定のBigQueryデータセットに制限することは可能ですか?

ファブドット

特定のプロジェクトのGCPUIを使用してサービスアカウントを設定しましたProject XProject Xには3つのデータセットがあります:

Dataset 1

Dataset 2

Dataset 3

私は役割を割り当てた場合BigQuery AdminProject X、この現在すべてのデータセット3によって継承されています。

現在、これらのデータセットはすべて、プロジェクトレベルでサービスアカウントに割り当てられた権限を継承しています。指定されたデータセットにのみアクセスできるようにサービスアカウントのアクセス許可を変更する方法はありますか?たとえば、またはへのアクセスを許可しますがDataset 1許可しませんDataset 2Dataset 3

このタイプの構成は可能ですか?

UIに条件を追加しようとしましたが、Nameリソースタイプを使用して値をに設定すると、Dataset 1どのデータセットにもアクセスできません。おそらく、値が正しくありません。または、データセットが有効な名前リソースではありません。

更新

投稿する前にすでに試したことに関する詳細と、私が行っていることに関する詳細を追加します。

私の特定のユースケースでは、SQLクエリを実行し、APIを介して(Pythonを使用して)BigQueryのテーブルを変更しようとしています。

ケースA:ロール「BigQueryAdmin」でサービスアカウントを作成します

この役割はプロジェクト内のすべてのデータセットに伝達されます。プロパティは継承され、このサービスアカウントの役割をどのデータセットからも削除できません。

この場合、ご想像のとおり、PythonAPIを使用してすべてのデータセットとテーブルにクエリを実行できます。

ケースB:デフォルトの役割のないサービスアカウントを作成します

ロールは伝達されません。UIの[データセットの共有]オプションをクリックして特定のデータセットにロールを割り当て、[BigQueryAdmin]ロールを割り当てることができます。

この場合、データセットまたはテーブルのいずれにもクエリを実行できず、試行すると次のエラーが発生します。

*Forbidden: 403 POST https://bigquery.googleapis.com/bq/projects/project-x/jobs: Access Denied: Project X: User does not have bigquery.jobs.create permission in project Project X.*

必要なbigquery.jobs.createデータセットこの場合)に必要なアクセス許可が存在していてbigquery.jobs.createも、APIを使用するにはプロジェクトレベルでもアクセス許可が必要であると思われるため、データをクエリできません

ファブドット

同じことを達成しようとしている他の誰かに役立つ場合に備えて、問題に対して見つけた解決策を投稿します。

プロジェクトのサービスアカウントに権限を割り当てるには、プロジェクトレベルでロール「BigQueryJobUser」bigquery.jobs.create割り当てます。

次に、PythonのAPIを介してクエリを実行するために、特定のデータセットに「BigQueryデータエディター」の役割を手動で割り当てることができます。これを行うには、BigQueryUIの[データセットの共有]をクリックします。したがって、この例では、サービスアカウントDataset 1「共有」Dataset 2ました。

これで、PythonでBigQueryデータエディターの役割を割り当てたデータセットをクエリできるようになります。

しかしながら、Dataset 3そのために、「BigQueryのデータエディタ」の役割が割り当てられていない、あなたがテーブルを照会しようとすると、これはエラーを返す必要があります。

Forbidden: 403 Access Denied: Table Project-x:dataset_1.table_1: User does not have permission to query table Project-x:dataset_1.table_1.

上記のように、プロジェクトにアクセスするための十分な権限がありますが、Dataset 3設計上、内部のテーブルにはアクセスできません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ジェネリックパラメーターをスーパータイプのサブセットに制限することは可能ですか?

分類Dev

Sulu CMS: 特定のテンプレートの特定の属性へのアクセスを特定のロールに制限することは可能ですか?

分類Dev

特定のプロセス(アプリケーション)のネットワーク使用を予約/制限することは可能ですか?

分類Dev

データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

分類Dev

p:fileUploadのファイル制限カウンターをリセットすることは可能ですか?

分類Dev

Google KMSを使用してGCPプロジェクト間でシークレットにアクセスするためのサービスアカウントを作成するにはどうすればよいですか?

分類Dev

Google CloudPlatformサービスアカウントへのアクセスを特定のGmailアカウントに制限する

分類Dev

Soundcloudウィジェットにダウンロード制限を追加することは可能ですか?

分類Dev

コパイロットのメッセージングサービスを利用する際に使用するFrom番号を特定することは可能ですか

分類Dev

アクセスコードを使用してMediaWikiでのアカウント作成を制限することは可能ですか?

分類Dev

OpenShift:2つの異なるサービスアカウントで同じシークレットトークンを使用することは可能ですか?

分類Dev

BigQueryビューは異なるデータセット/プロジェクトからの他のテーブルとビューを参照できますか?

分類Dev

レイアウトのコンテンツを使用しないクラスから、レイアウト内のビューオブジェクトにアクセスすることは可能ですか?

分類Dev

データベース内のサブセットへの制限付きアクセスを実装するにはどうすればよいですか

分類Dev

インストールディレクトリを通知するUninstall()プロシージャの変数にアクセスすることは可能ですか?

分類Dev

同じプロジェクト内の異なるユーザーに異なるBigQueryクォータを設定することは可能ですか?

分類Dev

ストライプチェックアウト-チェックアウトページに複数の画像を表示することは可能ですか?

分類Dev

Firebaseのプロジェクトごとのデータベースに制限はありますか?それらをプログラムで作成することは可能ですか?

分類Dev

ローカルマシンへのアクセスを許可し、同じローカルネットワーク内の他のマシンとリソースへのアクセスを制限するにはどうすればよいですか?

分類Dev

ADFS 3.0をサービスプロバイダーとしてセットアップし、他のフェデレーションからの着信クレームを受け入れることは可能ですか?

分類Dev

プロジェクトデータをSonarQubeインスタンスから別のインスタンスに移行することは可能ですか?

分類Dev

アプリケーション(GUI)とWindowsサービスを使用して1つのプロジェクトを作成し、両方をインストールする1つのセットアップを行うことはできますか?

分類Dev

AngularJSプロジェクトのビジュアルスタジオコードでメソッド定義を取得することは可能ですか?

分類Dev

どのように私は、サービスアカウントの資格情報を使用してGoogleチームドライブ内のフォルダにファイルをアップロードすることができますか?

分類Dev

1つのビジュアルスタジオソリューションに、異なるタイプの2つのプロジェクト(デスクトッププロジェクトとWebプロジェクト)を含めることはできますか?

分類Dev

それは、特定のディレクトリに特定のクラスのファイルへのアクセスを制限することは可能ですか?

分類Dev

別のインスタンスのDockerリポジトリを指すローカルアーティファクトDockerリポジトリをセットアップすることは可能ですか?

分類Dev

Google APIサービスアカウントで利用可能なスコープを制限できますか?

分類Dev

アプリ内決済、Androidアプリにユーザーのクレジットカードのリストを保存することは可能ですか?

Related 関連記事

  1. 1

    ジェネリックパラメーターをスーパータイプのサブセットに制限することは可能ですか?

  2. 2

    Sulu CMS: 特定のテンプレートの特定の属性へのアクセスを特定のロールに制限することは可能ですか?

  3. 3

    特定のプロセス(アプリケーション)のネットワーク使用を予約/制限することは可能ですか?

  4. 4

    データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

  5. 5

    p:fileUploadのファイル制限カウンターをリセットすることは可能ですか?

  6. 6

    Google KMSを使用してGCPプロジェクト間でシークレットにアクセスするためのサービスアカウントを作成するにはどうすればよいですか?

  7. 7

    Google CloudPlatformサービスアカウントへのアクセスを特定のGmailアカウントに制限する

  8. 8

    Soundcloudウィジェットにダウンロード制限を追加することは可能ですか?

  9. 9

    コパイロットのメッセージングサービスを利用する際に使用するFrom番号を特定することは可能ですか

  10. 10

    アクセスコードを使用してMediaWikiでのアカウント作成を制限することは可能ですか?

  11. 11

    OpenShift:2つの異なるサービスアカウントで同じシークレットトークンを使用することは可能ですか?

  12. 12

    BigQueryビューは異なるデータセット/プロジェクトからの他のテーブルとビューを参照できますか?

  13. 13

    レイアウトのコンテンツを使用しないクラスから、レイアウト内のビューオブジェクトにアクセスすることは可能ですか?

  14. 14

    データベース内のサブセットへの制限付きアクセスを実装するにはどうすればよいですか

  15. 15

    インストールディレクトリを通知するUninstall()プロシージャの変数にアクセスすることは可能ですか?

  16. 16

    同じプロジェクト内の異なるユーザーに異なるBigQueryクォータを設定することは可能ですか?

  17. 17

    ストライプチェックアウト-チェックアウトページに複数の画像を表示することは可能ですか?

  18. 18

    Firebaseのプロジェクトごとのデータベースに制限はありますか?それらをプログラムで作成することは可能ですか?

  19. 19

    ローカルマシンへのアクセスを許可し、同じローカルネットワーク内の他のマシンとリソースへのアクセスを制限するにはどうすればよいですか?

  20. 20

    ADFS 3.0をサービスプロバイダーとしてセットアップし、他のフェデレーションからの着信クレームを受け入れることは可能ですか?

  21. 21

    プロジェクトデータをSonarQubeインスタンスから別のインスタンスに移行することは可能ですか?

  22. 22

    アプリケーション(GUI)とWindowsサービスを使用して1つのプロジェクトを作成し、両方をインストールする1つのセットアップを行うことはできますか?

  23. 23

    AngularJSプロジェクトのビジュアルスタジオコードでメソッド定義を取得することは可能ですか?

  24. 24

    どのように私は、サービスアカウントの資格情報を使用してGoogleチームドライブ内のフォルダにファイルをアップロードすることができますか?

  25. 25

    1つのビジュアルスタジオソリューションに、異なるタイプの2つのプロジェクト(デスクトッププロジェクトとWebプロジェクト)を含めることはできますか?

  26. 26

    それは、特定のディレクトリに特定のクラスのファイルへのアクセスを制限することは可能ですか?

  27. 27

    別のインスタンスのDockerリポジトリを指すローカルアーティファクトDockerリポジトリをセットアップすることは可能ですか?

  28. 28

    Google APIサービスアカウントで利用可能なスコープを制限できますか?

  29. 29

    アプリ内決済、Androidアプリにユーザーのクレジットカードのリストを保存することは可能ですか?

ホットタグ

アーカイブ