run-as サービス アカウントにサービス アカウント ユーザーを付与する
このページは、今後の認証の変更に備えるの一部です。サービス アカウント ユーザー(roles/iam.serviceAccountUser)が必要なユーザーと、その権限を付与する方法について説明します。
サービス アカウント ユーザーが必要なユーザー
次のプリンシパルには、リストされているサービス アカウントに対するサービス アカウント ユーザーが必要です。
| プリンシパル | サービス アカウント |
|---|---|
| デプロイの自動化など、インテグレーションを公開またはテストするユーザー | 統合の実行ユーザー サービス アカウント |
| API または Google Cloud コンソールを介して統合を同期または非同期で実行するユーザー | 統合の実行ユーザー サービス アカウント |
| トリガーがインテグレーションの開始に使用するサービス アカウント: Cloud Scheduler トリガーのサービス アカウントのメールアドレス、または Cloud Pub/Sub トリガー、Eventarc トリガー、Integration Connectors イベント トリガーのサービス アカウント。そのアカウントが実行ユーザー サービス アカウント自体である場合は不要です。 | 統合の実行ユーザー サービス アカウント |
| 一時停止された実行を承認または再開したユーザー | 統合の実行ユーザー サービス アカウント |
| 統合の呼び出しタスクを使用してサブ統合を呼び出す統合を開始するユーザー。サービス アカウントでトリガーが開始するインテグレーションの場合、これはトリガーのサービス アカウントです。 | 呼び出し元統合のサービス アカウントに加えて、サブ統合の実行ユーザー サービス アカウント |
| サブインテグレーションを非同期で呼び出す場合の、呼び出し元インテグレーションの実行ユーザー サービス アカウント。両方のインテグレーションで同じサービス アカウントを使用している場合は必要ありません。 | サブインテグレーションの実行ユーザー サービス アカウント |
| サービス アカウントまたは OIDC トークン タイプの認証プロファイルを作成または編集するユーザー | プロファイルで指定されたサービス アカウント |
| そのプロファイルを使用するインテグレーションを公開またはテストするユーザー | プロファイルで指定されたサービス アカウント |
そのプロファイルを使用してタスクにアクセスする統合を実行するユーザー。非同期実行またはスケジュールされた実行の場合、これは統合の実行ユーザー サービス アカウント、または統合に実行ユーザー サービス アカウントがない場合は Application Integration サービス エージェント service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com です。この場合は、実行ユーザー サービス アカウントを設定する方が適切な解決策です。 |
プロファイルで指定されたサービス アカウント |
下書きの保存にはサービス アカウント ユーザーは必要ありません。認証プロファイルの公開、テスト、保存に関するチェックはすでに適用されています。認証プロファイルを使用するサブ統合の実行、承認、呼び出し、タスクの実行に関するチェックは、ロールアウトの進行に伴って有効になるため、統合が実行されたときに統合を維持するために、すべての行に今すぐ権限を付与してください。
ロールを付与する
ロールを付与するには、次のコマンドを実行します。
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
--project=SERVICE_ACCOUNT_PROJECT_ID \
--member='user:PRINCIPAL' \
--role='roles/iam.serviceAccountUser'
次のように置き換えます。
SERVICE_ACCOUNT: 実行ユーザー サービス アカウントのメールアドレス、または認証プロファイルで指定されたアカウントのメールアドレスSERVICE_ACCOUNT_PROJECT_ID: サービス アカウントを所有するプロジェクトの IDPRINCIPAL: ユーザーのメールアドレス
他のプリンシパル タイプの場合は、対応する --member 接頭辞を使用します。
- グループ:
group:を使用します。チームメンバーの変更に伴うアクセス管理を簡素化するため、個々のユーザー アカウントではなく Google グループを使用することをおすすめします。 - サービス アカウント: 自動化されたプロセス、アプリケーション、トリガー サービス アカウントには
serviceAccount:を使用します。
Google Cloud コンソールで同じ操作を行うには:
- [IAM と管理] > [サービス アカウント] に移動します。
- サービス アカウントを選択します。
- [権限] > [アクセスを許可] をクリックします。
権限付与を行うには、サービス アカウントに対する roles/iam.serviceAccountAdmin が必要です。プロジェクト オーナーにはこの権限が付与されています。詳細については、サービス アカウントに対するアクセス権の管理をご覧ください。
次のステップ
- ユーザーなしで実行されるインテグレーションに実行ユーザー サービス アカウントを設定します。
- 権限付与が機能していないと思われる場合は、認可エラーのトラブルシューティングをご覧ください。