Omówienie zabezpieczeń serwerów z obsługą usługi Azure Arc

W tym artykule opisano konfigurację zabezpieczeń i zagadnienia, które należy ocenić przed wdrożeniem serwerów z obsługą usługi Azure Arc w przedsiębiorstwie.

Tożsamość i kontrola dostępu

Kontrola dostępu oparta na rolach platformy Azure służy do kontrolowania, które konta mogą wyświetlać serwer z obsługą usługi Azure Arc i zarządzać nim. Na stronie Kontrola dostępu (zarządzanie dostępem i tożsamościami) w witrynie Azure Portal możesz sprawdzić, kto ma dostęp do serwera z obsługą usługi Azure Arc.

Azure Arc-enabled server access control

Użytkownicy i aplikacje, którym udzielono dostępu współautora lub roli administratora do zasobu, mogą wprowadzać zmiany w zasobie, w tym wdrażanie lub usuwanie rozszerzeń na maszynie. Rozszerzenia mogą zawierać dowolne skrypty uruchamiane w uprzywilejowanym kontekście, dlatego należy wziąć pod uwagę każdy współautor zasobu platformy Azure, aby być administratorem pośrednim serwera.

Rola dołączania maszyny Połączenie ed platformy Azure jest dostępna na potrzeby dołączania na dużą skalę i może odczytywać lub tworzyć nowe serwery z obsługą usługi Azure Arc na platformie Azure. Nie można jej używać do usuwania serwerów, które zostały już zarejestrowane lub zarządzają rozszerzeniami. Najlepszym rozwiązaniem jest przypisanie tej roli tylko do jednostki usługi Microsoft Entra używanej do dołączania maszyn na dużą skalę.

Użytkownicy jako członek roli Administracja istratora zasobów maszyny platformy Azure Połączenie mogą odczytywać, modyfikować, ponownie dołączać i usuwać maszynę. Ta rola jest przeznaczona do obsługi zarządzania serwerami z obsługą usługi Azure Arc, ale nie innymi zasobami w grupie zasobów lub subskrypcji.

Zabezpieczenia i uprawnienia agenta

Aby zarządzać agentem usługi Azure Połączenie ed Machine (azcmagent) w systemie Windows, konto użytkownika musi być członkiem lokalnej grupy Administracja istratorów. W systemie Linux musisz mieć uprawnienia dostępu głównego.

Agent azure Połączenie ed Machine składa się z trzech usług, które są uruchamiane na maszynie.

  • Usługa Hybrid Instance Metadata Service (himds) jest odpowiedzialna za wszystkie podstawowe funkcje usługi Arc. Obejmuje to wysyłanie pulsów do platformy Azure, uwidacznianie lokalnej usługi metadanych wystąpienia dla innych aplikacji, aby dowiedzieć się więcej o identyfikatorze zasobu platformy Azure maszyny i pobrać tokeny firmy Microsoft Entra w celu uwierzytelnienia w innych usługach platformy Azure. Ta usługa działa jako nieuprzywilejowane konto usługi wirtualnej (NT SERVICE\himds) w systemie Windows i jako użytkownik himds w systemie Linux. Konto usługi wirtualnej wymaga logowania jako usługi bezpośrednio w systemie Windows.

  • Usługa konfiguracji gościa (GCService) jest odpowiedzialna za ocenę usługi Azure Policy na maszynie.

  • Usługa rozszerzenia konfiguracji gościa (ExtensionService) jest odpowiedzialna za instalowanie, uaktualnianie i usuwanie rozszerzeń (agentów, skryptów lub innego oprogramowania) na maszynie.

Usługi konfiguracji gościa i rozszerzenia działają jako system lokalny w systemie Windows i jako główny w systemie Linux.

Mechanizmy zabezpieczeń agenta lokalnego

