どのプラットフォームもセキュリティを真剣に考えていると言います。しかし、侵害事後報告の中でそう言う会社はありません——その時ようやく、形容詞ではなくアーキテクチャについて説明するのです。それなら最初からアーキテクチャの話をしましょう。テナント分離を説明する一番わかりやすい方法は、チームがよく間違える3つのパターンと、そのとき何が壊れるのかを見ていくことです。
間違い1:アプリケーションコードでテナントIDによるフィルタリングを行う
これがデフォルトになっているのは、それが書くべき当たり前のことだからです。すべてのクエリに WHERE user_id = ? 句を付け、すべての開発者がそれを覚えている限り、すべてのリクエストは自分の境界内にとどまります。惨状が現れるのは後になってから、コードベースがエンドポイント4つではなく400個になったときです。誰かが2つのテーブルを結合するレポートクエリを追加し、2つ目のテーブルへのフィルターを忘れます。別の誰かは「社内利用のためだけ」の管理ツールを、当時は安全に思えたという理由でテナントのスコープ制限なしに作ります。どちらの間違いもテストには引っかかりません。クエリは有効な行を返すからです——ただし、間違ったテナントの有効な行を。
私たちは、すべてのクエリが律儀に確認してくれることに頼っていません。行レベルセキュリティはデータベース層で強制されるため、呼び出し元のコードが何を要求しても、データベース自体が他のテナントの行を返すことを拒否します。信頼できると見なして扱いたくなるようなパス、たとえば特権的な迂回経路もリクエストパス上には存在しません——このポリシーは常に適用されます。
間違い2:サンドボックスを最適化と見なし、境界と見なさない
ここでのエージェントは実際のコードを実行します——それがこの製品の本質です——そして陥りがちな近道は、そのコードを都合の良い場所で実行し、「そのうち」ロックダウンすればいいと考えることです。この場合の惨状は、ビルド中に取り込まれた侵害された依存関係が外部インターネットに通信したり、あるテナントのエージェント実行が本来見るはずのないワークスペースのファイルを読み取ったりする形で現れます。ファイルシステムがデフォルトで共有され、例外的に制限される設計になっているからです。
代わりに、エージェントのワークロードは独立した環境で実行されます:
- ロックダウンされたファイルシステム。
- 開かれた扉ではなく、許可リスト方式のネットワーク送信。
あなたのビルドに取り組むエージェントが見るのは、あなたのワークスペースだけです。あなた自身のアプリのビルドを含む、信頼されていないコードは、分離が誰かが設定を切り替え忘れないようにする運用ルールではなく、構造的に確保されたコンテナ内でコンパイルされます。
間違い3:認証情報をエージェントに渡す
これが最も見落とされやすく、おそらく最も多くのチームを不意打ちする間違いです。エージェントがあなたのホストにデプロイしたり、あなたのストアに投稿したりする必要がある場合、最短の方法はOAuthトークンやSSHキーをコンテキストに入れて使わせることです。しかしそれは、災害への最短ルートでもあります。プロンプトインジェクションによる指示、幻覚によるアクション、あるべきでない場所のトランスクリプトログに残ってしまう認証情報。エージェントが悪意を持つ必要すらありません。実際の鍵を手にした状態で、一度でも間違えれば済んでしまうのです。
そのため、エージェントが鍵を持つことは決してありません。接続された認証情報はあなたのテナントに紐付けて保存され、接続した目的の操作にのみ使用されます:
- ストアアカウント
- ソーシャルOAuthトークン
- デプロイキー
- Googleサービスアカウント
エージェントがデプロイやアップロードを必要とするとき、それをプラットフォームに依頼します。プラットフォームが認証情報を保持し、実際の操作を行います。エージェントは自分が使おうとしている秘密情報そのものを目にすることはありません。分析面では、Googleプロパティが複数サイトで共有される場合でも、すべてのGA4データ取得はホスト名でフィルタリングされているため、対象プロパティが多くのドメインのデータを収集していても、あなたのダッシュボードに他人の数値が誤って表示されることはありません。
何かが公開される前に実際にチェックされること
このプラットフォームではどこでも適用される2つのルールがあり、まさにここで最も重要になります:
- エージェントはあなたのお金を使うことができません。
- エージェントはあなたになりすまして投稿することができません。
どちらも、あなたのクリックが必要です。つまり、自動化されたコンポーネントに起きうる最悪の日でも、あなたの財布やあなたの評判には手が及びません——影響範囲はエージェントの良識ではなく、設計によって制限されているのです。保持と削除の詳細はプライバシーポリシーに記載されています。削除リクエストは30日以内に有効になります。



