厳格な act-as モードを使用する

厳格な act-as モードでは、Dataform で次のユーザー アクションに対して追加のセキュリティ チェックが有効になります。

  • リポジトリの作成または更新
  • ワークフロー構成の作成または更新
  • ワークフローの呼び出しを作成する
  • リリース構成の更新

この追加のセキュリティ チェックでは、これらのアクションを実行するユーザーに、有効なサービス アカウントに対する iam.serviceAccounts.actAs 権限が必要です。有効なサービス アカウントとは、ワークフローの実行に使用される認証情報を持つサービス アカウントです。サービス アカウントの詳細については、サービス アカウントをリソースに関連付けるをご覧ください。

このモードを有効にする方法は次のとおりです。

必要なロール

このドキュメントのタスクを完了するのに必要な権限を取得するには、カスタム サービス アカウントに対する サービス アカウント ユーザー roles/iam.serviceAccountUser)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

有効なサービス アカウントを特定する

ワークフローを実行している有効なサービス アカウントは、リソースタイプと次の条件に応じて特定できます。

リソースの種類 有効なサービス アカウント
リポジトリ

リポジトリを作成するときにサービス アカウントを選択した場合は、Repository.ServiceAccount サービス アカウントが使用されます。

指定しない場合、デフォルトは Dataform サービス アカウントになります。

ワークフロー構成

サービス アカウントは、ワークフロー構成を作成するときに選択できます。

指定しない場合、デフォルトはリポジトリの Dataform サービス アカウントになります。

ワークフローの呼び出し

コンパイル結果が WORKFLOW_CONFIG の場合、ワークフロー構成の有効なサービス アカウントが使用されます。

コンパイル結果からワークフローの呼び出しを作成する場合、WorkflowInvocation.InvocationConfig サービス アカウントが設定されている場合は、そのサービス アカウントが使用されます。

指定しない場合、デフォルトはリポジトリの Dataform サービス アカウントになります。

サービス アカウント ユーザーの IAM ロールを付与する

サービス アカウント ユーザーのロール(roles/iam.serviceAccountUser)には、厳格な act-as モードに必要な iam.serviceAccounts.actAs 権限が含まれています。Dataform API を使用する場合は、呼び出す projects.locations.repositories メソッドに基づいて、有効なサービス アカウントにサービス アカウント ユーザーのロールが付与されている必要があります。

  • createまたはpatch
    • Repository.ServiceAccount プロパティが設定されている場合は、そのプロパティにサービス アカウント ユーザーロールが付与されている必要があります。
    • patch メソッドを呼び出す場合は、リポジトリ内のすべてのワークフロー構成の有効なサービス アカウントに対して、サービス アカウント ユーザーロールが付与されている必要があります。
  • workflowConfigs.createまたはworkflowConfigs.patch
    • ワークフローの構成で使用される有効なサービス アカウントに、サービス アカウント ユーザーのロールが付与されている必要があります。
  • releaseConfigs.patch
    • このリリース構成を使用してワークフロー構成で使用される有効なサービス アカウントに対して、サービス アカウント ユーザーのロールが付与されている必要があります。
  • workflowInvocations.create
    • ワークフローの呼び出しで使用される有効なサービス アカウントに、サービス アカウント ユーザーのロールが付与されている必要があります。

詳細については、ワークフロー構成の作成に必要なロールリリース構成の作成に必要なロールをご覧ください。

リポジトリの自動リリース

act-as モードが有効になっている場合、Dataform リポジトリのリリース構成に対して自動リリースが無効になります。これは、サードパーティ リポジトリに接続されているリポジトリには適用されません。

また、act-as モードを有効にすると、Cron スケジュールを使用して自動リリース構成が設定されているかどうかがリポジトリでチェックされます。これは、サードパーティ リポジトリに接続されているリポジトリには適用されません。

次のステップ