Począwszy od agenta w wersji 1.16, opcjonalnie można ograniczyć rozszerzenia, które można zainstalować na serwerze i wyłączyć konfigurację gościa. Te kontrolki mogą być przydatne podczas łączenia serwerów z platformą Azure w jednym celu, takich jak zbieranie dzienników zdarzeń, bez zezwalania na korzystanie z innych funkcji zarządzania na serwerze.

Te mechanizmy zabezpieczeń można skonfigurować tylko przez uruchomienie polecenia na samym serwerze i nie można go zmodyfikować z platformy Azure. Takie podejście zachowuje intencję administratora serwera podczas włączania scenariuszy zdalnego zarządzania za pomocą usługi Azure Arc, ale także oznacza, że zmiana ustawienia jest trudniejsza, jeśli później zdecydujesz się je zmienić. Ta funkcja jest przeznaczona dla serwerów poufnych (na przykład kontrolerów domena usługi Active Directory, serwerów obsługujących dane płatności i serwerów podlegających ścisłym środkom kontroli zmian). W większości innych przypadków nie jest konieczne zmodyfikowanie tych ustawień.

Listy dozwolonych rozszerzeń i listy zablokowanych

Aby ograniczyć, które rozszerzenia można zainstalować na serwerze, można skonfigurować listy rozszerzeń, które mają być dozwolone i blokowane na serwerze. Menedżer rozszerzeń ocenia wszystkie żądania dotyczące instalowania, aktualizowania lub uaktualniania rozszerzeń względem listy dozwolonych i listy zablokowanych w celu określenia, czy rozszerzenie można zainstalować na serwerze. Żądania usuwania są zawsze dozwolone.

Najbezpieczniejszą opcją jest jawne zezwolenie na instalowanie rozszerzeń, których oczekujesz. Każde rozszerzenie, które nie znajduje się na liście dozwolonych, jest automatycznie blokowane. Aby skonfigurować agenta usługi Azure Połączenie ed Machine tak, aby zezwalał tylko na agenta usługi Azure Monitor dla systemu Linux, uruchom następujące polecenie na każdym serwerze:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Możesz zablokować jedno lub więcej rozszerzeń, dodając je do listy zablokowanych. Jeśli rozszerzenie znajduje się zarówno na liście dozwolonych, jak i na liście zablokowanych, jest zablokowane. Aby zablokować rozszerzenie niestandardowego skryptu dla systemu Linux, uruchom następujące polecenie:

azcmagent config set extensions.blocklist "Microsoft.Azure.Extensions/CustomScript"

Określ rozszerzenia z ich wydawcą i typem oddzielone ukośnikiem /. Zapoznaj się z listą najpopularniejszych rozszerzeń w dokumentacji lub wyświetl listę rozszerzeń maszyn wirtualnych zainstalowanych już na serwerze w witrynie Portal, programie Azure PowerShell lub interfejsie wiersza polecenia platformy Azure.

W tabeli opisano zachowanie podczas wykonywania operacji rozszerzenia względem agenta, który ma skonfigurowaną listę dozwolonych lub listę zablokowanych.

Operacja Na liście dozwolonych Na liście zablokowanych Zarówno na liście dozwolonych, jak i na liście zablokowanych Nie ma żadnej listy, ale skonfigurowano listę dozwolonych
Instalowanie rozszerzenia Dozwolone Zablokowano Zablokowano Zablokowano
Aktualizowanie (ponowne konfigurowanie) rozszerzenia Dozwolone Zablokowano Zablokowano Zablokowano
Uaktualnianie rozszerzenia Dozwolone Zablokowano Zablokowano Zablokowano
Usuwanie rozszerzenia Dozwolone Dozwolone Dozwolone Dozwolone

Ważne

Jeśli rozszerzenie jest już zainstalowane na serwerze przed skonfigurowaniem listy dozwolonych lub listy zablokowanych, nie zostanie ono automatycznie usunięte. Twoim zadaniem jest usunięcie rozszerzenia z platformy Azure w celu całkowitego usunięcia go z maszyny. Żądania usuwania są zawsze akceptowane w celu obsługi tego scenariusza. Po usunięciu lista dozwolonych i lista zablokowanych określają, czy zezwolić na przyszłe próby instalacji.

