Firebase IAM によるプロジェクトへのアクセス権の管理

Identity and Access Management(IAM)を使用すると、特定の Firebase リソースと Google リソースに対するアクセス権を細かく設定し、他のリソースへの不要なアクセスを防ぐことができます。セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみを付与できます。

IAM の詳細については、Google Cloud IAM のドキュメントをご覧ください。

Firebase IAM の概要

Firebase には、Firebase プロジェクトやプロジェクト メンバーに固有の IAM オプションが用意されています。

認証されたプロジェクト メンバーが Firebase でなんらかのアクションを要求すると、IAM はそのメンバーがリソースに対して要求された操作を実行する権限があるかどうかによって認可を決定します。プロジェクト メンバーが要求を実行できるかどうかは、プロジェクト メンバーに割り当てられたロールによって決まります。各ロールは権限の集合であり、ロールをプロジェクト メンバーに割り当てると、そのロールのすべての権限がそのプロジェクト メンバーに付与されます。

プロジェクト メンバー

Firebase IAM を使用して、プロジェクト メンバーにロール(とその固有の権限)を割り当てます。プロジェクト メンバーには次のタイプがあります。

  • Google アカウント
  • サービス アカウント
  • Google グループ

ロール

権限はロールを介してプロジェクト メンバーに付与されます。ロールは権限の集合です。ロールをプロジェクト メンバーに割り当てると、そのロールに含まれるすべての権限がそのプロジェクト メンバーに付与されます。

Firebase IAM では、次のタイプのロールをサポートしています。

  • 基本ロール: 基本的なオーナー編集者閲覧者のロール(旧称「基本(primitive)ロール」)。

  • 事前定義ロール: 基本ロールより詳細にアクセス権を制御できる、キュレートされた Firebase 固有のロール。Firebase では次のロールが提供されます。

    • Firebase レベルのロール: すべての Firebase プロダクトに対する完全な読み取り / 書き込みアクセスまたは読み取り専用アクセスを付与するロール。

    • プロダクト カテゴリのロール: プロダクト グループへの完全な読み取り / 書き込みアクセスまたは読み取り専用アクセスを付与するロール。これらは Google アナリティクスや一般的なプロダクト カテゴリを中心に構成されています。

    • プロダクト レベルのロール: 特定の Firebase プロダクトへの完全な読み取り / 書き込みアクセスまたは読み取り専用アクセスを付与するロール。

  • カスタムロール: 組織の特定の要件を満たす独自の権限セットを含む、完全にカスタマイズされたロール。

ロール変更の適用遅延

プロジェクト メンバーへのロールの割り当てを変更した場合、変更が有効になるまで最大 5 分かかることがあります。

プロジェクト メンバーとそのロールを管理する

プロジェクト メンバーとそのロールを確認する

プロジェクト メンバーとそのロールの多くは、Firebase コンソールで > [プロジェクト設定] を選択し、[ユーザーと権限] タブで確認できます。次の点にご注意ください。
  • Firebase コンソールには、基本ロール(オーナー、編集者、閲覧者)または Firebase の事前定義ロールが割り当てられているプロジェクト メンバーのみが表示されます。このタブに表示されているプロジェクト メンバーは、Firebase コンソールで Firebase プロジェクトにアクセスできるプロジェクト メンバーのみです。
  • Firebase コンソールには、サービス アカウントであるプロジェクト メンバーは表示されません。これらのプロジェクト メンバーは、Google Cloud Console の IAM ページに表示されます。
Google Cloud Console の IAM ページでは、すべてのプロジェクト メンバーとそのロールを表示できます。

プロジェクト メンバーにロールを割り当てる

各プロジェクト メンバーに割り当てるロールを管理するには、Firebase プロジェクトのオーナーである(または resourcemanager.projects.setIamPolicy 権限が含まれるロールが割り当てられている)必要があります。

ロールの割り当てと管理は次の場所で行うことができます。

  • Firebase コンソールでは、簡単な方法でプロジェクト メンバーにロールを割り当てることができます。これは、 > [プロジェクト設定] を選択し、[ユーザーと権限] タブで行います。Firebase コンソールでは、基本ロール(オーナー、編集者、閲覧者)、Firebase 管理者 / 閲覧者のロール、いずれかの Firebase プロダクト カテゴリの事前定義ロールを割り当てることができます。
  • Google Cloud Console の IAM ページには、プロジェクト メンバーにロールを割り当てるための幅広いツールセットが用意されています。Cloud Console では、カスタムロールの作成と管理を行うことができます。また、サービス アカウントにプロジェクトへのアクセス権を付与することもできます。

    Google Cloud Console では、プロジェクト メンバーはプリンシパルと呼ばれます。

プロジェクトのオーナーがオーナーのタスクを行うことができなくなり(従業員が退職した場合など)、プロジェクトが Google Cloud 組織を通じて管理されていない場合(次の段落を参照)、一時的なオーナーを割り当てるには、Firebase サポートにお問い合わせください。

Firebase プロジェクトが Google Cloud 組織に属している場合は、オーナーが存在しない可能性があります。Firebase プロジェクトのオーナーが見つからない場合は、Google Cloud 組織の管理者に問い合わせて、プロジェクトのオーナーの割り当てを依頼してください。