DataformでactAs権限に適合する設定をする

こんにちは中村です。

2026年1月19日ごろから新規のDataformリポジトリに対してactAs権限が強制適用されるようです。
(既存のリポジトリは2026年4月28日ごろより適用)

そこで今回はactAs権限に対応できる設定について解説していこうと思います。

目次

設定項目について

今回の記事では2つの項目の設定方法について解説します。

  • サービスアカウントの設定
  • Git連携

サービスアカウントの設定について

対象
・サービスアカウントを明示的に設定していない場合

各リポジトリの Settings において、サービスアカウントが「デフォルトの Dataform サービスアカウント」になっている場合、サービスアカウントの明示的な設定は行われていません。
この状態では、実行時の認証には
service-*********@gcp-sa-dataform.iam.gserviceaccount.com
という Dataform のサービスエージェントが使用されます。


設定内容
・サービスアカウントを作成し、権限付与
・サービスアカウントの付け替え

Git連携について

対象
・Git連携をしていない、かつスケジュールで自動コンパイルを行っている場合

各リポジトリのSettingsで、左上にGitと接続が表示されている場合Git連携されていません。
リリースとスケジュールのリリース構成にCronのスケジュールが設定されている場合スケジュールで自動コンパイルが行われています。


設定内容
・GitHubに接続
・サービスエージェントに権限付与

設定

サービスエージェントの設定

実行に必要な権限

  • サービスアカウントを作成できるロール
  • サービスアカウントに権限を付与できるロール

設定手順

まず、GoogleCloudのコンソールに移動して、IAMと管理>サービスアカウントから + サービスアカウントを作成 を選択

作成したサービスアカウントにロールを付与します。
必要なロールは以下の通りです。

  • BigQueryジョブユーザー
  • BigQueryデータ編集者
  • BigQueryデータ閲覧者
  • ストレージオブジェクト閲覧者(DataformでGCSを見に行っている場合は必要)

次に作成したサービスアカウントへのアクセス権を許可するユーザーを追加します。
アクセス権を持つプリンシパルで + アクセスを許可 を選択

新しいプリンシパルに

  • サービスエージェント(service-*********gcp-sa-dataform.iam.gserviceaccount.com)
  • Dataformを触るメンバー

を追加し、

  • サービスアカウントユーザー
  • サービスアカウントトークン作成者

を付与します。

これでサービスアカウントの作成が完了したので、各リポジトリで付け替えを行います。

サービスアカウントが作成したサービスアカウントの名前になっていれば完了です。

Git連携

実行に必要な権限

  • サービスアカウントに権限を付与できるロール

設定手順

まず、GitHubに移動し、プライベートリポジトリを作成する。

作成後、ユーザーの設定(Settings)> Developer Settings >

Personal access tokens > Tokens (classic)を選択し、画面右上からGenerate new token (classic)を選択

アクセス名に名前を入れ、期限を選択し、スコープをrepoを選ぶ

作成できたらシークレットが作成されるので、忘れずにメモしておきましょう。後程使用します。

次にDataformに移動し、SettingsからGitと接続を選択

プロトコルを選択し、作成したリモートリポジトリのURLとブランチを入力、
その後シークレットの入力から新しいシークレットを作成を選択

先ほどのPAT作成で作成されたシークレットを値に入力し、シークレットを作成

作成が完了したら、Git接続画面で、先ほど作成したシークレットが設定されていることを確認してリンクを選択する。

続いてIAMに移動して、サービスエージェントにSecretManagerのアクセス権限を付与する。
IAMに移動して「Google提供のロール付与を含める」にチェックを入れ、フィルタにDataformサービスエージェントを入力

表示されたプリンシパル service-****************@gcp-sa-dataform.iam.gserviceaccount.com にSecretManagerのシークレットアクセッサー権限を付与します。

これでGit連携の設定は完了です。

設定が問題ないか確認する方法

リポジトリに移動し、actAs 権限チェックを「適用」にした状態で、スケジュール実行が問題なく完了すれば設定は正常です。

まとめ

今回はDataformのactAs権限の設定方法について解説しました。

既存リポジトリに関しては、既存のスケジュール実行が止まってしまう恐れがあるので、忘れずに設定しましょう。

類似投稿