Począwszy od agenta w wersji 1.35, istnieje specjalna wartość Allow/Nonelisty dozwolonych, która instruuje menedżera rozszerzeń do uruchomienia, ale nie zezwala na instalowanie żadnych rozszerzeń. Jest to zalecana konfiguracja w przypadku używania usługi Azure Arc do dostarczania rozszerzonych Aktualizacje zabezpieczeń systemu Windows Server 2012 (ESU) bez zamiaru używania innych rozszerzeń.

azcmagent config set extensions.allowlist "Allow/None"

Włączanie lub wyłączanie konfiguracji gościa

Funkcja konfiguracji gościa usługi Azure Policy umożliwia inspekcję i konfigurowanie ustawień na serwerze z platformy Azure. Jeśli nie chcesz zezwalać na tę funkcję, możesz wyłączyć uruchamianie konfiguracji gościa na serwerze, uruchamiając następujące polecenie:

azcmagent config set guestconfiguration.enabled false

Po wyłączeniu konfiguracji gościa wszystkie zasady konfiguracji gościa przypisane do maszyny na platformie Azure są wyświetlane jako niezgodne. Rozważ utworzenie wykluczenia dla tych maszyn lub zmianę zakresu przypisań zasad, jeśli nie chcesz widzieć tych maszyn zgłoszonych jako niezgodne.

Włączanie lub wyłączanie menedżera rozszerzeń

Menedżer rozszerzeń jest odpowiedzialny za instalowanie, aktualizowanie i usuwanie rozszerzeń maszyn wirtualnych na serwerze. Menedżer rozszerzeń można wyłączyć, aby zapobiec zarządzaniu rozszerzeniami na serwerze, ale zalecamy użycie listy dozwolonych i zablokowanych w celu uzyskania bardziej szczegółowej kontroli.

azcmagent config set extensions.enabled false

Wyłączenie menedżera rozszerzeń nie spowoduje usunięcia żadnych rozszerzeń zainstalowanych już na serwerze. Rozszerzenia hostowane we własnych usługach systemu Windows lub Linux, takich jak agent usługi Log Analytics, mogą nadal działać nawet wtedy, gdy menedżer rozszerzeń jest wyłączony. Inne rozszerzenia hostowane przez samego menedżera rozszerzeń, takie jak agent usługi Azure Monitor, nie są uruchamiane, jeśli menedżer rozszerzeń jest wyłączony. Przed wyłączeniem menedżera rozszerzeń należy usunąć wszystkie rozszerzenia, aby upewnić się, że żadne rozszerzenia nie będą nadal działać na serwerze.

Najlepsze rozwiązania dotyczące zablokowanych maszyn

Podczas konfigurowania agenta usługi Azure Połączenie ed Machine z ograniczonym zestawem możliwości należy wziąć pod uwagę mechanizmy, których ktoś może użyć do usunięcia tych ograniczeń i zaimplementowania odpowiednich kontrolek. Każdy, kto może uruchamiać polecenia jako administrator lub użytkownik główny na serwerze, może zmienić konfigurację agenta usługi Azure Połączenie ed Machine. Rozszerzenia i zasady konfiguracji gościa są wykonywane w kontekstach uprzywilejowanych na serwerze i w związku z tym mogą być w stanie zmienić konfigurację agenta. Jeśli zastosujesz mechanizmy zabezpieczeń agenta lokalnego w celu zablokowania agenta, firma Microsoft zaleca następujące najlepsze rozwiązania, aby upewnić się, że tylko administratorzy serwera lokalnego mogą zaktualizować konfigurację agenta:

  • Używaj list dozwolonych dla rozszerzeń zamiast listy zablokowanych, jeśli jest to możliwe.
  • Nie dołączaj rozszerzenia niestandardowego skryptu do listy dozwolonych rozszerzeń, aby zapobiec wykonywaniu dowolnych skryptów, które mogą zmienić konfigurację agenta.
  • Wyłącz konfigurację gościa, aby uniemożliwić używanie niestandardowych zasad konfiguracji gościa, które mogą zmienić konfigurację agenta.

