呼び出しの認証
このドキュメントでは、gcloud functions
、REST API、Terraform などで Cloud Functions v2 API を使用して作成された関数を呼び出す方法について補足情報を提供します。詳細情報と例については、Cloud Run ガイドのリクエストの認証をご覧ください。Cloud Run ガイドで説明されているトピックは、Cloud Functions v2 API を使用して作成された関数にも適用されます。これは、v2 関数も Cloud Run 起動元ロール(roles/run.invoker
)を使用するためです。
認証された関数を呼び出すには、基盤となるプリンシパルが次の要件を満たしている必要があります。
- 関数を呼び出す権限を持っている。
- 関数を呼び出すときに ID トークンを提供する。
Cloud Run functions は、次の 2 種類の ID をサポートしています。これらはプリンシパルとも呼ばれます。
- サービス アカウント: 関数、アプリケーション、VM など、人以外の ID として機能する特別なアカウントです。これにより、人以外の認証を行うことができます。
- ユーザー アカウント: 個々の Google アカウント所有者、または Google グループのような Google が管理するエンティティの一員など、人を表します。
IAM の基本的なコンセプトの詳細については、IAM の概要をご覧ください。
認証された関数を呼び出すには、基盤となるプリンシパルに以下の起動元の IAM 権限が必要です。
run.routes.invoke
。これは通常、Cloud Run 起動元ロールで付与されます。この権限は、Cloud Run サービス リソースに割り当てる必要があります。
これらの権限を付与するには、Cloud Run ガイドのサービス間認証の手順に沿って操作します。
関数の作成、更新、その他の管理アクションを行うには、プリンシパルに適切なロールが割り当てられている必要があります。ロールには、プリンシパルが実行できるアクションを定義する権限が含まれています。詳細については、IAM でアクセスを認可するをご覧ください。
イベント ドリブン関数を呼び出すことができるのは、関数が登録されているイベントソースだけです。ただし、HTTP 関数は、関数をテストするデベロッパーや関数を使用する別のサービスなど、さまざまな場所で発生するさまざまな ID タイプによって呼び出すことができます。ID は認証用の ID トークンを提供する必要があります。また、使用するアカウントに適切な権限が付与されている必要があります。