Firebase 拡張機能が指定されたアクションを実行するために、Firebase はインストールされた拡張機能の各インスタンスに、サービス アカウントを介してプロジェクトとデータへの制限付きアクセスを許可します。
サービス アカウントとは
サービス アカウントは、特殊なタイプの Google ユーザー アカウントです。これは、Google API を使用してデータにアクセスすることを承認された人間以外のユーザーを表します。
拡張機能のインストール中に、Firebase はプロジェクトにサービス アカウントを作成します。インストールされた拡張機能の各インスタンスには、独自のサービス アカウントがあります。
Firebase は、拡張機能のサービス アカウント固有の役割(一連の権限) を割り当てることで、プロジェクトとデータへのアクセスを制限します。拡張機能の動作に必要な役割は、拡張機能の開発中に Firebase によって決定されます。インストール時に、Firebase はこれらのロールを拡張機能のサービス アカウントに割り当てます。これらの割り当てられたロールを変更、追加、または削除しないでください (そうしないと、インストールされた拡張機能が期待どおりに動作しません)。ただし、拡張機能をアンインストールすることはできます。これにより、サービス アカウント (およびそのアクセス) が完全に削除されます。
拡張機能用に作成されたサービス アカウントの形式は、 ext- extension-instance-id @ project-id .iam.gserviceaccount.com
です。
Firebase プロジェクトに関連付けられているすべてのサービス アカウントは、 サービス アカウント] タブで確認できます。
の [プロジェクト設定] の [権限と役割
拡張機能の開発中に、Firebase は拡張機能の動作に必要なアクセス レベルを決定します。
Firebase は、拡張機能のインストール中に Firebase が拡張機能のサービス アカウントに割り当てる必要があるロール(権限のバンドル) を明示的にリストすることによって、このレベルのアクセスを定義します。
各役割 (および固有の権限) は、特定の製品またはサービスに基づいています。役割の例としては、 firebasehosting.admin
、 bigquery.dataEditor
、 firebasedatabase.admin
があります。 Firebase では、拡張機能の仕様ファイル( extension.yaml
ファイル)に、拡張機能に必要な役割がリストされています。
公式の Firebase 拡張機能の場合、Firebase はこの役割のリストを徹底的に見直して、拡張機能のアクセスが拡張機能のタスクの範囲に厳密に制限されるようにします。また、 Firebase Extensions ダッシュボードで拡張機能の詳細ページを表示するか、そのREADME
ファイルを表示して、拡張機能に付与されたアクセス権を自分で確認して確認することもできます。
各役割に含まれる権限について学びます。
拡張機能をアンインストールするとどうなりますか?
プロジェクトから拡張機能をアンインストールすると、Firebase はその拡張機能のインスタンス用に作成されたサービス アカウントを削除します。このサービス アカウントの削除後、拡張機能はプロジェクトまたはデータへのアクセス権を持たなくなるため、プロジェクトで実行できなくなります。