Przykładowa konfiguracja scenariuszy monitorowania i zabezpieczeń

Często używa się usługi Azure Arc do monitorowania serwerów za pomocą usług Azure Monitor i Microsoft Sentinel i zabezpieczania ich przy użyciu Microsoft Defender dla Chmury. Ta sekcja zawiera przykłady dotyczące blokowania agenta w celu obsługi tylko scenariuszy monitorowania i zabezpieczeń.

Tylko agent usługi Azure Monitor

Na serwerach z systemem Windows uruchom następujące polecenia w konsoli poleceń z podwyższonym poziomem uprawnień:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Na serwerach z systemem Linux uruchom następujące polecenia:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics i zależność (tylko Szczegółowe informacje maszyny wirtualnej usługi Azure Monitor)

Ta konfiguracja dotyczy starszych agentów usługi Log Analytics i agenta zależności.

Na serwerach z systemem Windows uruchom następujące polecenia w konsoli z podwyższonym poziomem uprawnień:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Na serwerach z systemem Linux uruchom następujące polecenia:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Monitorowanie i zabezpieczenia

Microsoft Defender dla Chmury wdraża rozszerzenia na serwerze w celu zidentyfikowania oprogramowania podatnego na zagrożenia na serwerze i włączenia Ochrona punktu końcowego w usłudze Microsoft Defender (jeśli skonfigurowano). Microsoft Defender dla Chmury również używa konfiguracji gościa na potrzeby funkcji zgodności z przepisami. Ponieważ niestandardowe przypisanie konfiguracji gościa może służyć do cofnięcia ograniczeń agenta, należy dokładnie ocenić, czy potrzebujesz funkcji zgodności z przepisami, a w związku z tym konfiguracja gościa ma być włączona na maszynie.

Na serwerach z systemem Windows uruchom następujące polecenia w konsoli poleceń z podwyższonym poziomem uprawnień:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Na serwerach z systemem Linux uruchom następujące polecenia:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Tryby agenta

Prostszym sposobem skonfigurowania lokalnych mechanizmów kontroli zabezpieczeń na potrzeby monitorowania i scenariuszy zabezpieczeń jest użycie trybu monitorowania dostępnego w wersji 1.18 i nowszej. Tryby to wstępnie zdefiniowane konfiguracje agenta konfiguracji dozwolonych rozszerzeń i agenta konfiguracji gościa obsługiwanego przez firmę Microsoft. W miarę dostępności nowych rozszerzeń, które umożliwiają monitorowanie scenariuszy, firma Microsoft zaktualizuje listę dozwolonych i konfigurację agenta, aby uwzględnić lub wykluczyć nowe funkcje zgodnie z potrzebami.

Istnieją dwa tryby do wyboru:

  1. full — tryb domyślny. Umożliwia to korzystanie ze wszystkich funkcji agenta.
  2. monitor — tryb ograniczony, który wyłącza agenta zasad konfiguracji gościa i zezwala tylko na korzystanie z rozszerzeń związanych z monitorowaniem i zabezpieczeniami.

Aby włączyć tryb monitorowania, uruchom następujące polecenie:

azcmagent config set config.mode monitor

Możesz sprawdzić bieżący tryb agenta i dozwolone rozszerzenia za pomocą następującego polecenia:

azcmagent config list

W trybie monitorowania nie można zmodyfikować listy dozwolonych rozszerzeń ani listy zablokowanych. Jeśli musisz zmienić jedną z list, zmień agenta z powrotem na tryb pełny i określ własną listę dozwolonych i zablokowanych.

