こんにちは中村です。
2026年1月19日ごろから新規のDataformリポジトリに対してactAs権限が強制適用されるようです。
(既存のリポジトリは2026年4月28日ごろより適用)
そこで今回はactAs権限に対応できる設定について解説していこうと思います。
目次
設定項目について
今回の記事では2つの項目の設定方法について解説します。
- サービスアカウントの設定
- Git連携
サービスアカウントの設定について
対象
・サービスアカウントを明示的に設定していない場合


service-*********@gcp-sa-dataform.iam.gserviceaccount.comという Dataform のサービスエージェントが使用されます。
設定内容
・サービスアカウントを作成し、権限付与
・サービスアカウントの付け替え
Git連携について
対象
・Git連携をしていない、かつスケジュールで自動コンパイルを行っている場合


設定内容
・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権限の設定方法について解説しました。
既存リポジトリに関しては、既存のスケジュール実行が止まってしまう恐れがあるので、忘れずに設定しましょう。














