Overzicht van beveiliging van servers met Azure Arc

In dit artikel worden de beveiligingsconfiguratie en overwegingen beschreven die u moet evalueren voordat u servers met Azure Arc in uw onderneming implementeert.

Identiteits- en toegangsbeheer

Op rollen gebaseerd toegangsbeheer van Azure wordt gebruikt om te bepalen welke accounts uw server met Azure Arc kunnen zien en beheren. Op de pagina Toegangsbeheer (IAM) in Azure Portal kunt u controleren wie toegang heeft tot uw server met Azure Arc.

Azure Arc-enabled server access control

Gebruikers en toepassingen waaraan inzender of beheerdersrol toegang tot de resource is verleend, kunnen wijzigingen aanbrengen in de resource, waaronder het implementeren of verwijderen van extensies op de computer. Extensies kunnen willekeurige scripts bevatten die worden uitgevoerd in een bevoorrechte context, dus overweeg een bijdrager in de Azure-resource als indirecte beheerder van de server te zijn.

De azure Verbinding maken ed Machine Onboarding-rol is beschikbaar voor onboarding op schaal en kan alleen nieuwe servers met Azure Arc in Azure lezen of maken. Het kan niet worden gebruikt om servers die al zijn geregistreerd of extensies te beheren, te verwijderen. Als best practice raden we u aan deze rol alleen toe te wijzen aan de Microsoft Entra-service-principal die wordt gebruikt voor het onboarden van machines op schaal.

Gebruikers als lid van de azure Verbinding maken ed Machine Resource Beheer istrator kunnen een machine lezen, wijzigen, opnieuw aan boord plaatsen en verwijderen. Deze rol is ontworpen ter ondersteuning van het beheer van servers met Azure Arc, maar niet voor andere resources in de resourcegroep of het abonnement.

Beveiliging en machtigingen van agents

Als u de Azure Verbinding maken ed Machine-agent (azcmagent) in Windows wilt beheren, moet uw gebruikersaccount lid zijn van de lokale groep Beheer istrators. In Linux moet u toegangsmachtigingen voor de hoofdmap hebben.

De Azure Verbinding maken ed Machine-agent bestaat uit drie services die op uw computer worden uitgevoerd.

  • De service Hybrid Instance Metadata Service (himds) is verantwoordelijk voor alle kernfunctionaliteit van Arc. Dit omvat het verzenden van heartbeats naar Azure, het beschikbaar maken van een lokale instantiemetagegevensservice voor andere apps voor meer informatie over de Azure-resource-id van de machine en het ophalen van Microsoft Entra-tokens voor verificatie bij andere Azure-services. Deze service wordt uitgevoerd als een niet-gemachtigd virtueel serviceaccount (NT SERVICE\himds) in Windows, en als de gebruiker met himds in Linux. Voor het virtuele serviceaccount is de aanmelding als een service rechtstreeks in Windows vereist.

  • De GCService (Guest Configuration Service) is verantwoordelijk voor het evalueren van Azure Policy op de computer.

  • De Guest Configuration Extension-service (ExtensionService) is verantwoordelijk voor het installeren, upgraden en verwijderen van extensies (agents, scripts of andere software) op de computer.

De gastconfiguratie- en extensieservices worden uitgevoerd als lokaal systeem in Windows en als root in Linux.

Beveiligingsmaatregelen voor lokale agents

Vanaf agentversie 1.16 kunt u eventueel de extensies beperken die op uw server kunnen worden geïnstalleerd en gastconfiguratie uitschakelen. Deze besturingselementen kunnen handig zijn bij het verbinden van servers met Azure voor één doel, zoals het verzamelen van gebeurtenislogboeken, zonder dat andere beheermogelijkheden op de server kunnen worden gebruikt.

Deze beveiligingsmaatregelen kunnen alleen worden geconfigureerd door een opdracht uit te voeren op de server zelf en kunnen niet worden gewijzigd vanuit Azure. Deze benadering behoudt de intentie van de serverbeheerder bij het inschakelen van scenario's voor extern beheer met Azure Arc, maar betekent ook dat het wijzigen van de instelling moeilijker is als u later besluit deze te wijzigen. Deze functie is bedoeld voor gevoelige servers (bijvoorbeeld Active Directory-domein Controllers, servers die betalingsgegevens verwerken en servers die onderhevig zijn aan strikte wijzigingscontrolemaatregelen). In de meeste andere gevallen is het niet nodig om deze instellingen te wijzigen.

