Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft Execution Containers (MXC) è una tecnologia di esecuzione open source basata su criteri per l'esecuzione di carichi di lavoro con autorizzazioni di risorsa definite. È possibile usare il .NET, TypeScript o Rust SDK nell'app per selezionare un carico di lavoro, descrivere a cosa può accedere ed eseguirlo in un ambiente di contenimento supportato.
Le app, gli agenti e gli strumenti di sviluppo spesso eseguono codice che non hanno creato o controllato completamente, ad esempio comandi generati dall'intelligenza artificiale, strumenti di terze parti e script forniti dall'utente. Senza contenimento, tale codice può ereditare l'accesso ampio a file, credenziali, servizi di rete e altre risorse. MXC consente di limitare l'accesso a quanto necessario per l'attività.
MXC supporta Windows, Linux e macOS tramite back-end di contenimento specifici della piattaforma. Un contenitore non significa necessariamente una macchina virtuale o un'immagine del contenitore: un workload può essere eseguito in una sandbox del processo del sistema operativo, in una sessione separata o in un ambiente virtualizzato. Le funzionalità e le restrizioni disponibili dipendono dalla versione MXC, dal back-end e dall'host.
Questi articoli di Learn illustrano i concetti e il flusso di lavoro di integrazione. La documentazione di MXC in GitHub fornisce istruzioni dettagliate su SDK, schema, back-end e implementazione.
Capire i concetti fondamentali
| Concetto | Meaning |
|---|---|
| Applicazione host | L'app o il runtime dell'agente attendibile, che richiama l'SDK, seleziona le autorizzazioni, fornisce input e gestisce i risultati |
| Carico di lavoro | Il comando, lo script o il processo eseguito in modalità contenimento |
| Policy | Configurazione che descrive l'accesso alle risorse consentito, ad esempio file leggibili, directory di output scrivibili, destinazioni di rete e accesso all'interfaccia utente |
| Configurazione dell'esecuzione | Il criterio insieme al comando, alla directory di lavoro, alle impostazioni di runtime e alla selezione del contenimento |
| backend | Meccanismo della piattaforma che implementa le restrizioni supportate (ad esempio, una sandbox del processo del sistema operativo, una sessione utente separata o un ambiente virtualizzato) |
Perché usare MXC
Diverse attività richiedono risorse diverse. Un comando di analisi del repository potrebbe richiedere l'accesso all'origine di sola lettura e una cartella di output scrivibile. Una compilazione potrebbe anche richiedere file toolchain e download di pacchetti. Un flusso di lavoro con esecuzione più lunga potrebbe dover conservare un ambiente tra i comandi.
MXC offre all'app un modello di esecuzione e criteri comuni invece di richiedere un'integrazione separata con ogni meccanismo di contenimento del sistema operativo. È possibile usarlo per:
- Eseguire comandi generati, script o strumenti esterni senza concedere all'app host l'accesso completo.
- Separare gli input leggibili dagli output scrivibili e mantenere le credenziali al di fuori della portata del carico di lavoro.
- Negare l'accesso alla rete, consentire connessioni dirette selezionate o usare un proxy HTTP(S) fornito dall'applicazione nei back-end supportati.
- Limita l'accesso alle finestre, agli Appunti e all'input sintetico da tastiera o da puntatore.
- Creare e perfezionare le autorizzazioni delle risorse con Learning Mode per i carichi di lavoro ProcessContainer Windows.
Il contenimento limita le operazioni che un carico di lavoro può eseguire; non rende attendibili istruzioni, output o azioni consentite generate. Mantenere le decisioni relative ai criteri nel codice host attendibile e convalidare i risultati prima che l'app agisca su di essi.
Inizia con MXC
Per iniziare con eseguire un workload con MXC SDK. Fornisce esempi C#, TypeScript e Rust che leggono un input, scrivono in una cartella di output dedicata e illustrano un'operazione negata.
| SDK | Package | Indicazioni dettagliate |
|---|---|---|
| .NET |
Microsoft.Mxc.Sdk su NuGet.org |
Guida a .NET SDK |
| Node.js/TypeScript |
@microsoft/mxc-sdk in npm |
Guida all'SDK TypeScript |
| Rust |
mxc-sdk su crates.io |
Guida all'SDK di Rust |
Può essere difficile prevedere tutte le risorse a cui il carico di lavoro potrebbe dover accedere. La modalità di apprendimento consente di creare criteri con privilegi minimi su Windows registrando le risorse a cui un carico di lavoro tenta di accedere.
È anche possibile usare un assistente di programmazione per adattare gli esempi. L'agente di codifica può aiutare a spiegare le osservazioni, ma assicurati di esaminare e approvare le modifiche apportate ai criteri di accesso alle risorse.
Funzionamento di MXC
L'host individua i contenitori back-end supportati, crea un criterio e una richiesta di esecuzione e avvia il carico di lavoro tramite l'SDK. MXC traduce tale richiesta nelle operazioni del back-end selezionato. L'host gestisce quindi l'output, lo stato di uscita, gli avvisi e la pulizia.
Note
I back-end possono avere proprietà di sicurezza diverse. Verificare che l'ambiente selezionato possa applicare i controlli necessari e testare le operazioni consentite e non consentite. Vedere l'architettura MXC, il supporto della piattaforma e le note sulla versione.
Contenuti correlati
- Avvio rapido: Eseguire un workload con MXC SDK
- Architettura e modelli di contenimento MXC
- Creare/redigere e convalidare un criterio/policy MXC
- Crea e perfeziona i criteri MXC con la modalità di apprendimento
- Opzioni di contenimento MXC e supporto della piattaforma
- Esempi di criteri MXC
- Release MXC
- Repository MXC
- Sicurezza e intelligenza artificiale responsabile per lo sviluppo di Windows