Microsoft Execution Containers

Microsoft Execution Containers (MXC) é uma tecnologia de execução open-source e orientada por políticas para executar cargas de trabalho com permissões de recurso definidas. Pode usar o .NET, TypeScript ou Rust SDK na sua aplicação para selecionar uma carga de trabalho, descrever o que ela pode aceder e executá-la num ambiente de contenção suportado.

Aplicações, agentes e ferramentas de desenvolvimento frequentemente executam código que não criaram ou controlam totalmente, como comandos gerados por IA, ferramentas de terceiros e scripts fornecidos pelos utilizadores. Sem contenção, esse código pode herdar um acesso amplo a ficheiros, credenciais, serviços de rede e outros recursos. O MXC ajuda-te a limitar esse acesso ao que a tarefa exige.

O MXC suporta Windows, Linux e macOS através de backends de contenção específicos da plataforma. Um contentor não significa necessariamente uma máquina virtual ou uma imagem de contentor: uma carga de trabalho pode correr num sandbox de processos do sistema operativo, numa sessão separada ou num ambiente virtualizado. As funcionalidades e restrições disponíveis dependem da versão MXC, backend e host.

Estes artigos do Learn explicam os conceitos e o fluxo de trabalho de integração. A documentação MXC no GitHub fornece SDK detalhado, esquemas, backend e orientações de implementação.

Compreender os conceitos centrais

Concept Meaning
Aplicação anfitrião A sua aplicação ou runtime de agente de confiança, que invoca o SDK, seleciona permissões, fornece entradas e gere os resultados
Carga de trabalho O comando, script ou processo que é executado em contenção
Policy Uma configuração que descreve o acesso a recursos que permite, como ficheiros legíveis, diretórios de saída graváveis, destinos de rede e acesso à interface de utilizador
Configuração de execução A política, juntamente com o comando, diretório de trabalho, definições de tempo de execução e seleção de contenção
Back-end O mecanismo da plataforma que implementa as restrições suportadas (por exemplo, um sandbox de processos do sistema operativo, sessão de utilizador separada ou ambiente virtualizado)

Porquê usar MXC

Tarefas diferentes precisam de recursos diferentes. Um comando de análise de repositório pode precisar de acesso à fonte apenas de leitura e de uma pasta de saída gravável. Uma build também pode precisar de ficheiros de toolchain e downloads de pacotes. Um fluxo de trabalho de longa duração pode precisar de manter um ambiente entre comandos.

O MXC oferece à sua aplicação uma política comum e um modelo de execução, em vez de exigir uma integração separada com cada mecanismo de contenção do sistema operativo. Você pode usá-lo para:

  • Execute comandos, scripts ou ferramentas externas gerados sem conceder à aplicação anfitriã acesso total.
  • Separe as entradas legíveis das saídas graváveis e mantenha as credenciais fora do alcance do workload.
  • Negar o acesso à rede, permitir ligações diretas selecionadas ou usar um proxy HTTP(S) fornecido pela aplicação em backends suportados.
  • Restringir janelas, acesso à área de transferência e entrada sintética de teclado ou ponteiro.
  • Criar e refinar permissões de recursos com o Modo de Aprendizagem para cargas de trabalho Windows ProcessContainer.

A contenção limita o que uma carga de trabalho pode fazer; não torna as instruções geradas, saídas ou ações permitidas fiáveis. Guarde as decisões de política em código de host confiável e valide os resultados antes de a sua aplicação agir sobre eles.

Comece com o MXC

Comece por executar uma carga de trabalho com o SDK MXC. Fornece exemplos em C#, TypeScript e Rust que leem um ficheiro de entrada, escrevem numa pasta de saída dedicada e demonstram uma operação negada.

SDK Package Documentação de orientação detalhada
.NET Microsoft.Mxc.Sdk em NuGet.org Guia do SDK .NET
Node.js / TypeScript @microsoft/mxc-sdk no npm Guia do SDK TypeScript
Ferrugem mxc-sdk em crates.io Guia do SDK Rust

Pode ser difícil prever todos os recursos a que a sua carga de trabalho poderá aceder. O Modo de Aprendizagem pode ajudá-lo a criar uma política de privilégio mínimo no Windows, registando os recursos a que uma aplicação tenta aceder.

Também pode usar um agente de programação para ajudar a adaptar os exemplos. O agente de codificação pode ajudar a explicar as observações, mas certifique-se de rever e aprovar quaisquer alterações às políticas de acesso a recursos.

Como funciona o MXC

O seu host descobre containers backend suportados, cria uma política e um pedido de execução, e inicia a carga de trabalho através do SDK. O MXC traduz essa solicitação para as operações do backend selecionado. O teu host trata então da saída, do código de saída, dos avisos e da limpeza.

Note

Os backends podem ter diferentes propriedades de segurança. Confirme que o ambiente selecionado pode fazer cumprir os controlos exigidos e teste tanto as operações permitidas como as negadas. Consulte arquitetura MXC, suporte à plataforma e notas de lançamento.