Allowlists en blocklists voor extensies

Als u wilt beperken welke extensies op uw server kunnen worden geïnstalleerd, kunt u lijsten configureren met de extensies die u wilt toestaan en blokkeren op de server. De extensiebeheerder evalueert alle aanvragen voor het installeren, bijwerken of upgraden van extensies op basis van de acceptatielijst en de blokkeringslijst om te bepalen of de extensie op de server kan worden geïnstalleerd. Verwijderaanvragen zijn altijd toegestaan.

De veiligste optie is om expliciet de extensies toe te staan die u verwacht te installeren. Alle extensies die niet in de acceptatielijst staan, worden automatisch geblokkeerd. Als u de Azure Verbinding maken ed Machine-agent wilt configureren om alleen de Azure Monitor-agent voor Linux toe te staan, voert u de volgende opdracht uit op elke server:

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

U kunt een of meer extensies blokkeren door ze toe te voegen aan de blokkeringslijst. Als een extensie aanwezig is in zowel de acceptatielijst als de bloklijst, wordt deze geblokkeerd. Voer de volgende opdracht uit om de aangepaste scriptextensie voor Linux te blokkeren:

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

Geef extensies op met de uitgever en het type, gescheiden door een slash /. Bekijk de lijst met de meest voorkomende extensies in de documenten of vermeld de VM-extensies die al op uw server zijn geïnstalleerd in de portal, Azure PowerShell of Azure CLI.

In de tabel wordt het gedrag beschreven bij het uitvoeren van een extensiebewerking voor een agent waarvoor de acceptatielijst of de bloklijst is geconfigureerd.

Operation In de acceptatielijst In de blokkeringslijst In zowel de acceptatielijst als de bloklijst Niet in een lijst, maar er is een acceptatielijst geconfigureerd
De extensie installeren Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Extensie bijwerken (opnieuw configureren) Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Upgrade-extensie Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Extensie verwijderen Toegestaan Toegestaan Toegestaan Toegestaan

Belangrijk

Als een extensie al op uw server is geïnstalleerd voordat u een acceptatielijst of blokkeringslijst configureert, wordt deze niet automatisch verwijderd. Het is uw verantwoordelijkheid om de extensie te verwijderen uit Azure om deze volledig van de machine te verwijderen. Verwijderaanvragen worden altijd geaccepteerd om aan dit scenario te voldoen. Zodra deze is verwijderd, bepalen de acceptatielijst en de blokkeringslijst of toekomstige installatiepogingen al dan niet mogen worden toegestaan.

Vanaf agentversie 1.35 is er een speciale waarde Allow/Nonevoor de acceptatielijst, waarmee extensiebeheer kan worden uitgevoerd, maar geen extensies mogen worden geïnstalleerd. Dit is de aanbevolen configuratie wanneer u Azure Arc gebruikt om Windows Server 2012 Extended Security Updates (ESU) te leveren zonder dat u andere extensies wilt gebruiken.

azcmagent config set extensions.allowlist "Allow/None"

Gastconfiguratie in- of uitschakelen

Met de functie Gastconfiguratie van Azure Policy kunt u instellingen op uw server controleren en configureren vanuit Azure. U kunt gastconfiguratie uitschakelen op uw server als u deze functionaliteit niet wilt toestaan door de volgende opdracht uit te voeren:

azcmagent config set guestconfiguration.enabled false

Wanneer gastconfiguratie is uitgeschakeld, worden alle beleidsregels voor gastconfiguratie die zijn toegewezen aan de computer in Azure weergegeven als niet-compatibel. Overweeg om een uitzondering voor deze machines te maken of het bereik van uw beleidstoewijzingen te wijzigen als u deze computers niet als niet-compatibel wilt zien.

Extensiebeheer in- of uitschakelen

Het extensiebeheer is verantwoordelijk voor het installeren, bijwerken en verwijderen van VM-extensies op uw server. U kunt extensiebeheer uitschakelen om te voorkomen dat extensies op uw server worden beheerd, maar we raden u aan in plaats daarvan de acceptatie- en bloklijsten te gebruiken voor gedetailleerdere controle.

azcmagent config set extensions.enabled false

