mcpField
N
nemoclaw-user-manage-policy

nemoclaw-user-manage-policy

github.com/nvidiaセキュリティ3.8k828 回インストール今日更新
リポジトリ

nemoclaw-user-manage-policy について

NemoClaw の運用者向けに、サンドボックスのネットワークアクセスを設定するスキルです。永続するベースラインと実行中の更新、組み込み・カスタムのプリセットを説明します。

主な機能

  1. 01YAML ベースラインポリシーの編集
  2. 02稼働中のサンドボックスでプリセットを追加・削除
  3. 03カスタムネットワークプリセットの作成
  4. 04OpenShell によるライブポリシー更新
  5. 05ポリシー階層による連携アクセス設定
  6. 06ポリシー確認とネットワークリクエストの承認

活用シーン

  1. 01サンドボックスから内部 API へのアクセス許可
  2. 02GitHub や Slack のネットワークアクセス設定
  3. 03ブロックされた接続先を試してから許可

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia/skills --skill nemoclaw-user-manage-policy

インストール後、Claude Code で/nemoclaw-user-manage-policyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
approve-network-requests.md
customize-network-policy-details.md
integration-policy-examples.md

詳細

サンドボックスのネットワークポリシーをカスタマイズする

注意事項

  • カスタムプリセットのホストは NemoClaw の審査プロセスを経由せず、サンドボックスの外向き通信を任意の宛先まで拡張する可能性があります。

前提条件

  • 動的な変更の場合は実行中の NemoClaw サンドボックス、静的な変更の場合は NemoClaw のソースリポジトリ。
  • PATH 上に OpenShell CLI があること。

サンドボックスからの接続を許可するエンドポイントを追加、削除、または変更します。

サンドボックスのポリシーは、NemoClaw リポジトリ内の宣言型 YAML ファイルで定義され、実行時には NVIDIA OpenShell によって適用されます。 NemoClaw では、再起動後も維持される静的なポリシー変更と、OpenShell CLI を通じて実行中のサンドボックスに適用する動的な更新の両方をサポートしています。

注:

サンドボックスからホスト上で動作する HTTP サービスに接続する必要がある場合は、OpenShell ゲートウェイから到達可能なホスト IP でサービスを公開してください。 nemoclaw <sandbox> policy-add --from-file を使用してカスタム NemoClaw プリセットを適用してください。 host.docker.internal は OpenShell のポリシー経路を迂回し、すべてのサンドボックス実行環境で到達可能とは限らないため、一般的なホストサービスへの経路として依存しないでください。 「エージェントがホスト側の HTTP サービスに接続できない」(nemoclaw-user-reference スキルを使用)を参照してください。

静的な変更

静的な変更ではベースラインポリシーファイルを修正します。変更は次回のサンドボックス作成時に反映されます。

ポリシーファイルを編集する

nemoclaw-blueprint/policies/openclaw-sandbox.yaml を開き、エンドポイントの項目を追加または変更します。

組み込みプリセットをベースラインポリシーの一部にする場合は、その network_policies の項目をこのファイルに統合し、nemoclaw onboard を再実行してください。

実行中のサンドボックスにプリセットを適用するだけでよい場合は、動的な変更に記載されている nemoclaw <name> policy-add を使用してください。 これによりライブポリシーが更新され、openclaw-sandbox.yaml は編集されません。

プリセットではカバーされない内部 API や天気サービスなどのカスタムホストを許可する必要がある場合は、YAML を手動で編集してください。

network セクションの各項目は、次のフィールドを持つエンドポイントグループを定義します。

endpoints : サンドボックスから接続できるホストとポートの組み合わせです。

binaries : このエンドポイントの使用を許可する実行ファイルです。

rules : 許可する HTTP メソッドとパスです。

オンボードを再実行する

オンボードウィザードを再実行して、更新したポリシーを適用します。

$ nemoclaw onboard

ウィザードは変更されたポリシーファイルを読み込み、サンドボックスに適用します。

ポリシーを確認する

更新したポリシーでサンドボックスが実行されていることを確認します。

$ nemoclaw <name> status
ブループリントのポリシー追加項目を追加する

カスタムブループリントを管理している場合は、nemoclaw-blueprint/blueprint.yaml の components.policy.additions に追加のポリシー項目を記述できます。 NemoClaw はプリセットファイルと同じポリシースキーマを使用してこれらの項目を検証し、サンドボックスの作成時にライブポリシーを取得して、追加項目を network_policies に統合し、統合したポリシーを OpenShell 経由で適用します。 適用された追加項目は実行メタデータに記録されるため、そのサンドボックスの実行で有効だったブループリントレベルのポリシー項目を監査できます。

動的な変更

動的な変更では、サンドボックスを再起動せずに、実行中のサンドボックスにポリシーの更新を適用します。

警告

