無料で試すログ保持期間 7 日間
エンタープライズ概要に戻る
本番アクセス

エージェントを本番に入れる。 変更の前に承認する。

ライブ障害のデバッグやマイグレーションの実行には、エージェントに本物の本番アクセスを与える必要があります — そして本物の本番アクセスこそ、自律ループに手渡してはならないものです。Bromure はエージェントに自由な読み取りを許しつつ、すべての変更操作の入り口で立ち止まり、まずあなたに尋ねます。

課題

読み取りはいい。問題はキャリアを終わらせる書き込みだ。

本番をクエリできるエージェントは、デバッグの超能力です。`DROP TABLE`、`terraform apply`、バケット削除、ホットフィックスのプッシュができるエージェントは、自信満々のハルシネーション 1 回で障害を引き起こします。ログを読んでバグを見つけた同じループが、頼まれてもいないのにライブシステムに対してそれを「修正」してしまうのです。

そこでチームは安全策を取り、エージェントを本番から完全に締め出します — そしてエージェントが最も役立つ唯一の場所を失います。ライブ障害、データ起因のバグ、本物のデータでしか失敗しないマイグレーション。提示される選択肢は、信頼できない自律性か、与えられないアクセスか、のどちらかです。

Bromure の答え

読み取りは流れる。変更は止まって人間を待つ。

Bromure はエージェントを VM の中で実行し、本番へは資格情報プロキシ経由でのみ到達させます — そしてそのプロキシは読み取りと書き込みの違いを理解します。クエリ、取得、記述はそのまま通過します。状態を変更するもの — 書き込み、削除、DDL 文、デプロイ、破壊的な API 呼び出し — はすべて一時停止し、正確な操作内容を示す承認プロンプトを提示します。実行の前に、エンジニアが承認するか拒否します。

エージェントは安全なものすべてで勢いを保ち、重要な箇所だけで止まります。あなたはエージェントが何をしようとしているか — その SQL、その API 呼び出し、そのリソース — を正確に確認でき、あなたが「はい」と言うまで本番には何も触れません。拒否すれば、エージェントは却下を受け取り、ほかのツールエラーと同じように適応します。

仕組み

読み取りは素通し、書き込みはゲート

プロキシはすべての操作を分類します。読み取り専用の呼び出しは摩擦なく通過し、変更を伴う呼び出しは明示的な人間の承認のために停止します。安全な場所ではエージェントの速度、危険な場所では確実な停止。

何をするか正確に見える

各プロンプトは、実行前にそのままの操作 — SQL 文、API の動詞と対象、変更されるリソース — を表示します。盲目的な「すべて許可」はありません。

資格情報はエージェントに届かない

本番アクセスはネットワーク層でプロキシが注入します。エージェントは、漏らしたり悪用したりできる資格情報を一切保持せずに、本番に対して動作します。

すべての判断を記録

承認、拒否、そしてその背後にある操作は、セッション単位・エンジニア単位で記録されます — エージェントが本番に何をし、誰がそれを許可したかの完全な記録です。

実際の運用

冷や汗なしで、ライブ障害に臨むエージェント

午前 2 時、あるサービスが一部の行でエラーを吐いています。エンジニアは Bromure 経由で、自分のエージェントを本番レプリカに向けます。エージェントはライブデータをクエリし、最近のデプロイと突き合わせ、3 時間前のマイグレーションが書き込んだ不正な列にバグを絞り込みます — すべて読み取り専用で、すべて中断なく流れます。

エージェントは修正を提案します。影響を受けた行に対する `UPDATE` です。これは本番を変更するので、Bromure は一時停止します。承認プロンプトがエンジニアに正確な文 — テーブル、述語、推定行数 — を示し、待機します。エンジニアはそれを読み、`WHERE` 句を絞り込み、承認します。そのときはじめて書き込みがデータベースに到達します。

障害は 2 時間ではなく 20 分でクローズします。セッション記録には、エージェントが実行したすべてのクエリ、提案した唯一の変更、エンジニアの修正、そして承認が残ります — ポストモーテムはひとりでに書け、エージェントがほかに何か密かにやっていないかと誰も悩む必要がありません。

ポリシーを config として

ゲート対象を 1 つのポリシーブロックで定義

プロキシの読み取り/書き込み分類は宣言的です。プロファイル単位でポリシーを渡せば、エージェントはすべてのセッションでそれを継承します。チームが最もよくゲートするバックエンド向けの記述例です。

MongoDB / ClickHouse

読み取り — find、集計、SELECT — は通過し、insert、update、delete、DDL は既定でゲートされます。任意で、エージェントが自由に変更してよいスクラッチデータベースを切り出すこともできます。

[proxy.mongodb]
mode = "read-through"
# find / aggregate / count pass without prompting
gate = ["insert", "update", "delete", "drop"]

[proxy.clickhouse]
mode = "read-through"
# SELECT passes; writes and DDL gate
gate = ["INSERT", "ALTER", "DROP", "TRUNCATE"]
# allow unprompted writes only here
allow_write_databases = ["scratch"]

AWS、Kubernetes、クラウド API

describe / list / get の呼び出しは通過し、リソース — クラウドリソースや Kubernetes オブジェクト — を作成・変更・削除するものはすべて、リクエスト全文を示して承認を求めます。

[proxy.aws]
mode = "read-through"
allow_verbs  = ["Describe*", "List*", "Get*"]
gate_verbs   = ["Create*", "Update*", "Put*", "Delete*", "Terminate*"]
show_request = true

[proxy.kubernetes]
mode = "read-through"
# get / list / watch pass
gate_verbs = ["create", "apply", "patch", "delete", "scale", "exec"]

HTTP と社内サービス

