メインコンテンツまでスキップ
守りと規約メニュー:守りと規約 › 鍵を持たない

鍵を持たない

BeesBuild は、API キーやトークンの値を持ちません。持つのは、鍵の置き場の住所(参照)だけです。置き場の選び方と渡し方の手順は鍵と接続にあります。このページでは、その考え方と、権限の守りを説明します。

なぜ持たないか​

  • 持たない物は漏れません。BeesBuild が壊れても、乗っ取られても、鍵の値はそこにありません。
  • BeesBuild の PC では、AI が命令を動かします。AI が読める所に鍵を置くと、AI の誤りや外から来た指示で、鍵が会話や記録に出るおそれがあります。
  • Windows の資格情報マネージャーと、コアと話す口(名前付きパイプ)は、同じ Windows の利用者のプロセスなら読める作りです。これは確かめてあります。OS の鍵の置き場に入れるだけでは、同じ利用者で動く AI から鍵を守れません。だから AI はサンドボックスで動かします(隔離と検査と署名)。

4 つの決まり​

決まり中身
置き場に置く鍵の正本は 1Password などの置き場。BeesBuild には入れない
参照だけを持つBeesBuild が持つのは op://… のような置き場の住所だけ
使う時だけ渡す道具を起こす直前に取り出し、その道具のプロセスにだけ渡す。終われば残らない
出さない鍵の値を、会話・ファイル・記録・画面に出さない

鍵の置き場の分け方​

物置き場決まり
API キーとトークン1Password(正本)実行の時だけ取り出す。取り出す時は生体の認証
Workers と AI Gateway に渡す鍵Cloudflare の Secrets Store・Workers の secrets写し先だけ。正本は 1Password
外のサービスとの連携のトークン(OAuth)Nango(暗号化して持つ)BeesBuild とハーネスはトークンを持たない。Nango を動かす鍵は 1Password
GitHub の CI・クラウドの蜂の鍵GitHub の secrets・クラウドの蜂の金庫写し先だけ。出してよいと決めたリポジトリだけに効く鍵にする
Claude Code などのサインインの資格各ハーネスの公式の置き場BeesBuild は読まない・持たない。状態だけを claude auth status などで見る

写し先と期限の全部は、鍵の一覧で見られます(鍵と接続)。

AI から鍵を遠ざける​

鍵を読むのは、BeesBuild のコアだけです。AI には、鍵の中身を渡しません。

守り中身
サンドボックスAI のエージェントは、WSL2(Windows との相互の呼び出しを切る)・Docker・別の Windows の利用者のどれかで動かす
口を分けるコアの口は、画面用と AI 用で権限を分ける。AI 用の口からは、鍵を取り出せず、承認もできない
承認は画面から承認は BeesBuild の画面からだけ。お金・鍵・権限は Windows Hello で本人を確かめる
子のプロセスへの漏れ止めClaude Code の CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 で、子のプロセスに渡す環境の値から資格を外す(鍵と接続)
クラウドの資格を見せない~/.aws・gcloud の設定・.wrangler を、サンドボックスの中から読めなくする(データの扱い)
秘密を隠して渡すAI に渡す文の中の鍵らしい文字は、印に置き換えてから渡す(データの扱い)

権限は最小​

相手決まり
GitHub(手元)利用者の gh のログインで、PR・CI・レビューを読む
GitHub App読む物(PR・レビュー・担当・CI・配布)と、決めた書く物(issue のコメント、モードで許した自動マージ)だけ。組織の管理の権限は持たせない
GitHub(クラウドの蜂)細かい権限の鍵で、出してよいと決めたリポジトリだけ。内容の読み書きと PR だけで、main への push は許さない(クラウドの蜂)
GitHub の組織招待や役の変更は、持ち主の GitHub のログインで行う(みんなで作る)
クラウド(Cloudflare・AWS・GCP)読むだけの役で始める。AWS の ReadOnlyAccess と GCP の roles/viewer はデータの中身まで読めるので使わない(クラウドとドメイン)
長く生きる鍵作らない。AWS は IAM Identity Center か aws login の短い資格、GCP は利用者のログインと、読むだけのサービスアカウントの借用(鍵のファイルを作らない)
MCP書く道具は毎回聞く(always_ask)。1 つの役に「読む」と「外へ送る」がそろう組み合わせは止める
連携範囲は仕事に要る分だけ(決めたフォルダー・決めたチャンネル・読むだけ など)
費用を読む鍵AI を呼ぶ鍵と分け、読むだけの権限を優先する(鍵と接続)
BeesBuild 自身管理の権限を常には持たない。直す時は、持ち主のログインで当てる

権限の地図​

誰が、どこで、何をできるかを 1 枚の地図にします。人が抜けた後に残った権限や、広すぎる権限に気づくためです。画面と細かい既定は、決めているところです。設計中

欄中身
行人・サービスアカウント・トークン・AI のスレッド
列Cloudflare・AWS・GCP・GitHub
マス役・どこから付いたか(直・グループ・権限の組)・最後に使った日

マスには、気をつける所に印を付けます。