Als u het extensiebeheer uitschakelt, worden er geen extensies verwijderd die al op uw server zijn geïnstalleerd. Extensies die worden gehost in hun eigen Windows- of Linux-services, zoals de Log Analytics-agent, kunnen blijven worden uitgevoerd, zelfs als de extensiebeheer is uitgeschakeld. Andere extensies die worden gehost door de extensiebeheerder zelf, zoals de Azure Monitor-agent, worden niet uitgevoerd als het extensiebeheer is uitgeschakeld. U moet extensies verwijderen voordat u extensiebeheer uitschakelt om ervoor te zorgen dat er geen extensies blijven worden uitgevoerd op de server.

Aanbevolen procedures voor vergrendelde machines

Bij het configureren van de Azure Verbinding maken ed Machine-agent met een beperkte set mogelijkheden, is het belangrijk om rekening te houden met de mechanismen die iemand kan gebruiken om deze beperkingen te verwijderen en de juiste besturingselementen te implementeren. Iedereen die opdrachten kan uitvoeren als beheerder of hoofdgebruiker op de server, kan de configuratie van de Azure Verbinding maken ed Machine-agent wijzigen. Extensies en beleidsregels voor gastconfiguraties worden uitgevoerd in bevoorrechte contexten op uw server en kunnen daarom mogelijk de agentconfiguratie wijzigen. Als u beveiligingsmaatregelen voor lokale agents toepast om de agent te vergrendelen, raadt Microsoft de volgende aanbevolen procedures aan om ervoor te zorgen dat alleen lokale serverbeheerders de agentconfiguratie kunnen bijwerken:

  • Gebruik indien mogelijk allowlists voor extensies in plaats van bloklijsten.
  • Neem de aangepaste scriptextensie niet op in de extensie allowlist om te voorkomen dat willekeurige scripts worden uitgevoerd die de agentconfiguratie kunnen wijzigen.
  • Schakel gastconfiguratie uit om te voorkomen dat aangepaste gastconfiguratiebeleidsregels worden gebruikt die de agentconfiguratie kunnen wijzigen.

Voorbeeldconfiguratie voor bewakings- en beveiligingsscenario's

Het is gebruikelijk om Azure Arc te gebruiken om uw servers te bewaken met Azure Monitor en Microsoft Sentinel en deze te beveiligen met Microsoft Defender voor Cloud. Deze sectie bevat voorbeelden voor het vergrendelen van de agent om alleen bewakings- en beveiligingsscenario's te ondersteunen.

Alleen Azure Monitor-agent

Voer op uw Windows-servers de volgende opdrachten uit in een opdrachtconsole met verhoogde bevoegdheid:

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

Voer op uw Linux-servers de volgende opdrachten uit:

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

Log Analytics en afhankelijkheid (alleen Azure Monitor VM Insights)

Deze configuratie is bedoeld voor de verouderde Log Analytics-agents en de afhankelijkheidsagent.

Voer op uw Windows-servers de volgende opdrachten uit in een console met verhoogde bevoegdheid:

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

Voer op uw Linux-servers de volgende opdrachten uit:

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

Bewaking en beveiliging

Microsoft Defender voor Cloud extensies op uw server implementeert om kwetsbare software op uw server te identificeren en Microsoft Defender voor Eindpunt in te schakelen (indien geconfigureerd). Microsoft Defender voor Cloud maakt ook gebruik van gastconfiguratie voor de functie voor naleving van regelgeving. Aangezien een aangepaste toewijzing van een gastconfiguratie kan worden gebruikt om de beperkingen van de agent ongedaan te maken, moet u zorgvuldig evalueren of u de functie voor naleving van regelgeving nodig hebt en, als gevolg hiervan, gastconfiguratie moet worden ingeschakeld op de computer.

Voer op uw Windows-servers de volgende opdrachten uit in een opdrachtconsole met verhoogde bevoegdheid:

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

Voer op uw Linux-servers de volgende opdrachten uit:

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

Agentmodi

Een eenvoudigere manier om lokale beveiligingscontroles te configureren voor bewakings- en beveiligingsscenario's is het gebruik van de monitormodus, beschikbaar met agentversie 1.18 en hoger. Modi zijn vooraf gedefinieerde configuraties van de extensie allowlist en gastconfiguratieagent die door Microsoft worden onderhouden. Naarmate er nieuwe extensies beschikbaar komen die bewakingsscenario's mogelijk maken, werkt Microsoft de acceptatielijst en agentconfiguratie zo nodig bij om de nieuwe functionaliteit op te nemen of uit te sluiten.

