Kontenery wykonawcze Microsoft

Microsoft Execution Containers (MXC) to technologia wykonywania oparta na zasadach typu open source do uruchamiania obciążeń z określonymi uprawnieniami dostępu do zasobów. Możesz użyć zestawu SDK .NET, TypeScript lub Rust w aplikacji, aby wybrać obciążenie robocze, opisać, do czego może uzyskać dostęp, i uruchomić je w obsługiwanym środowisku izolowanym.

Aplikacje, agenci i narzędzia deweloperskie często uruchamiają kod, którego nie stworzyli ani nie kontrolują w pełni, na przykład polecenia generowane przez sztuczną inteligencję, narzędzia firm trzecich i skrypty dostarczane przez użytkowników. Bez izolacji ten kod może dziedziczyć szeroki dostęp do plików, poświadczeń, usług sieciowych i innych zasobów. MXC pomaga ograniczyć ten dostęp tylko do tego, czego wymaga zadanie.

Usługa MXC obsługuje Windows, Linux i macOS za pośrednictwem backendów izolacji specyficznych dla platformy. Kontener nie musi oznaczać maszyny wirtualnej ani obrazu kontenera: obciążenie robocze może działać w piaskownicy procesu systemu operacyjnego, oddzielnej sesji lub w zwirtualizowanym środowisku. Dostępne funkcje i ograniczenia zależą od wersji MXC, zaplecza i hosta.

W tych artykułach Learn opisano pojęcia i przepływ pracy integracji. Dokumentacja MXC na GitHubie zawiera szczegółowe wskazówki dotyczące zestawu SDK, schematu, zaplecza i implementacji.

Poznaj kluczowe pojęcia

Concept Meaning
Aplikacja hosta Zaufana aplikacja lub środowisko uruchomieniowe agenta, które wywołuje zestaw SDK, wybiera uprawnienia, dostarcza dane wejściowe i obsługuje wyniki
Obciążenie Polecenie, skrypt lub proces uruchamiany w izolacji
Policy Konfiguracja opisująca zezwalany dostęp do zasobów, taki jak pliki do odczytu, zapisywalne katalogi wyjściowe, miejsca docelowe sieci i dostęp do interfejsu użytkownika
Konfiguracja wykonywania Zasada razem z poleceniem, katalogiem roboczym, ustawieniami uruchomieniowymi i wyborem mechanizmu izolacji
Zaplecze Mechanizm platformy, który implementuje obsługiwane ograniczenia (np. piaskownica procesu systemu operacyjnego, oddzielna sesja użytkownika lub środowisko zwirtualizowane)

Dlaczego warto używać MXC

Różne zadania wymagają różnych zasobów. Polecenie analizy repozytorium może wymagać dostępu do źródła tylko do odczytu i jednego zapisywalnego folderu wyjściowego. Kompilacja może również wymagać plików łańcucha narzędzi i pobierania pakietów. Dłuższy przepływ pracy może wymagać zachowania środowiska między poleceniami.

MXC zapewnia aplikacji wspólny model zasad i wykonywania zamiast wymagać oddzielnej integracji z każdym mechanizmem izolacji systemu operacyjnego. Możesz z tego korzystać, aby:

  • Uruchom wygenerowane polecenia, skrypty lub narzędzia zewnętrzne bez udzielania pełnego dostępu aplikacji hosta.
  • Oddziel dane wejściowe z możliwością odczytu od zapisywalnych danych wyjściowych i zachowaj poświadczenia poza zasięgiem obciążenia roboczego.
  • Odmów dostępu do sieci, zezwalaj na wybrane połączenia bezpośrednie lub używaj serwera proxy HTTP(S) dostarczonego przez aplikację na obsługiwanych zapleczach.
  • Ogranicz okna, dostęp do schowka oraz syntetyczne dane wejściowe z klawiatury lub wskaźnika.
  • Utwórz i uściślij uprawnienia zasobów za pomocą Learning Mode dla obciążeń Windows ProcessContainer.

Ograniczenie ogranicza możliwości obciążenia roboczego; nie sprawia, że wygenerowane instrukcje, dane wyjściowe ani dozwolone działania są godne zaufania. Podejmowanie decyzji dotyczących zasad pozostaw w zaufanym kodzie hosta i zweryfikuj wyniki, zanim aplikacja podejmie działania na ich podstawie.

Rozpocznij pracę z MXC

Rozpocznij od uruchomienia obciążenia przy użyciu zestawu SDK MXC. Udostępnia przykłady języków C#, TypeScript i Rust, które odczytują dane wejściowe, zapisują w dedykowanym folderze danych wyjściowych i pokazują operację, która jest niedozwolona.

SDK Package Szczegółowe wskazówki
.NET Microsoft.Mxc.Sdk w witrynie NuGet.org Przewodnik po zestawie SDK platformy .NET
Node.js / TypeScript @microsoft/mxc-sdk na npm Przewodnik po zestawie SDK języka TypeScript
Rust mxc-sdk na crates.io Przewodnik po pakiecie SDK Rust

Przewidzenie wszystkich zasobów, do których dostęp może być potrzebny Twojemu obciążeniu, może być trudne. Tryb uczenia może pomóc w utworzeniu zasady najmniejszych uprawnień w systemie Windows, rejestrując zasoby, do których próbuje uzyskać dostęp obciążenie.

Możesz również użyć agenta kodowania, aby dostosować przykłady. Agent kodowania może pomóc wyjaśnić obserwacje, ale upewnij się, że przeglądasz i zatwierdzasz wszelkie zmiany zasad dostępu do zasobów.

Jak działa MXC

Host odnajduje obsługiwane kontenery zaplecza, tworzy politykę i żądanie wykonania oraz uruchamia obciążenie za pomocą zestawu SDK. MXC tłumaczy to żądanie na operacje wybranego backendu. Następnie host obsługuje dane wyjściowe, stan zakończenia, ostrzeżenia i oczyszczanie.

Note

Backendy mogą mieć różne właściwości zabezpieczeń. Upewnij się, że wybrane środowisko może wymusić wymagane mechanizmy kontrolne, i przetestuj zarówno dozwolone, jak i odrzucone operacje. Zobacz architekturę MXC, obsługę platformy i informacje o wydaniu.