印意味
使っていない長く使っていない権限(例:90 日)
広すぎる仕事に要る分より広い役
外の人組織の外のアカウントや、外から届く公開の範囲
長く生きる鍵期限の無い鍵・長く取り替えていない鍵
データを読める役資源の情報だけでなく、データの中身まで読める役

場所ごとに、公式の読む口から集めます。

場所読む物
Cloudflareメンバーの役・API トークン
AWSIAM Identity Center の割り当て・IAM の利用者と鍵・最後に使った日・資格の報告・IAM Access Analyzer の外のアクセス
GCPIAM の方針の検索(gcloud asset search-all-iam-policies)・Policy Analyzer・IAM Recommender・Activity Analyzer
GitHubチームと役・担当の範囲(みんなで作る)
  • AI に地図を読ませる時は、人の名前を仮の名に置き換えて渡します。
  • 有料の読み方(AWS の Access Analyzer の使っていないアクセスなど)は、入れる時に確認のカードを通します。

まとめて直す​

  1. 案を作る:BeesBuild が、直す案をまとめて作ります(例:90 日使っていない権限を外す)。1 行ごとに、前と後・理由・戻し方を付けます。
  2. 読み合わせる:組織の決まり(AWS の SCP・RCP、GCP の Org Policy など)は、コードにしてハブのリポジトリに置き、PR で読み合わせます。
  3. 1 枚のカードで承認する:全部の変更を 1 枚の確認のカードに並べます。持ち主が読み、Windows Hello で本人を確かめて押します。
  4. 持ち主のログインで当てる:変更は、持ち主のログインで当てます。BeesBuild に管理の権限を常に持たせないためです。
  5. 記録する:前と後・理由・戻し方・当てた人を、権限の変更の記録に残します。

抜ける時​

人が抜ける時は、その人の全部の権限と鍵(Cloudflare・AWS・GCP・GitHub)を並べ、外す案を 1 枚にします。GitHub のチームと担当の範囲の手順はみんなで作るにあります。抜けた人の権限が残っていると、人の番に知らせが出ます。

一時の権限​

強い権限は、要る時だけ時間を決めて付けます。GCP は Privileged Access Manager(PAM)を使います。AWS には同じ公式の仕組みが無いので、割り当てを時間で外します。

持ち出しの守り(3 段)​

クラウドのデータを外へ持ち出させない守りです。安い守りから順に重ねます。画面と細かい既定は、決めているところです。設計中

段いつ使うか中身
① 全員・無料既定最小の権限・短い資格・公開を止める設定(S3 の Block Public Access・GCS の公開アクセスの防止・r2.dev の住所を切る)・トークンの期限と IP の制限・監査ログの見張り・抜ける時の一括
② 組織の決まりAWS や GCP で組織を作った時AWS の SCP(人ができる事の上限)・RCP(資源に届く事の上限。組織の外から呼ぶ人にも効く)・組織の単位の公開の禁止。GCP の Org Policy(共有できるドメインを限る・鍵を作らせない)・拒否の方針・Principal Access Boundary・VPC Service Controls(境界の外への写しを止める)
③ 強い守り試してから、大事なデータの所だけCloudflare の Cloud Workload Security(beta。AWS と Cloudflare の API の呼び出しを、届く前に決まりで止める代理)と、Gateway の DLP
  • 監査ログの見張りでは、Cloudflare の監査ログ(見ただけの操作も残る)、AWS の CloudTrail のイベント履歴(管理の出来事の 90 日)、GCP の Admin Activity の記録を読みます。
  • ② の決まりは、案をコードにしてハブのリポジトリに置き、PR で読み合わせ、人が当てます。
  • ③ の代理の置き方は、確かめているところです。確認中
  • 決まりごとに、段・提供元・中身・状態(案・試し・入れた)を持ちます。

漏れた時​

動き中身
すぐ止める鍵と接続の「全部の通り道を止める」で、鍵の通り道を全部止める。動いている仕事も止まる(鍵と接続)
入れ替える1Password で新しい値にし、コアが写し先へ書き直す。記録には版と時刻だけを残す
気づく1 つの鍵の使った量が急に増えたら、漏れの疑いとして赤の知らせが出る(枠の財布とランニングコスト)
探す毎週の点検で、コードと記録に鍵が出ていないかを見る(監視と監査)

漏れた鍵の値を、issue・手紙・会話に貼りません。どの鍵かは、置き場の住所で伝えます。

Mac 版では​

Mac 版の案では、Windows Hello の代わりに Touch ID で本人を確かめ、鍵の置き場に macOS の Keychain を使います。同じ利用者で動く AI がコアの口につなげる点は Windows と同じなので、AI はサンドボックスで動かし、承認は画面からだけにします(提供の予定と範囲)。ベータ版の後

データの型​

型中身
HbSecretRef鍵の参照(置き場の住所・種類・写し先・期限)。中身は持たない
HbCloudGrant権限の地図の 1 行(誰・場所・役・どこから・最後に使った日・印)
HbGrantChange権限の変更の案と記録(外す・弱める・一時の権限・抜ける時。前と後・理由・戻し方・当てた人)
HbGuardPolicy持ち出しの守りの決まり(段・提供元・中身・状態)

次に読む​