openshell policy set は、指定したファイルの内容でサンドボックスのライブポリシーを置き換えます。統合は行いません。 実行中のサンドボックスのライブポリシーは、openclaw-sandbox.yaml のベースラインに、オンボード中に重ねて適用されたすべてのプリセットを加えたものです。 ベースラインのみ、または単一のプリセットのみを含むファイルを適用すると、有効だった他のすべてのプリセットが警告なく削除されます。

オプション 1:プリセットファイルを追加して policy-add を使う(推奨)

これは非破壊的な方法であり、実行中のポリシーに新しいエントリをマージするために、NemoClaw が標準でサポートしている唯一のフローです。

  1. nemoclaw-blueprint/policies/presets/ の下に、プリセット形式の YAML ファイルを作成します。たとえば、nemoclaw-blueprint/policies/presets/influxdb.yaml のようにします。

    preset:
      name: influxdb
      description: "InfluxDB time-series database"
    network_policies:
      influxdb:
        name: influxdb
        endpoints:
          - host: influxdb.internal.example.com
            port: 8086
            protocol: rest
            enforcement: enforce
            rules:
              - allow: { method: GET, path: "/**" }
              - allow: { method: POST, path: "/api/v2/write" }
        binaries:
          - { path: /usr/bin/curl }
    
  2. 実行中のサンドボックスに適用します。

    $ nemoclaw my-assistant policy-add
    

    NemoClaw は openshell policy get --full を使って現在のポリシーを読み取り、プリセットの network_policies を構造的にマージして、マージ後の結果を書き戻します。 既存のプリセットとベースラインはそのまま維持されます。 presets/ 内のプリセットファイルも、サンドボックスを再作成しても保持されます。

オプション 2:OpenShell でスナップショットを作成、編集、設定する

この方法は、NemoClaw のソースツリーの下にファイルを追加できない場合にのみ使用してください。 適用するファイルでオンボーディング時に重ねられたプリセットを保持できるよう、openclaw-sandbox.yaml ではなく、現在のポリシーから始める必要があります。

$ openshell policy get --full my-assistant > live-policy.yaml

live-policy.yaml を編集して、既存の version フィールドを維持しながら、network_policies: の下にエントリを追加し、その後、適用します。

$ openshell policy set --policy live-policy.yaml my-assistant
動的変更の適用範囲

動的変更は現在のセッションにのみ適用されます。 サンドボックスを停止すると、実行中のポリシーは、openclaw-sandbox.yaml とサンドボックス用に記録されたプリセットから構成されたベースラインにリセットされます。 サンドボックスを再作成してもカスタムポリシーを維持するには、リポジトリにプリセットファイルを含める(上記のオプション 1。presets/ 内のファイルは保持されます)か、openclaw-sandbox.yaml を編集して nemoclaw onboard を再実行してください。

リクエストを対話的に承認する

一時的なアクセスの場合は、ベースラインポリシーを編集する代わりに、OpenShell TUI でブロックされたリクエストを承認できます。

$ openshell term

これは、宛先を恒久的なプリセットまたはカスタムポリシーファイルに含めるかどうかを決める前に、その宛先をテストしたい場合に便利です。

ポリシープリセット

NemoClaw には、一般的な統合向けのプリセットポリシーファイルが nemoclaw-blueprint/policies/presets/ に同梱されています。 プリセットをそのまま適用するか、カスタムポリシーの出発点となるテンプレートとして使用できます。 インストール後の手順付きの例については、一般的な統合ポリシーの例を参照してください。

オンボーディング時に選択するポリシーティア(nemoclaw-user-reference スキルを使用)によって、デフォルトで有効になるプリセットが決まります。 ティアを選択した後に表示されるインタラクティブなプリセット画面で、個々のプリセットを追加または削除できます。

利用可能なプリセット:

プリセットエンドポイント
braveBrave Search API
brewHomebrew(Linuxbrew)パッケージマネージャー
discordDiscord API、ゲートウェイ、CDN へのアクセス
githubGitHub および GitHub REST API
huggingfaceHugging Face Hub(ダウンロード専用)および推論ルーター
jiraAtlassian Jira API
local-inferenceホストゲートウェイ経由のローカル Ollama および vLLM
npmnpm および Yarn レジストリ
openclaw-pricingOpenClaw のモデル料金情報の取得(LiteLLM および OpenRouter)
outlookMicrosoft 365 および Outlook
pypiPython Package Index
slackSlack API および Webhook
telegramTelegram Bot API
wechatWeChat(個人向け)iLink Bot API(実験的)
whatsappWhatsApp Web メッセージング(実験的)

実行中のサンドボックスにプリセットを適用するには:

$ nemoclaw <name> policy-add

注:

プリセット名を省略すると、プリセットの選択は対話形式で行われます。 スクリプト化されたワークフローでは、--yes とともにプリセット名を指定してください。

