created: 2022-02-15T05:02:53.000Z

Cloud Function の `oidc-service-account-email` が必要とするService Account のロール

きちんと調べずに使っていたのでメモ

Cloud Function は public アクセスを許可しないで、サービスアカウントからのアクセスのみ許可する設定ができる。 具体的には --allow-unauthenticated=false として関数をデプロイすると認証が必要になる。

認証が必要になっている関数にアクセスするには Open ID Connect で発行したトークンが必要になるが、Cloud Task などで関数にリクエストさせる場合は --oidc-service-account-email オプションなどをつけて、「どのサービスアカウントで関数にアクセスするか」を指示する必要がある。

もちろん指定するサービスアカウントはなんでもいいわけではなくて、function.invoker ロールがついている必要がある。

参考