Microsoft 実行コンテナー

Microsoft実行コンテナー (MXC) は、定義されたリソースアクセス許可を持つワークロードを実行するための、オープンソースのポリシー駆動型実行テクノロジです。 アプリで .NET、TypeScript、Rust SDK を使用してワークロードを選択し、アクセスできる内容を記述し、サポートされている隔離環境で実行できます。

アプリ、エージェント、開発者ツールは、多くの場合、AI によって生成されたコマンド、サード パーティ製のツール、ユーザーが提供するスクリプトなど、作成または完全に制御していないコードを実行します。 コンテインメントがなければ、そのコードはファイル、資格情報、ネットワーク サービス、およびその他のリソースへの広範なアクセスを継承できます。 MXC は、アクセスをタスクに必要な範囲に制限するのに役立ちます。

MXC では、プラットフォーム固有のコンテナ化バックエンドを通じて、Windows、Linux、および macOS がサポートされます。 コンテナーは必ずしも仮想マシンまたはコンテナー イメージを意味するわけではありません。ワークロードは、オペレーティング システム プロセス サンドボックス、別のセッション、または仮想化された環境で実行できます。 使用可能な機能と制限は、MXC のリリース、バックエンド、ホストによって異なります。

これらの Learn 記事では、概念と統合ワークフローについて説明します。 GitHub上のMXCドキュメントには、詳細なSDK、スキーマ、バックエンド、実装のガイダンスが記載されています。

主要な概念を理解する

概念 Meaning
ホスト アプリ SDK を呼び出し、アクセス許可を選択し、入力を提供し、結果を処理する、信頼されたアプリまたはエージェント ランタイム
Workload コンテインメント下で実行されるコマンド、スクリプト、またはプロセス
Policy 読み取り可能なファイル、書き込み可能な出力ディレクトリ、ネットワーク宛先、UI アクセスなど、許可するリソース アクセスを記述する構成
実行構成 ポリシーと、コマンド、作業ディレクトリ、ランタイム設定、コンテインメントの選択を組み合わせたもの
バックエンド サポートされている制限を適用するプラットフォームの仕組み (オペレーティング システムのプロセス サンドボックス、独立したユーザー セッション、仮想化環境など)

MXC を使用する理由

タスクごとに異なるリソースが必要です。 リポジトリ分析コマンドには、読み取り専用のソース アクセスと 1 つの書き込み可能な出力フォルダーが必要な場合があります。 ビルドには、ツールチェーン ファイルとパッケージのダウンロードが必要な場合もあります。 実行時間の長いワークフローでは、コマンド間で環境を保持することが必要になる場合があります。

MXC を使用すると、オペレーティング システムのコンテインメント機構ごとに個別に対応する必要がなくなり、アプリで共通のポリシーと実行モデルを利用できます。 これを使用すると、次のことができます。

  • ホスト アプリのフル アクセスを許可せずに、生成されたコマンド、スクリプト、または外部ツールを実行します。
  • 読み取り可能な入力を書き込み可能な出力から分離し、認証情報をワークロードからアクセスできない場所に置きます。
  • ネットワーク アクセスを拒否するか、選択した直接接続を許可するか、サポートされているバックエンドでアプリケーション提供の HTTP (S) プロキシを使用します。
  • ウィンドウ、クリップボードへのアクセス、合成キーボードまたはポインターの入力を制限します。
  • Windows ProcessContainer ワークロードの学習モードを使用して、リソースのアクセス許可を作成および調整します。

コンテインメントはワークロードが実行できる操作を制限しますが、生成された指示や出力、許可された操作の信頼性を保証するものではありません。 ポリシー決定は信頼できるホスト コードで行い、アプリがそれらに基づいて動作する前に結果を検証します。

MXC を使い始める

まず、MXC SDK を使用してワークロードを実行する。 入力の読み取り、専用出力フォルダーへの書き込み、拒否された操作のデモンストレーションを行う C#、TypeScript、Rust の例を提供します。

SDK Package 詳細なガイダンス
.NET NuGet.org の Microsoft.Mxc.Sdk .NET SDK ガイド
Node.js/ TypeScript @microsoft/mxc-sdk npm で TypeScript SDK ガイド
Rust mxc-sdk crates.io 上 Rust SDK ガイド

ワークロードがアクセスする必要がある可能性があるすべてのリソースを予測することは困難な場合があります。 学習モードは、ワークロードがアクセスしようとしているリソースを記録することで、Windowsに対する最小特権ポリシーを作成するのに役立ちます。

コーディング エージェントを使用して、例を調整することもできます。 コーディング エージェントは所見を説明するのに役立ちますが、リソース アクセス ポリシーに対する変更を確認して承認してください。

MXC のしくみ

ホストは、サポートされているバックエンド コンテナーを検出し、ポリシーと実行要求を作成し、SDK を使用してワークロードを開始します。 MXC は、その要求を選択したバックエンドの操作に変換します。 その後、ホストは出力、終了状態、警告、クリーンアップを処理します。

Note

バックエンドによってセキュリティ特性が異なる場合があります。 選択した環境で必要な制御を適用できることを確認し、許可された操作と拒否された操作の両方をテストします。 MXC アーキテクチャ、プラットフォームのサポート、リリース ノートを参照してください。