あなたのCloud SQLインスタンスにはパブリックIPがない。
踏み台VMなしで、名前を指定して到達する。
AgentsRoomは、接続を開くときにCloud SQL Auth Proxyを起動し、データベースクライアントをその先につなぎます。指定するのはインスタンス接続名のproject:region:instanceだけ。あなた自身のgcloudログインで見えるインスタンスの一覧から選ぶこともできます。
プロキシはあなたのApplication Default Credentials(アプリケーションのデフォルト認証情報)で認可されるので、AgentsRoomがサービスアカウントの鍵を保存することはありません。IAMデータベース認証を使えば、データベースのパスワードも要りません。AIコーディングエージェントも、同じインスタンスを読み取り専用でクエリできます。
AgentsRoomが、アプリ側には何も保存せずに、Cloud SQL Auth Proxy経由でプライベートIPのCloud SQLインスタンスに到達する仕組み。
プライベートIPだけのCloud SQLインスタンスは、正しい構成であると同時に、扱いにくい構成でもあります。データベースはVPCの中にあり、パブリックIPはオフで、到達できるのはそのネットワーク内のマシンだけ。そんなとき、バグを調べるために、ノートPCから3行のデータを見る必要が出てきます。
答えはGoogleがすでに用意しています。Cloud SQL Auth Proxyです。IPの許可リストではなくGoogleのIDで認可された、暗号化された接続をインスタンスに対して開き、それをローカルポートとして公開します。面倒なのはその周辺です。インストールし、インスタンス接続名を思い出し、クライアントを開く前にターミナルで起動し、終わったあとも動かしっぱなしにしてしまう。
その部分はAgentsRoomが引き受けます。データベース接続の「経由する接続」でGoogle Cloud SQLを選び、インスタンスを指定し、必要に応じてプライベートIPやIAMデータベース認証にチェックを入れるだけ。以降、そのデータベースを開くのはワンクリックです。プロキシは接続とともに起動し、接続とともに停止します。
いつもの回避策には、どれも代償がある
同じ問題への3つの答えと、それぞれが請求してくるもの。
このためだけの踏み台VM
SSHポートを開けたCompute EngineのVMを、ときどき誰かがデータベースにトンネルするためだけにVPC内で動かし続けます。パッチを当て、毎時間お金がかかり、SSH鍵とファイアウォールルールはチームの入れ替わりとともにずれていきます。
パブリックIPと許可リスト
パブリックIPをオンにして、自宅のアドレスを承認済みネットワークに追加すれば、アドレスが変わるまでは動きます。その間、データベースはインターネットに向けて待ち受けています。一時的なはずの例外は、いつまでも外されません。
ノートPCに置いたサービスアカウントの鍵
プロキシを動かすためにJSONキーをダウンロードするのは、誰もが後悔する近道です。有効期限の長い認証情報がダウンロードフォルダに残り、スクリプトやプロンプトにコピーされ、誰もローテーションせず、誰も追跡できません。
プライベートなCloud SQLインスタンスから結果セットまで
4つのステップは一度きり、あとはワンクリックです。
gcloudで一度ログインする
マシンでgcloud auth application-default loginを実行します。これで作られるApplication Default Credentials(アプリケーションのデフォルト認証情報)を、プロキシがインスタンスへの到達に使います。AgentsRoomはその中身を読まず、保存もしません。
「経由する接続」でインスタンスを選ぶ
MySQLまたはPostgreSQLの接続を作り、「経由する接続」でGoogle Cloud SQLを選びます。インスタンス接続名のproject:region:instanceを入力するか、「インスタンスを一覧表示」をクリックして、gcloudログインで見えるものから選びます。ホストとポートの欄は消えます。インスタンスそのものがアドレスだからです。
プライベートIPとIAM認証を選ぶ
インスタンスにパブリックアドレスがなく、マシンがVPNまたはInterconnect経由でそのVPCに届くなら、「プライベート IP」にチェックを入れます。Googleのアイデンティティでサインインするには、「IAM データベース認証」にチェックを入れます。パスワード欄は消え、ユーザーはIAMデータベースユーザーになります。
自分でクエリする、またはエージェントにクエリさせる
接続を開くと、空いているループバックポートを確保し、そこでcloud-sql-proxyを起動して、TCP接続を受け付けるまで待ちます。コンソールは他の接続と同じように127.0.0.1へ接続し、AIエージェントもMCP経由で読み取り専用でクエリできます。接続を閉じると、プロキシも停止します。
AgentsRoomが起動するコマンド
何かを作り直しているわけではありません。AgentsRoomはGoogle純正のcloud-sql-proxyバイナリ(バージョン2)を子プロセスとして実行し、引数はシェルを介さずに直接渡します。プロキシを手で起動したことがあれば、すでに見慣れた1行です。
cloud-sql-proxy acme-prod:europe-west1:orders \
--address 127.0.0.1 --port 54321 \
--private-ip \
--auto-iam-authnインスタンスと2つのオプションは、保存した接続から取られます。ローカルポートは、開くときにOSが選びます。
プロキシは、何かを確認する前にまずローカル接続を受け入れ、問題があればその接続を切って理由をログに出します。AgentsRoomはそのログを読み、本当の原因を伝えます。プロキシが未インストール、gcloudのログインが期限切れ(実行すべきコマンド付き)、アカウントにCloud SQL Clientロールがない、インスタンスにプライベートIPがない、インスタンス名が違う、といった具合です。
動かすために満たしておくこと
AgentsRoomは、あなたのGoogle Cloudの設定を動かすだけで、置き換えはしません。必要なのは、プロキシ単体で使うときと同じものです。
マシンにあるcloud-sql-proxy
Cloud SQL Auth Proxyのバージョン2が、PATHに通っていること。いちばん手軽なのはgcloud components install cloud-sql-proxyで、Googleは単体のダウンロードも提供しています。見つからない場合は、AgentsRoomがそう伝え、実行すべきコマンドを示します。
Application Default Credentials
gcloud auth application-default loginを一度実行します。そのログインが期限切れになると、閉じたソケットが表示される代わりに、もう一度実行するよう案内するエラーが出ます。
Cloud SQL Clientロール
Googleアカウントには、インスタンスのプロジェクトでCloud SQL Clientロールが必要で、そこでCloud SQL Admin APIも有効になっている必要があります。IAMデータベース認証には、さらにCloud SQL Instance Userロールと、インスタンス上のIAMユーザーも必要です。
一覧表示のためのgcloud
「インスタンスを一覧表示」は、アクティブなプロジェクト、または入力し始めたプロジェクトでgcloud sql instances listを実行します。gcloudがなくても、接続名を手で入力すれば使えます。
プライベートIPのためのVPCへの経路
プライベートIPでは、マシン自身がVPN、Interconnect、またはネットワーク内のマシンを通して、インスタンスのVPCに届く必要があります。その経路がない場合は「プライベート IP」をオフにして、プロキシの暗号化を使ってパブリックIPで接続してください。
プロキシにできること、拒むこと
ノートPCに設定を残したままにして安全かどうかを左右する性質です。
ループバックのみ
プロキシが待ち受けるのは127.0.0.1だけです。データベースがローカルネットワークに再公開されることはないので、カフェのWi-Fiが本番環境への入口になることはありません。
OSが選ぶポート
AgentsRoomはOSに空いているポートを求め、それをプロキシに渡します。覚えておく固定ポートはなく、手で起動した別のプロキシとぶつかることもありません。
準備完了は本当の準備完了
接続が開くのは、ローカルポートがTCPを受け付けてからです。すぐに終了したプロキシは、出力した理由をそのまま報告します。適当なsleepも、早すぎるクライアント接続もありません。
鍵は保存しない
プロキシはあなたのApplication Default Credentialsで認可されます。AgentsRoomが保存するのはインスタンス接続名と2つのオプションだけで、どれも認証情報ではなく、サービスアカウントの鍵がアプリに触れることもありません。
データベースは読み取り専用のまま
データベース接続は、作成時には読み取り専用です。書き込みには、その接続を書き込み可能にして明示的に確認する必要があり、本番環境として印を付けた接続ではその確認がより強く表示されます。
1回の呼び出しにつき1文
1回の呼び出しで実行できるのはちょうど1つの文なので、セミコロンの陰に何かが隠れることはありません。結果セットにも上限があり、幅の広いクエリがウィンドウやエージェントのコンテキストを埋め尽くすこともありません。
アクセスが増えるのではなく、減る理由
インスタンス側では何も開きません。パブリックIPはオフのままでよく、承認済みネットワークに追加するものもなく、たまのクエリのためにSSHポートを持つVMを動かし続ける必要もありません。プロキシは、インスタンスまでの通信をエンドツーエンドで暗号化します。
認可は、あなたの組織が管理している場所にとどまります。Googleのアイデンティティと、そのIAMロールです。そのアイデンティティに与えられたアクセスは、他のCloud SQL接続と同じように記録され、ロールを外した日に終わります。AgentsRoomが保持するのは、インスタンス名、プライベートIPの選択、IAMの選択だけで、それらを読んだ誰かが再利用できるものは何もありません。
データベース側のガードレールは、AgentsRoomのすべての接続と同じです。既定は読み取り専用、1回の呼び出しにつき1文、上限のある結果セット、そして書き込み確認を厳しくする本番フラグ。MCP経由でクエリするAIエージェントが受け取るのは結果セットだけで、認証情報は決して渡りません。その接続を書き込み可能にし、「エージェントの書き込みを許可」をオンにしない限り、書き込みもできません。
MySQLとPostgreSQLに対応、SQL Serverはまだ
Cloud SQLではMySQL、PostgreSQL、SQL Serverが動きます。AgentsRoomがプロキシ経由で到達できるのは前の2つで、現時点ではSQL Serverのクライアントを持っていません。独自のプロキシを持つAlloyDBも対象外です。
次にどのエンジンやサービスに対応するかは、皆さんのリクエストで決まります。お使いのものが無ければ、公開バックログでどれか教えてください。数に入れます。
データベースエンジンをリクエストするエージェントも、読み取り専用でクエリできる
接続ができれば、AIコーディングエージェントはAgentsRoom MCPを通じて、名前を指定するだけで使えます。テーブルとカラムをたどるdb_list、db_schema、行数に上限のある1文を実行するdb_queryです。エージェント自身が、インスタンス接続名を指定してdb_connection_newやdb_connection_saveでCloud SQL接続を登録することもできます。
エージェントが求めたとき、プロキシはAgentsRoomが自分で起動します。だからエージェントがGoogleの認証情報やデータベースのパスワード、ポート番号を扱うことはありません。戻ってくるのは結果セットだけです。書き込みには、書き込み可能な接続と、既定ではオフの「エージェントの書き込みを許可」の設定が必要です。
本番のレプリカに対してデバッグするエージェントは、バグの原因を説明する行を読みます。コンテキストに漏れる認証情報はなく、アプリを閉じればデータベースへの経路も残りません。
よくある質問
プライベートIPだけのCloud SQLインスタンスに、どうやって接続しますか?
MySQLまたはPostgreSQLの接続を作り、「経由する接続」でGoogle Cloud SQLを選び、インスタンス接続名を入力して「プライベート IP」にチェックを入れます。AgentsRoomは--private-ipを付けてCloud SQL Auth Proxyをループバックポートで起動し、クライアントをそこにつなぎます。マシンからインスタンスのVPCに届く必要があります。たとえばVPNやInterconnect経由です。
AgentsRoomはサービスアカウントの鍵を保存しますか?
いいえ。プロキシは、あなたのマシンでgcloud auth application-default loginが作成したApplication Default Credentialsで認可されます。AgentsRoomが保存するのはインスタンス接続名と2つのオプションで、どれも認証情報ではありません。
データベースのパスワードなしで接続できますか?
はい、IAMデータベース認証を使えば可能です。接続でこれにチェックを入れると、プロキシは--auto-iam-authnで動き、Googleのアイデンティティでサインインします。パスワード欄は消え、ユーザーはIAMデータベースユーザーになります。インスタンスでIAM認証が有効になっていて、そのユーザーが作成済みである必要があります。
何をインストールしておく必要がありますか?
Cloud SQL Auth Proxyのバージョン2(gcloud components install cloud-sql-proxy、またはGoogleの単体ダウンロード)と、Application Default Credentials用のgcloudログインです。gcloud自体が必要なのは、「インスタンスを一覧表示」ボタンを使うときだけです。
gcloudのログインが期限切れになるとどうなりますか?
プロキシは接続を拒否し、理由をログに出します。AgentsRoomはそのログを読み、素っ気ない接続エラーの代わりに、gcloud auth application-default loginを実行するよう案内する分かりやすいメッセージを表示します。そのあと、もう一度試すだけです。
どのローカルポートが使われ、誰が到達できますか?
接続を開くときにOSが空いているポートを選び、プロキシは127.0.0.1だけで待ち受けます。ローカルネットワーク上の何からも到達できず、プロキシは接続を閉じるかアプリを終了すると停止します。
対応しているCloud SQLのエンジンは?
Cloud SQL for MySQLとCloud SQL for PostgreSQLです。AgentsRoomにはまだSQL Serverのクライアントがないため、Cloud SQL for SQL Serverは未対応です。公開バックログでリクエストしてください。数に入れます。
WindowsとLinuxでも動きますか?
はい。cloud-sql-proxyはmacOS、Windows、Linuxで動くネイティブバイナリで、AgentsRoomは3つとも同じ方法で起動します。スマートフォンアプリは同じ接続を一覧表示し、デスクトップ経由で読み取り専用でクエリします。
AIエージェントは、プロキシ経由でデータベースにクエリできますか?
はい、既定では読み取り専用です。エージェントはAgentsRoom MCP経由で保存済みの接続を名前で指定し、アプリがプロキシを起動して文を自分で実行し、戻るのは結果セットだけです。エージェントがGoogleの認証情報やデータベースのパスワードを受け取ることはなく、接続が書き込み可能で、かつ「エージェントの書き込みを許可」をオンにしていない限り、db_queryは読み取り以外を拒否します。
こちらもおすすめ
データベース接続
MySQL、PostgreSQL、MongoDBの接続を保存し、SSHトンネルやAWS SSMセッション経由でプライベートサブネット内のデータベースに到達して、AIエージェントにMCP経由でクエリさせましょう。デフォルトは読み取り専用、1回の呼び出しにつき1文、結果セットには上限があり、パスワードがエージェントに届くことはありません。エクスポート、インポート、そしてデータベース間の直接コピーも含みます。
AWS SSM経由のRDS
パブリックなエンドポイントを持たないAmazon RDSインスタンスに、aws ssm start-sessionとAWS-StartPortForwardingSessionToRemoteHostドキュメントを使って、自分のマシンから到達します。維持する踏み台も、VPNも、受信SSHのルールも要りません。AgentsRoomがループバックポートでセッションを開き、その先にデータベースクライアントをつなぎます。対応はMySQL、PostgreSQL、MongoDBなので、RDS MySQL、RDS PostgreSQL、Aurora、DocumentDBが対象です。
シークレットマネージャー
APIキー、トークン、パスワードをOSのキーチェーンに保存し、開発コマンドやエージェントの環境変数では{{secret:NAME}}として参照すれば、AgentsRoomが起動時に解決します。エージェントに見えるのは名前だけで、値が渡ることはなく、サーバーに同期されるものもありません。
SSH接続
SSH接続を保存し、内蔵のSSHターミナルを開いて、Claude Code、Codex、Antigravity CLIをリモートサーバーやVPS上で直接実行できます。SSH鍵またはパスワード認証、プロジェクトごとの接続プロファイル、別のSSHクライアントは不要です。
プライベートなCloud SQLインスタンスにクエリする
AgentsRoomをダウンロードして、Cloud SQLのインスタンスを選び、あなた自身のgcloudログインでCloud SQL Auth Proxy経由でクエリしましょう。踏み台VMも、パブリックIPも、ディスク上の鍵も要りません。
コンパニオンアプリ:外出先でもエージェントを確認
Claude、Codex、Antigravity CLI、またはその他の AI プロバイダーを使用します。
バグや要望を公開バックログに直接送信できます。