Aby zmienić agenta z powrotem na tryb pełny, uruchom następujące polecenie:

azcmagent config set config.mode full

Używanie tożsamości zarządzanej z serwerami z obsługą usługi Azure Arc

Domyślnie tożsamość przypisana przez system Entra firmy Microsoft używana przez usługę Arc może służyć tylko do aktualizowania stanu serwera z obsługą usługi Azure Arc na platformie Azure. Na przykład ostatnio widziany stan pulsu. Opcjonalnie możesz przypisać inne role do tożsamości, jeśli aplikacja na serwerze używa tożsamości przypisanej przez system w celu uzyskania dostępu do innych usług platformy Azure. Aby dowiedzieć się więcej na temat konfigurowania tożsamości zarządzanej przypisanej przez system w celu uzyskania dostępu do zasobów platformy Azure, zobacz Uwierzytelnianie względem zasobów platformy Azure przy użyciu serwerów z obsługą usługi Azure Arc.

Dostęp do usługi metadanych wystąpienia hybrydowego można uzyskać za pomocą dowolnej aplikacji działającej na maszynie, ale tylko autoryzowane aplikacje mogą zażądać tokenu usługi Microsoft Entra dla tożsamości przypisanej przez system. Podczas pierwszej próby uzyskania dostępu do identyfikatora URI tokenu usługa generuje losowo wygenerowany kryptograficzny obiekt blob w lokalizacji w systemie plików, który może odczytywać tylko zaufane osoby wywołujące. Obiekt wywołujący musi następnie odczytać plik (udowadniając, że ma odpowiednie uprawnienia) i ponowić żądanie z zawartością pliku w nagłówku autoryzacji, aby pomyślnie pobrać token entra firmy Microsoft.

  • W systemie Windows obiekt wywołujący musi być członkiem lokalnej grupy Administracja istratorów lub grupy Aplikacje rozszerzenia agenta hybrydowego, aby odczytać obiekt blob.

  • W systemie Linux obiekt wywołujący musi być członkiem grupy himds , aby odczytać obiekt blob.

Aby dowiedzieć się więcej na temat używania tożsamości zarządzanej z serwerami z obsługą usługi Arc do uwierzytelniania i uzyskiwania dostępu do zasobów platformy Azure, zobacz poniższy film wideo.

Korzystanie z szyfrowania dysków

Agent usługi Azure Połączenie ed Machine używa uwierzytelniania klucza publicznego do komunikowania się z usługą platformy Azure. Po dołączeniu serwera do usługi Azure Arc klucz prywatny jest zapisywany na dysku i używany za każdym razem, gdy agent komunikuje się z platformą Azure. W przypadku kradzieży klucz prywatny może być używany na innym serwerze do komunikowania się z usługą i działać tak, jakby był to oryginalny serwer. Obejmuje to uzyskiwanie dostępu do tożsamości przypisanej przez system i wszystkich zasobów, do których ma dostęp tożsamość. Plik klucza prywatnego jest chroniony, aby zezwolić tylko na dostęp do konta himds w celu jego odczytania. Aby zapobiec atakom w trybie offline, zdecydowanie zalecamy użycie pełnego szyfrowania dysku (na przykład funkcji BitLocker, narzędzia dm-crypt itp.) na woluminie systemu operacyjnego serwera.

Następne kroki

  • Przed oceną lub włączeniem serwerów z obsługą usługi Azure Arc na wielu maszynach hybrydowych przejrzyj Połączenie omówienie agenta maszyny, aby zrozumieć wymagania, szczegóły techniczne dotyczące agenta i metody wdrażania.

  • Zapoznaj się z przewodnikiem planowania i wdrażania, aby zaplanować wdrażanie serwerów z obsługą usługi Azure Arc w dowolnej skali i zaimplementować scentralizowane zarządzanie i monitorowanie.