GET と HEAD は流れ、本番ホストへの POST、PUT、PATCH、DELETE はゲートされます。ホスト単位でスコープすれば、ステージングは摩擦なく保てます。

[proxy.http]
read_methods = ["GET", "HEAD"]
gate_methods = ["POST", "PUT", "PATCH", "DELETE"]

[[proxy.http.hosts]]
match = "*.prod.internal"
gate  = true

[[proxy.http.hosts]]
match = "*.staging.internal"
gate  = false
アーキテクチャと統合

実際の構築方法

マーケティングの話はここまで。以下は、すべての Bromure 展開を支える技術的基盤です — BYOD ワークフォースを保護する場合でも、規制官庁内で機密区分を分離する場合でも、同じ基盤です。

ハイパーバイザーが強制する分離

各プロファイルは Apple の Virtualization.framework 上の独自の軽量 Linux VM で動作します — ホストとは別のカーネル、ファイルシステム、ネットワークスタック。ベースイメージは署名済みで再現可能な Alpine ビルドで、セッション起動時に APFS のコピーオンライトで複製されます(ディスクコストはほぼゼロ)。ホストは VM のメモリを読み取れません。プロファイルポリシーが明示的に許可しない限り、VM もホストのクリップボード、ファイルシステム、ネットワークアダプタを読み取れません。

ID:ユーザーは SSO、デバイスは mTLS

登録とセッション起動は、組織がすでに運用している 2 つの要素でゲートされます。Google Workspace、Okta、Microsoft Entra、Authentik に対する OIDC / SAML がユーザーを識別。PKI から発行されインストールに紐付けられたデバイスごとの mTLS クライアント証明書がマシンを識別。どちらかを失効させれば、次のセッションは起動に失敗します — 改ざんすべきエージェントも、編集すべきローカルポリシーもありません。

プロファイル・アズ・コード

業務プロファイル — 許可 SaaS リスト、ダウンロード / クリップボード / スクリーンショットの姿勢、VPN 設定、キーボードレイアウト、ルート CA、ネットワーク egress ルール — は署名された宣言的アーティファクトです。Git でバージョン管理し、MDM または Bromure の設定エンドポイント経由で配信。改ざんされたプロファイルは署名検証で失敗し、セッションは起動を拒否します。ユーザーのマシンで動くのは、あなたが書いたものとビット単位で同一です。

プロファイル単位のネットワークプレーン

各プロファイルは独自の仮想 NIC を持ちます。ホスト経由の NAT、物理インターフェイスへのブリッジ、WireGuard、IKEv2 / IPsec、Cloudflare WARP 経由のトンネル — すべて VM 内で終端され、ホストには見えません。DNS オーバーライド、アウトバウンドポートホワイトリスト、LAN 分離、HTTP プロキシを重ねられます。セグメンテーションは、ファイアウォールに貼られたシールではなく、ハイパーバイザーが強制します。

監査パイプライン

すべてのリクエスト — タイムスタンプ、動詞、URL、ステータス、ユーザー、プロファイル、デバイス — は VM の外側で改ざん耐性のある JSON Lines ストリームとして取得され、既に流しているログシンク(SIEM、データレイク、保全アーカイブ)に配信されます。不審なトラフィックには、ヘッダーのみまたはフルボディのセッション記録をオプションで選べます。安定したスキーマ、ドキュメント化されたフィールド、フォーマットにベンダーロックインなし。

デフォルトで使い捨て、オプトインで永続化

ウィンドウを閉じれば VM は破棄されます。トークン、Cookie、キャッシュ、ダウンロード、セッション中に着地したマルウェアも道連れです。状態が必要なプロファイル — ブックマークセット、保存されたセッション、ログイン済み SaaS — は、macOS Keychain に鍵を置いた LUKS 暗号化永続ディスクにオプトインできます。鍵はユーザーのデバイスから出ることはありません。

よくあるご質問

Bromure は呼び出しが変更操作だとどう判断しますか?

+

資格情報プロキシは、自身が仲介するプロトコル — SQL、クラウド API、HTTP の動詞、Git — を理解します。操作を効果によって分類し、SELECT と GET は通過、INSERT/UPDATE/DELETE/DDL、書き込み API、破壊的呼び出しはゲートします。ポリシーはプロファイル単位で調整できます — すべてをゲートするか、スクラッチスキーマへの書き込みは許可して残りをゲートするか。

プロンプトはすべての操作を遅くしますか?

+

プロンプトが出るのは変更操作だけです。デバッグ中にエージェントが本番に対して行うことの大半は読み取り専用で、それはフルスピードで流れます。人間がループに入るのは、状態が変わる箇所だけ、しかも正確にそこだけです。

拒否したとき、エージェントには何が見えますか?

+

通常のツール却下です。エージェントは失敗した呼び出しと同じように扱い — 説明したり、代替案を提案したり、指示を求めたりできます — その変更が起きることは一度もありません。

一連の操作をまとめて承認できますか?

+

できます。承認は操作単位でも、スコープ付きでも付与できます — ある種別の操作をセッションの残り全体で承認したり、特定のマイグレーションを事前承認したりでき、すべての付与が記録されます。既定は厳格で、緩めるのは意図的に行います。

これは単なる凝った `--dry-run` ではないですか?

+

違います。dry-run は何が起きるかを示すだけで、結局は盲目的な本番再実行が必要です。Bromure は本物の呼び出しそのものをゲートします。エージェントは実行の途中にあり、あなたは正確な操作を確認し、あなたの承認こそがそれを先へ進ませる — あるいは進ませない — ものです。何も二度は実行されず、未承認のものは何も実行されません。

エージェントに本番を与える。 スイッチに手を添えたまま。

読み取りは素通し、書き込みはゲート。エージェントが裏で本番を変更することなく、ライブシステム上で作業できるアクセスです。