メインコンテンツへスキップ
Firebaseプロジェクトを接続して、CloudThinkerエージェントがプロジェクトとアプリの一覧表示、SDK設定の読み取り、Firestore・Storage・Realtime Databaseのセキュリティルール監査、デプロイ状態の確認、Firebaseドキュメントの検索を実行できるようにします。また、アプリの作成やデプロイなど承認が必要な制御操作も行えます。 Firebaseの認証はGoogle Cloudサービスアカウントキー(JSONファイル)で行います。サービスアカウントのIAMロールがエージェントのアクセス範囲を決定します。監査用には読み取り専用のFirebaseロールを付与し、書き込みやデプロイが必要な場合にのみより広いロールを付与してください。

前提条件

  • CloudThinkerで検査したいFirebaseプロジェクト
  • そのプロジェクトのサービスアカウントキー(JSON)
  • プロジェクトのGoogle CloudでサービスアカウントキーとIAMロールを作成・割り当てる権限。
サービスアカウントJSONは完全な認証情報です。IAMロールを最小権限にスコープしてください。読み取り専用のFirebaseロールで一覧表示とルール監査が可能です。

セットアップ

1

サービスアカウントキーを生成

Firebase Consoleでプロジェクトを選択し、サイドバーの設定(歯車)アイコンをクリックしてプロジェクトの設定を開きます。上部バーのサービス アカウントタブを開き、新しい秘密鍵の生成をクリックし、キーを生成で確認してJSONキーファイルをダウンロードします。
2

IAMロールを付与(オプション、最小権限用)

Google Cloud Console → IAM で、サービスアカウントにCloudThinkerが必要とするロールのみを付与します。読み取り専用監査にはViewer / Firebase Viewerロール、承認ゲートの書き込みやデプロイが必要な場合はFirebase管理者ロールを使用します。
3

CloudThinkerに接続を追加

Connections → Firebase に移動して認証情報を追加します:
  • サービスアカウントキー(JSON):ダウンロードした .json キーファイルをアップロードエリアにドラッグするか、クリックしてファイルを選択します
Connect をクリックします。CloudThinkerがキーを読み取り、そこからアクティブプロジェクトを設定して Connected ステータスに変わります。
ダウンロードしたJSONはパスワードと同様に扱ってください。シークレットマネージャーに保管し、CloudThinkerへのアップロード後はローカルのコピーを削除してください。

接続詳細

フィールド説明
GOOGLE_SERVICE_ACCOUNT_KEYGoogle Cloudサービスアカウントキー全体のJSON。CloudThinkerはその project_id からアクティブなFirebaseプロジェクトを自動的に設定します。{ "type": "service_account", "project_id": "my-app", ... }
CloudThinkerはキーの project_id からアクティブプロジェクトを解決するため、プロジェクトIDや設定ファイルを別途指定する必要はありません。

必要な権限

読み取り操作(プロジェクト、アプリ、SDK設定、セキュリティルールの検査)はビューアーレベルのFirebase/GCPロールで機能します。制御操作(プロジェクトやアプリの作成、機能の初期化、アクティブプロジェクトの切り替え、デプロイ)には、それを許可するロールと、CloudThinkerでの明示的な承認の両方が必要です。
最小権限を守ってください。監査には読み取り専用のFirebaseロールを付与し、実際に必要になるまで書き込み可能なロールは保留してください。ガードレールを外すのではなく、制御操作は承認ゲートのままにしておいてください。

エージェントの機能

接続後、エージェントはFirebaseプロジェクト、アプリ、ルールへの読み取りアクセスを持ちます。
機能説明
プロジェクトとアプリアクセス可能なプロジェクトの一覧、アクティブプロジェクトの検査、iOS・Android・Webアプリの一覧表示
SDK設定プラットフォームまたはアプリのFirebase SDK設定を読み取り
セキュリティルールアクセス監査のためFirestore・Storage・Realtime Databaseのルールを読み取り
デプロイ状態デプロイ状態の確認
Firebaseドキュメント公式FirebaseおよびGoogle開発者ドキュメントを検索
プロジェクトとアプリの制御プロジェクト・アプリ・Android SHA鍵の作成、機能の初期化、アクティブプロジェクトの切り替え、デプロイ — 承認が必要
作成・初期化・デプロイ・プロジェクト切り替えのアクションは承認ゲートされています。CloudThinkerは実行前に確認を求めます。読み取り専用操作は承認なしで実行されます。

接続を確認する

@alex show my Firebase environment and list the projects I can access

プロンプト例

@alex review the current Firestore and Storage security rules, flag any that allow unauthenticated writes, and #recommend tighter definitions
@alex list all Firebase projects and the apps registered in the active project and #report as a table
@alex show the Firebase SDK config for my web app
複数のプロジェクトにアクセス可能でアクティブなものがない場合は、エージェントが適切なプロジェクトにスコープできるよう、プロンプトにプロジェクト名を指定してください。

トラブルシューティング

サービスアカウントJSONが無効、不完全、または文字が欠けた状態で貼り付けられています。Firebase Consoleで新しい秘密鍵を生成して再接続してください。
CloudThinkerはキーの project_id からアクティブプロジェクトを設定します。キーに project_id がない場合や複数のプロジェクトにアクセス可能な場合、エージェントはそれらを一覧表示してどれを使用するか尋ねます。続行するにはプロジェクトを指定してください。
サービスアカウントに該当製品のFirebase/GCP IAMロールがありません。Google Cloud IAMで適切なロールを付与して再接続してください。
作成・初期化・デプロイには、そのアクションを許可するIAMロールとCloudThinkerでの明示的な承認の両方が必要です。プロンプトが表示されたらアクションを承認し、サービスアカウントのロールがそれを許可していることを確認してください。

セキュリティ

  • 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
  • デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
  • 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
  • オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
  • 制御操作の承認 — 作成・初期化・デプロイのアクションは、ガードレールを外すのではなく承認ゲートのままにしておいてください。
  • キーを保護 — サービスアカウントJSONは完全な認証情報です。ソースコントロールにコミットしたり、平文で共有したりしないでください。

関連

https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/gcp.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=2cc7040a8e4cd401b1c388f8b0cd6fe3

Google Cloud接続

Google Cloud Platformを接続

承認

承認ゲートアクションの仕組み