厳格な act-as モードでは、Dataform で次のユーザー アクションに対して追加のセキュリティ チェックが有効になります。
- リポジトリの作成または更新
- ワークフロー構成の作成または更新
- ワークフローの呼び出しを作成する
- リリース構成の更新
この追加のセキュリティ チェックでは、これらのアクションを実行するユーザーに、有効なサービス アカウントに対する iam.serviceAccounts.actAs
権限が必要です。有効なサービス アカウントとは、ワークフローの実行に使用される認証情報を持つサービス アカウントです。サービス アカウントの詳細については、サービス アカウントをリソースに関連付けるをご覧ください。
このモードを有効にする方法は次のとおりです。
- リポジトリを作成するとき
strict_act_as_checks
リポジトリ フラグを使用して既存のリポジトリを更新する場合
必要なロール
このドキュメントのタスクを完了するのに必要な権限を取得するには、カスタム サービス アカウントに対する サービス アカウント ユーザー (roles/iam.serviceAccountUser
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
有効なサービス アカウントを特定する
ワークフローを実行している有効なサービス アカウントは、リソースタイプと次の条件に応じて特定できます。
リソースの種類 | 有効なサービス アカウント |
---|---|
リポジトリ | リポジトリを作成するときにサービス アカウントを選択した場合は、 指定しない場合、デフォルトは Dataform サービス アカウントになります。 |
ワークフロー構成 | サービス アカウントは、ワークフロー構成を作成するときに選択できます。 指定しない場合、デフォルトはリポジトリの Dataform サービス アカウントになります。 |
ワークフローの呼び出し | コンパイル結果が コンパイル結果からワークフローの呼び出しを作成する場合、 指定しない場合、デフォルトはリポジトリの 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 スケジュールを使用して自動リリース構成が設定されているかどうかがリポジトリでチェックされます。これは、サードパーティ リポジトリに接続されているリポジトリには適用されません。
次のステップ
- リポジトリの作成方法の詳細については、リポジトリを作成するをご覧ください。
- ワークフロー構成を作成する方法については、実行をスケジュールするをご覧ください。
- リリース構成を作成する方法については、コンパイルを構成するをご覧ください。