たとえば、実行中のサンドボックスに PyPI へのアクセスを対話形式で追加するには:

$ nemoclaw my-assistant policy-add

サンドボックスに適用されているプリセットを一覧表示するには:

$ nemoclaw <name> policy-list

ベースラインにプリセットを含めるには、そのエントリーを openclaw-sandbox.yaml にマージし、nemoclaw onboard を再実行してください。

注:

openshell policy set --policy <file> <sandbox-name> コマンドは生のポリシーファイルを操作するため、プリセット YAML ファイルで使用される preset: メタデータブロックは受け付けません。 プリセットには nemoclaw <name> policy-add を使用してください。

スクリプト化されたワークフローでは、policy-add と policy-remove は位置引数としてプリセット名を受け付けます:

$ nemoclaw my-assistant policy-add pypi --yes
$ nemoclaw my-assistant policy-remove pypi --yes

環境変数から同じフローを実行するには、--yes の代わりに NEMOCLAW_NON_INTERACTIVE=1 を設定してください。 フラグの詳細については、「コマンド」(nemoclaw-user-reference スキルを使用)を参照してください。

nemoclaw <name> rebuild は、再作成されたサンドボックスにすべてのポリシープリセットを再適用するため、エージェントのバージョンをアップグレードしても、手動で再適用することなくプリセットを維持できます。

カスタムプリセットファイル

ベースラインを編集したり openshell policy set に切り替えたりすることなく、ユーザーが作成したプリセット YAML を実行中のサンドボックスに適用できます。

作成

カスタムプリセットは、nemoclaw-blueprint/policies/presets/ にある組み込みプリセットと同じ形式に従います:

preset:
  name: my-internal-api
  description: "Internal service"
network_policies:
  my-internal-api:
    name: my-internal-api
    endpoints:
      - host: api.example.internal
        port: 443
        protocol: rest
        enforcement: enforce
        rules:
          - allow: { method: GET, path: "/**" }
    binaries:
      - { path: /usr/local/bin/node }

トップレベルの preset.name は、小文字の RFC 1123 ラベル(英字、数字、ハイフン)である必要があり、slack や pypi などの組み込みプリセット名と重複してはいけません。 名前の重複が原因で NemoClaw がファイルの適用を拒否する場合は、preset.name を変更してください。

単一ファイルを適用する
$ nemoclaw my-assistant policy-add --from-file ./presets/my-internal-api.yaml

適用せずにエンドポイントをプレビューするには --dry-run を使用します。また、--yes を指定するか NEMOCLAW_NON_INTERACTIVE=1 をエクスポートすると、確認プロンプトをスキップできます。

ディレクトリ内のすべてのファイルを適用する
$ nemoclaw my-assistant policy-add --from-dir ./presets/ --yes

ファイルは辞書順で処理されます。 最初に失敗した時点で処理は停止します。すでに適用されたプリセットはロールバックされません。 失敗したファイルを修正し、コマンドを再実行して続行してください。

警告:

カスタムプリセットのホストは NemoClaw のレビュー手順を迂回し、サンドボックスの外向き通信を任意の宛先に拡大する可能性があります。 カスタムプリセット内のすべてのホストを、特にチーム外から入手したファイルの場合は、適用前に確認してください。

カスタムプリセットの削除手順について詳しくは、references/customize-network-policy-details.md を参照してください。

参考資料

  • references/integration-policy-examples.md — メンテナンス対象の NemoClaw ポリシープリセットについて、Outlook、メッセージングチャネル、GitHub、Jira、Brave Search、パッケージマネージャー、Hugging Face、ローカル推論、OpenShell の承認ワークフローなど、インストール後によく行う連携ポリシーの設定を案内します。
  • サンドボックスの外部通信リクエストを承認または拒否するとき、ブロックされたネットワーク呼び出しを管理するとき、または承認 TUI を使うときは、references/approve-network-requests.md を読み込んでください。TUI でブロックされたエージェントのネットワークリクエストを確認し、承認します。
  • カスタムプリセットの削除手順の詳細が必要な場合は、references/customize-network-policy-details.md を読み込んでください。

関連スキル

  • リアルタイムでオペレーターが承認するには、エージェントのネットワークリクエストを承認または拒否するを参照してください。
  • Outlook、メッセージング、GitHub、Jira、Brave Search、パッケージマネージャー、Hugging Face、ローカル推論など、メンテナンス対象のプリセット例については、一般的な連携ポリシーの例を参照してください。
  • nemoclaw-user-reference — ネットワークポリシー(nemoclaw-user-reference スキルを使用)で、ベースラインポリシーの全リファレンスを確認できます。
  • OpenShell の ポリシースキーマで、YAML ポリシースキーマの全リファレンスを確認できます。
  • OpenShell レイヤーでポリシーを適用、反復、デバッグする方法については、OpenShell の サンドボックスポリシーを参照してください。

コメント