Er zijn twee modi waaruit u kunt kiezen:

  1. volledig : de standaardmodus. Hierdoor is alle agentfunctionaliteit toegestaan.
  2. monitor : een beperkte modus die de agent voor gastconfiguratiebeleid uitschakelt en alleen het gebruik van extensies met betrekking tot bewaking en beveiliging toestaat.

Voer de volgende opdracht uit om de monitormodus in te schakelen:

azcmagent config set config.mode monitor

U kunt de huidige modus van de agent en toegestane extensies controleren met de volgende opdracht:

azcmagent config list

In de monitormodus kunt u de acceptatielijst of bloklijst van de extensie niet wijzigen. Als u een van beide lijsten wilt wijzigen, wijzigt u de agent weer in de volledige modus en geeft u uw eigen acceptatielijst en blokkeringslijst op.

Als u de agent weer in de volledige modus wilt wijzigen, voert u de volgende opdracht uit:

azcmagent config set config.mode full

Een beheerde identiteit gebruiken met servers met Azure Arc

Standaard kan de door het Microsoft Entra-systeem toegewezen identiteit die door Arc wordt gebruikt, alleen worden gebruikt om de status van de server met Azure Arc in Azure bij te werken. Bijvoorbeeld de laatst waargenomen heartbeatstatus. U kunt desgewenst andere rollen toewijzen aan de identiteit als een toepassing op uw server de door het systeem toegewezen identiteit gebruikt voor toegang tot andere Azure-services. Zie Verifiëren bij Azure-resources met servers met Azure Arc voor meer informatie over het configureren van een door het systeem toegewezen beheerde identiteit voor toegang tot Azure-resources.

Hoewel de Service voor metagegevens van hybride exemplaren toegankelijk is voor elke toepassing die op de computer wordt uitgevoerd, kunnen alleen geautoriseerde toepassingen een Microsoft Entra-token aanvragen voor de door het systeem toegewezen identiteit. Bij de eerste poging om toegang te krijgen tot de token-URI, genereert de service een willekeurig gegenereerde cryptografische blob op een locatie in het bestandssysteem die alleen vertrouwde bellers kunnen lezen. De beller moet vervolgens het bestand lezen (bewijzen dat het over de juiste machtigingen beschikt) en de aanvraag opnieuw proberen met de bestandsinhoud in de autorisatieheader om een Microsoft Entra-token op te halen.

  • In Windows moet de beller lid zijn van de lokale groep Beheer istrators of de groep Hybrid Agent Extension Applications om de blob te lezen.

  • In Linux moet de beller lid zijn van de groep himds om de blob te lezen.

Zie de volgende video voor meer informatie over het gebruik van een beheerde identiteit met servers met Arc voor verificatie en toegang tot Azure-resources.

Schijfversleuteling gebruiken

De Azure Verbinding maken ed Machine-agent maakt gebruik van openbare-sleutelverificatie om te communiceren met de Azure-service. Nadat u een server onboardt naar Azure Arc, wordt een persoonlijke sleutel opgeslagen op de schijf en gebruikt wanneer de agent communiceert met Azure. Als deze wordt gestolen, kan de persoonlijke sleutel op een andere server worden gebruikt om met de service te communiceren en te fungeren alsof deze de oorspronkelijke server is. Dit omvat het verkrijgen van toegang tot de door het systeem toegewezen identiteit en alle resources waartoe de identiteit toegang heeft. Het persoonlijke sleutelbestand is beveiligd om alleen toegang te verlenen tot het himds-account om het te lezen. Om offlineaanvallen te voorkomen, raden we u ten zeerste aan om volledige schijfversleuteling (bijvoorbeeld BitLocker, dm-crypt, enzovoort) te gebruiken op het besturingssysteemvolume van uw server.

Volgende stappen

  • Voordat u servers met Azure Arc evalueert of inschakelt op meerdere hybride machines, bekijkt u het overzicht van Verbinding maken ed Machine-agent voor meer informatie over vereisten, technische details over de agent en implementatiemethoden.

  • Raadpleeg de plannings- en implementatiehandleiding voor het plannen van de implementatie van servers met Azure Arc op elke schaal en implementeer gecentraliseerd beheer en bewaking.