Zabezpieczenia rozszerzeń
W tym artykule opisano podstawy rozszerzeń maszyn wirtualnych dla serwerów z obsługą usługi Azure Arc i szczegółowe informacje na temat dostosowywania ustawień rozszerzeń.
Podstawowe informacje o rozszerzeniach
Rozszerzenia maszyn wirtualnych dla serwerów z obsługą usługi Azure Arc to opcjonalne dodatki umożliwiające inne funkcje, takie jak monitorowanie, zarządzanie poprawkami i wykonywanie skryptów. Rozszerzenia są publikowane przez firmę Microsoft i wybierają inne firmy z witryny Azure Marketplace i przechowywane na kontach magazynu zarządzanych przez firmę Microsoft. Wszystkie rozszerzenia są skanowane pod kątem złośliwego oprogramowania w ramach procesu publikowania. Rozszerzenia serwerów z obsługą usługi Azure Arc są identyczne z rozszerzeniami dostępnymi dla maszyn wirtualnych platformy Azure, zapewniając spójność w środowiskach operacyjnych.
Rozszerzenia są pobierane bezpośrednio z usługi Azure Storage (*.blob.core.windows.net
) w momencie ich zainstalowania lub uaktualnienia, chyba że skonfigurowano prywatne punkty końcowe. Konta magazynu regularnie zmieniają się i nie można przewidzieć z wyprzedzeniem. Gdy są używane prywatne punkty końcowe, rozszerzenia są zamiast tego proxied za pośrednictwem regionalnego adresu URL usługi Azure Arc.
Plik wykazu podpisany cyfrowo jest pobierany oddzielnie od pakietu rozszerzenia i używany do weryfikowania integralności każdego rozszerzenia przed otwarciem lub wykonaniem pakietu rozszerzenia. Jeśli pobrany plik ZIP rozszerzenia nie jest zgodny z zawartością w pliku wykazu, operacja rozszerzenia zostanie przerwana.
Rozszerzenia mogą podjąć ustawienia w celu dostosowania lub skonfigurowania instalacji, takich jak adresy URL serwera proxy lub klucze interfejsu API w celu połączenia agenta monitorowania z usługą w chmurze. Ustawienia rozszerzenia są dostępne w dwóch wersjach: ustawienia zwykłe i ustawienia chronione. Ustawienia chronione nie są utrwalane na platformie Azure i są szyfrowane podczas magazynowania na komputerze lokalnym.
Wszystkie operacje rozszerzenia pochodzą z platformy Azure za pośrednictwem wywołania interfejsu API, interfejsu wiersza polecenia, programu PowerShell lub akcji portalu. Ten projekt gwarantuje, że każda akcja instalowania, aktualizowania lub uaktualniania rozszerzenia na serwerze jest rejestrowana w dzienniku aktywności platformy Azure. Agent usługi Azure Connected Machine umożliwia lokalne usuwanie rozszerzeń na potrzeby rozwiązywania problemów i oczyszczania. Jeśli jednak rozszerzenie zostanie usunięte lokalnie, a usługa nadal oczekuje, że maszyna ma zainstalowane rozszerzenie, zostanie ponownie zainstalowany przy następnej synchronizacji menedżera rozszerzeń z platformą Azure.
Wykonywanie skryptu
Menedżer rozszerzeń może służyć do uruchamiania skryptów na maszynach przy użyciu rozszerzenia niestandardowego skryptu lub uruchom polecenie. Domyślnie te skrypty będą uruchamiane w kontekście użytkownika menedżera rozszerzeń — system lokalny w systemie Windows lub katalogu głównym w systemie Linux — co oznacza, że te skrypty będą miały nieograniczony dostęp do maszyny. Jeśli nie zamierzasz używać tych funkcji, możesz zablokować je przy użyciu listy dozwolonych lub listy zablokowanych. Przykład znajduje się w następnej sekcji.
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 i listy zablokowanych
Agent usługi Azure Connected Machine obsługuje listę dozwolonych i listę zablokowanych, aby ograniczyć, które rozszerzenia można zainstalować na maszynie. Listy dozwolonych są wyłączne, co oznacza, że można zainstalować tylko określone rozszerzenia uwzględnione na liście. Listy blokowe są wykluczane, co oznacza, że można zainstalować dowolne rozszerzenia, z wyjątkiem tych rozszerzeń. Listy dozwolonych są preferowane do listy zablokowanych, ponieważ z założenia blokują wszelkie nowe rozszerzenia, które staną się dostępne w przyszłości. Listy dozwolonych i listy zablokowanych są konfigurowane lokalnie na poszczególnych serwerach. Dzięki temu nikt, nawet użytkownik z uprawnieniami właściciela lub administratora globalnego na platformie Azure, może zastąpić reguły zabezpieczeń, próbując zainstalować nieautoryzowane rozszerzenie. Jeśli ktoś spróbuje zainstalować nieautoryzowane rozszerzenie, menedżer rozszerzeń odmówi jej zainstalowania i oznaczy raport instalacji rozszerzenia niepowodzeniem na platformie Azure. Listy dozwolonych i listy zablokowanych można skonfigurować w dowolnym momencie po zainstalowaniu agenta, w tym przed połączeniem agenta z platformą Azure.
Jeśli na agencie nie skonfigurowano listy dozwolonych lub listy zablokowanych, wszystkie rozszerzenia są 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 połączonej maszyny platformy Azure 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"
Oto przykładowa lista zablokowanych, która blokuje wszystkie rozszerzenia z możliwością uruchamiania dowolnych skryptów:
azcmagent config set extensions.blocklist “Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation.HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux”
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/None
listy 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 aktualizacji zabezpieczeń systemu Windows Server 2012 (ESU) bez konieczności używania innych rozszerzeń.
azcmagent config set extensions.allowlist "Allow/None"
Za pomocą zasad platformy Azure można również ograniczyć, które rozszerzenia można zainstalować. Zasady platformy Azure mają zaletę konfigurowania w chmurze i nie wymagają zmiany na każdym serwerze, jeśli musisz zmienić listę zatwierdzonych rozszerzeń. Jednak każda osoba z uprawnieniami do modyfikowania przypisań zasad może zastąpić lub usunąć tę ochronę. Jeśli zdecydujesz się używać zasad platformy Azure do ograniczania rozszerzeń, sprawdź, które konta w organizacji mają uprawnienia do edytowania przypisań zasad i czy odpowiednie środki kontroli zmian zostały wprowadzone.
Najlepsze rozwiązania dotyczące zablokowanych maszyn
Podczas konfigurowania agenta usługi Azure Connected Machine z ograniczonym zestawem funkcji należy wziąć pod uwagę mechanizmy, których ktoś może użyć do usunięcia tych ograniczeń i zaimplementowania odpowiednich mechanizmów kontroli. Każdy, kto może uruchamiać polecenia jako administrator lub użytkownik główny na serwerze, może zmienić konfigurację agenta połączonej maszyny platformy Azure. 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
Usługa Log Analytics i zależność (tylko usługa Azure Monitor VM Insights)
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:
- full — tryb domyślny. Umożliwia to korzystanie ze wszystkich funkcji agenta.
- 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
Wyłączanie menedżera rozszerzeń
Jeśli nie musisz używać rozszerzeń w usłudze Azure Arc, możesz również całkowicie wyłączyć menedżera rozszerzeń. Menedżera rozszerzeń można wyłączyć za pomocą następującego polecenia (uruchom lokalnie na każdej maszynie):
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.