Cloud FunctionsのHTTP Function呼び出しは認証が必要になるよってお話

この記事は「Google Cloud Platform Advent Calendar 2019」11日目の記事です。

3行でわかるまとめ

  1. 2020年1月15日以降に作成されるCloud FunctionsのHTTP Function呼び出し(以下、HTTP呼び出し)はデフォルトで認証が必要となります!
  2. 2020年1月15日以降に作成されるHTTP呼び出しを認証なしで行いたい場合は、「Cloud Functions Invoker」にallUsersを設定してあげる必要があります!
  3. この情報は日本語ドキュメントと英語ドキュメントで差異があるので英語ドキュメントを読んでください!

これまでのHTTP呼び出しの認証方法

僕が知る限り、半年前まではCloud Functions自体に認証方法がなかったため、 Cloud Functions内で認証するためのロジックを書いてあげる必要がありました。

当時、ドキュメントに記載のあった方法は、GCS上に認証用のbucketを作成し、そのbucketに対する権限を確認することで認証するという方法でした。 tech.mercari.com

この方法はFunctionsの内容が冗長になるのに加えて、不必要なGCSバケットが必要などの問題がありました😩

これからのHTTP呼び出しの認証方法

公式ドキュメント

Cloud Runのroles/run.invokerのようなRoleがCloud Functionsに登場しました!

この項目にallUsersを指定しない限りは、権限を持つユーザ・サービスアカウントしかHTTP呼び出しできないようになるので、 Functions内での認証のためのコードやGCSバケットのことを考えなくて済むようになりました😊

注意点

2020年の1月15日以降に作られるHTTP FunctionはデフォルトでHTTP呼び出しに認証が必要になるようなので、気をつけてください!

最後に

有益な情報の割になかなか見つけるのが難しい場所にドキュメントがあったので、共有させていただきました! ここまで読んでいただいてありがとうございました🙇‍♂️