Skip to content

分類レベルの選択

Triggerfishshのすべてのチャンネル、MCPサーバー、統合、プラグインには分類レベルが 必要です。このページでは適切なレベルの選択をサポートします。

4つのレベル

レベル意味データフローの先...
PUBLIC誰でも見て安全どこへでも
INTERNAL自分のみ — 機密ではないが公開ではないINTERNAL、CONFIDENTIAL、RESTRICTED
CONFIDENTIAL漏洩させたくない機密データを含むCONFIDENTIAL、RESTRICTED
RESTRICTED最も機密性が高い — 法律、医療、財務、PIIRESTRICTEDのみ

データは上方向またはサイドウェイズにのみ流れ、下には流れません。これが ライトダウン禁止ルールであり、上書きできません。

確認すべき2つの質問

設定する統合について確認します:

1. このソースが返す可能性のある最も機密性の高いデータは何ですか?

これが最低の分類レベルを決定します。MCPサーバーが財務データを返す可能性がある場合、 ほとんどのツールが無害なメタデータを返す場合でも、少なくともCONFIDENTIALである必要があります。

2. セッションデータがこの宛先に流れることに不快感はありますか?

これが割り当てたい最大の分類レベルを決定します。高い分類はそれを使用すると セッションtaintがエスカレートし、その後のデータフローが制限されることを意味します。

データタイプ別の分類

データタイプ推奨レベル理由
天気、公開ウェブページ、タイムゾーンPUBLIC誰でも自由に利用可能
個人メモ、ブックマーク、タスクリストINTERNALプライベートだが公開されても被害は少ない
内部wiki、チームドキュメント、プロジェクトボードINTERNAL組織内部の情報
メール、カレンダーイベント、連絡先CONFIDENTIAL名前、スケジュール、関係性を含む
CRMデータ、販売パイプライン、顧客記録CONFIDENTIAL事業上の機密、顧客データ
財務記録、銀行口座、請求書CONFIDENTIAL金銭的な情報
ソースコードリポジトリ(プライベート)CONFIDENTIAL知的財産
医療または健康記録RESTRICTED法律上の保護(HIPAA等)
政府ID番号、SSN、パスポートRESTRICTED個人情報盗用リスク
法的文書、NDA下の契約RESTRICTED法的露出
暗号化キー、認証情報、シークレットRESTRICTEDシステム侵害リスク

MCPサーバー

triggerfish.yamlにMCPサーバーを追加する際、分類は2つのことを決定します:

  1. セッションtaint — このサーバーのツールを呼び出すとセッションがこのレベルに エスカレートします
  2. ライトダウン防止 — このレベルより高くtaintされたセッションはデータをこの サーバーに送信できません
yaml
mcp_servers:
  # PUBLIC — オープンデータ、機密性なし
  weather:
    command: npx
    args: ["-y", "@mcp/server-weather"]
    classification: PUBLIC

  # INTERNAL — 自分のファイルシステム、プライベートだがシークレットではない
  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/you/docs"]
    classification: INTERNAL

  # CONFIDENTIAL — プライベートリポジトリ、顧客Issueにアクセス
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "keychain:github-pat"
    classification: CONFIDENTIAL

  # RESTRICTED — PII、医療記録、法的ドキュメントを含むデータベース
  postgres:
    command: npx
    args: ["-y", "@mcp/server-postgres"]
    env:
      DATABASE_URL: "keychain:prod-db-url"
    classification: RESTRICTED

デフォルト拒否 classificationを省略すると、サーバーはUNTRUSTEDとして

登録され、Gatewayはすべてのツール呼び出しを拒否します。明示的にレベルを選択する必要 があります。 :::

一般的なMCPサーバーの分類

MCPサーバー推奨レベル理由
ファイルシステム(公開ドキュメント)PUBLIC公開されているファイルのみを公開
ファイルシステム(ホームディレクトリ)INTERNAL個人ファイル、シークレットなし
ファイルシステム(仕事プロジェクト)CONFIDENTIAL独自のコードまたはデータを含む可能性あり
GitHub(公開リポジトリのみ)INTERNALコードは公開だが使用パターンはプライベート
GitHub(プライベートリポジトリ)CONFIDENTIAL独自のソースコード
SlackCONFIDENTIAL職場の会話、機密性がある可能性あり
データベース(分析/レポート)CONFIDENTIAL集計されたビジネスデータ
データベース(PIIを含む本番)RESTRICTED個人を特定できる情報を含む
天気/時間/計算機PUBLIC機密データなし
ウェブ検索PUBLIC公開されている情報を返す
メールCONFIDENTIAL名前、会話、添付ファイル
Google DriveCONFIDENTIALドキュメントに機密ビジネスデータが含まれる可能性あり

