roles/iam.serviceAccountTokenCreator
ユーザーがサービスアカウントになりすまして、何かを実行する。そのservice accountになる権限(token)を作成する権限?
GCP からの HTTP リクエストをセキュアに認証する. はじめに | by Yuki Furuyama | google-cloud-jp | Medium
あらかじめ「この Service Account の ID Token だったら作れてもいい」という権限を渡すことになります。この権限は roles/iam.serviceAccountTokenCreator という IAM ロールです。
1. service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.comという Service Account (SA1 とします) をルートの認証手段として使い、
2. 目的の Service Account (SA2 とします) の ID Token を作るようになっているため、
SA1 に対して roles/iam.serviceAccountTokenCreator ロールを付与すれば、SA2 の ID Token を作ることができるようになります。
roles/iam.serviceAccountTokenCreator ロールを付与するのは Pub/Sub の Service Account の方です。もう片方の方は基本的には認証としてしか使わない
こういうのもあるようだ。
Cloud IAM には generateIdToken という API があるので、それを叩くことで所望の Service Account の ID Token を得ることができます
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
このservice account、通常の consoleでは、リストされてないのだけど、どこにいたら見つかるのか?
@以下のドメイン名をみれば、自分のところでないと思わないといけないか。 "ルートの認証手段" と上でも言ってて、そこで気づけないといけない....
プッシュ サブスクリプション  |  Cloud Pub/Sub ドキュメント  |  Google Cloud
2021 年 4 月 8 日以前に作成したプロジェクトの場合、Pub/Sub がトークンを作成できるようにするには、プロジェクトで Google が管理するサービス アカウント service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com に roles/iam.serviceAccountTokenCreator ロールを付与する必要があります。ただし、その日以降にプロジェクトが作成された場合は、サービス アカウントに同じ権限を持つ roles/pubsub.serviceAgent ロールがあるため
"Googleが管理するサービスアカウント"なので、見えない。
#GCP_IAM Google Cloud IAM Roles