チャンネル

チャンネルの分類は上限を決定します — そのチャンネルに配信できるデータの最大機密度です。

yaml
channels:
  cli:
    classification: INTERNAL # ローカルターミナル — 内部データに安全
  telegram:
    classification: INTERNAL # プライベートボット — オーナーにとってCLIと同じ
  webchat:
    classification: PUBLIC # 匿名の訪問者 — パブリックデータのみ
  email:
    classification: CONFIDENTIAL # メールはプライベートだが転送される可能性あり

オーナーと非オーナー オーナーにとっては、すべてのチャンネルが同じ信頼

レベルを持ちます — どのアプリを使用しても自分は自分です。チャンネルの分類は 非オーナーユーザー(webchatの訪問者、Slackチャンネルのメンバーなど)に最も 重要であり、そこでどのデータが流れるかをゲートします。 :::

チャンネル分類の選択

質問はいの場合...いいえの場合...
このチャンネルのメッセージを見知らぬ人が見られますか?PUBLIC続きを読む
このチャンネルはあなた個人専用ですか?INTERNAL以上続きを読む
メッセージが第三者に転送・スクリーンショット・ログ記録される可能性がありますか?CONFIDENTIAL以下RESTRICTEDの可能性
チャンネルはエンドツーエンド暗号化され、完全にコントロール下にありますか?RESTRICTEDの可能性CONFIDENTIAL以下

間違えた場合はどうなりますか?

低すぎる(例:CONFIDENTIALサーバーをPUBLICとしてマーク):

  • このサーバーからのデータはセッションtaintをエスカレートさせません
  • セッションが分類データをパブリックチャンネルに流す可能性があります — データ漏洩リスク
  • これが危険な方向です

高すぎる(例:PUBLICサーバーをCONFIDENTIALとしてマーク):

  • このサーバーを使用すると不必要にセッションtaintがエスカレートします
  • その後、より低い分類のチャンネルへの送信がブロックされます
  • 不便ですが安全です — 高めに設定するよう心がけてください

疑わしい場合は高めに分類してください。サーバーが実際に返すデータを

確認した後でいつでも下げられます。低すぎる分類はセキュリティリスクです。高すぎる 分類は単なる不便です。 :::

Taintカスケード

実際の影響を理解することで賢明な選択ができます。セッションで何が起こるかを示します:

1. セッションはPUBLICで開始
2. 天気を確認(PUBLICサーバー)        → taintはPUBLICのまま
3. メモを確認(INTERNAL filesystem)   → taintはINTERNALにエスカレート
4. GitHub Issueを照会(CONFIDENTIAL)  → taintはCONFIDENTIALにエスカレート
5. webchatに投稿しようとする(PUBLICチャンネル) → ブロック(ライトダウン違反)
6. セッションをリセット                → taintはPUBLICに戻る
7. webchatに投稿                       → 許可

CONFIDENTIALツールに続いてPUBLICチャンネルをよく使う場合は、頻繁にリセットが 必要になります。ツールが本当にCONFIDENTIALである必要があるか、またはチャンネルを 再分類できるかを検討してください。

ファイルシステムパス

混在する機密度のディレクトリにエージェントがアクセスできる場合に便利な、個別の ファイルシステムパスの分類も可能です:

yaml
filesystem:
  default: INTERNAL
  paths:
    "/home/you/public": PUBLIC
    "/home/you/work/clients": CONFIDENTIAL
    "/home/you/legal": RESTRICTED

レビューチェックリスト

新しい統合を本番環境に移行する前に:

  • [ ] このソースが返す可能性のある最悪のデータは何ですか?そのレベルで分類してください。
  • [ ] 分類はデータタイプの表が示すレベル以上ですか?
  • [ ] これがチャンネルの場合、考えられるすべての受信者に対して分類は適切ですか?
  • [ ] 典型的なワークフローに対してtaintカスケードが機能することをテストしましたか?
  • [ ] 疑わしい場合、低めではなく高めに分類しましたか?

関連ページ