Inzicht in de gastconfiguratiefunctie van Azure Policy

de Azure Policy van de gastconfiguratie biedt systeemeigen mogelijkheden voor het controleren of configureren van besturingssysteeminstellingen als code, zowel voor machines die worden uitgevoerd in Azure als voor machines met hybride Arc. De functie kan rechtstreeks per machine worden gebruikt of op schaal worden Azure Policy.

Configuratieresources in Azure zijn ontworpen als extensieresource. U kunt elke configuratie voorstellen als een extra set eigenschappen voor de machine. Configuraties kunnen instellingen bevatten zoals:

  • Besturingssysteeminstellingen
  • Configuratie of aanwezigheid van toepassingen
  • Omgevingsinstellingen

Configuraties verschillen van beleidsdefinities. Gastconfiguratie maakt gebruik van Azure Policy om configuraties dynamisch toe te wijzen aan machines. U kunt configuraties ook handmatig toewijzen aan machinesof met behulp van andere Azure-services, zoals AutoManage.

Voorbeelden van elk scenario zijn te vinden in de volgende tabel.

Type Description Voorbeeld van verhaal
Configuratiebeheer U wilt een volledige weergave van een server, als code in broncodebeheer. De implementatie moet eigenschappen van de server (grootte, netwerk, opslag) en configuratie van besturingssysteem- en toepassingsinstellingen bevatten. "Deze computer moet een webserver zijn die is geconfigureerd voor het hosten van mijn website."
Naleving U wilt instellingen controleren of implementeren op alle machines binnen het bereik, hetzij reactief op bestaande machines of proactief op nieuwe machines wanneer ze worden geïmplementeerd. "Alle computers moeten TLS 1.2 gebruiken. Controleer bestaande machines, zodat ik op de schalen wijziging kan vrijgeven waar deze nodig is, op een gecontroleerde manier. Voor nieuwe machines dwingt u de instelling af wanneer deze worden geïmplementeerd.

De resultaten per instelling van configuraties kunnen worden weergegeven op de pagina Gasttoewijzingen of als de configuratie wordt geseed door een Azure Policy-toewijzing door te klikken op de koppeling Laatst geëvalueerde resource op de pagina Nalevingsdetails.

Er is een video-walk through van dit document beschikbaar. (update binnenkort beschikbaar)

Gastconfiguratie inschakelen

Als u de status van machines in uw omgeving wilt beheren, met inbegrip van machines in Azure- en Arc-servers, bekijkt u de volgende details.

Resourceprovider

Voordat u de gastconfiguratiefunctie van Azure Policy, moet u de Microsoft.GuestConfiguration resourceprovider registreren. Als toewijzing van een gastconfiguratiebeleid wordt uitgevoerd via de portal of als het abonnement is ingeschreven bij Azure Security Center, wordt de resourceprovider automatisch geregistreerd. U kunt zich handmatig registreren via de portal, Azure PowerShellof Azure CLI.

Vereisten implementeren voor virtuele Azure-machines

Als u instellingen binnen een machine wilt beheren, wordt een VM-extensie ingeschakeld en moet de machine een door het systeem beheerde identiteit hebben. De extensie downloadt de toepasselijke toewijzing van de gastconfiguratie en de bijbehorende afhankelijkheden. De identiteit wordt gebruikt om de machine te verifiëren tijdens het lezen en schrijven naar de gastconfiguratieservice. De extensie is niet vereist voor Arc-servers omdat de extensie is opgenomen in de Arc Connected Machine-agent.

Belangrijk

De gastconfiguratie-extensie en een beheerde identiteit zijn vereist voor het beheren van virtuele Azure-machines.

Als u de extensie op schaal wilt implementeren op veel computers, wijst u het beleidsinitiatief toe Deploy prerequisites to enable guest configuration policies on virtual machines naar een beheergroep, abonnement of resourcegroep met de machines die u wilt beheren.

Als u de extensie en beheerde identiteit liever op één computer wilt implementeren, volgt u de richtlijnen voor elke computer:

Als u gastconfiguratiepakketten wilt gebruiken die configuraties toepassen, is versie 1.29.24 of hoger van de Azure VM-gastconfiguratie-extensie vereist.

Limieten die zijn ingesteld voor de extensie

Om te beperken dat de extensie van invloed is op toepassingen die op de computer worden uitgevoerd, mag de gastconfiguratieagent niet meer dan 5% van de CPU overschrijden. Deze beperking geldt voor zowel ingebouwde als aangepaste definities. Hetzelfde geldt voor de gastconfiguratieservice in de Arc Connected Machine-agent.

Validatiehulpprogramma's

Binnen de computer gebruikt de gastconfiguratieagent lokale hulpprogramma's om taken uit te voeren.

In de volgende tabel ziet u een lijst met de lokale hulpprogramma's die in elk ondersteund besturingssysteem worden gebruikt. Voor ingebouwde inhoud verzorgt Gastconfiguratie het automatisch laden van deze hulpprogramma's.

Besturingssysteem Validatieprogramma Notities
Windows PowerShell Desired State Configuration v3 Side-loaded naar een map die alleen wordt gebruikt door Azure Policy. Veroorzaakt geen conflict met Windows PowerShell DSC. PowerShell Core wordt niet toegevoegd aan het systeempad.
Linux PowerShell Desired State Configuration v3 Side-loaded naar een map die alleen wordt gebruikt door Azure Policy. PowerShell Core wordt niet toegevoegd aan het systeempad.
Linux Chef InSpec Installeert Chef InSpec versie 2.2.61 op de standaardlocatie en voegt het pakket toe aan het systeempad. Afhankelijkheden voor het InSpec-pakket, inclusief Ruby en Python, worden ook geïnstalleerd.

Validatiefrequentie

De gastconfiguratieagent controleert elke vijf minuten op nieuwe of gewijzigde gasttoewijzingen. Zodra een gasttoewijzing is ontvangen, worden de instellingen voor die configuratie opnieuw aangevinkt met een interval van 15 minuten. Als er meerdere configuraties worden toegewezen, wordt elke configuratie opeenvolgend geëvalueerd. Langlopende configuraties zijn van invloed op het interval voor alle configuraties, omdat de volgende niet wordt uitgevoerd totdat de eerdere configuratie is voltooid.

Resultaten worden verzonden naar de gastconfiguratieservice wanneer de controle is voltooid. Wanneer er een beleidsevaluatietrigger plaatsvindt, wordt de status van de machine naar de resourceprovider van de gastconfiguratie geschreven. Deze update zorgt ervoor Azure Policy de eigenschappen van Azure Resource Manager evalueren. Een evaluatie op aanvraag Azure Policy de meest recente waarde opgehaald uit de resourceprovider van de gastconfiguratie. Er wordt echter geen nieuwe activiteit binnen de machine door het apparaat triggeren. De status wordt vervolgens naar Azure Resource Graph.

Ondersteunde clienttypen

Beleidsdefinities voor gastconfiguratie zijn inclusief nieuwe versies. Oudere versies van besturingssystemen die beschikbaar zijn in Azure Marketplace worden uitgesloten als de client voor gastconfiguratie niet compatibel is. In de volgende tabel ziet u een lijst met ondersteunde besturingssystemen op Azure-afbeeldingen. De tekst '.x' is symbolisch voor nieuwe secundaire versies van Linux-distributies.

Publisher Name Versies
Amazon Linux 2
Canonical Ubuntu Server 14.04 - 20.x
Credativ Debian 8 - 10.x
Microsoft Windows Server 2012 - 2019
Microsoft Windows-client Windows 10
Oracle Oracle-Linux 7.x-8.x
OpenLogic CentOS 7.3 -8.x
Red Hat Red Hat Enterprise Linux* 7.4 - 8.x
SUSE SLES 12 SP3-SP5, 15.x

* Red Hat CoreOS wordt niet ondersteund.

Aangepaste installatiebestanden van virtuele machines worden ondersteund door beleidsdefinities voor gastconfiguratie, zolang ze maar een van de besturingssystemen in de bovenstaande tabel zijn.

Netwerkvereisten

Virtuele machines in Azure kunnen hun lokale netwerkadapter of een privékoppeling gebruiken om te communiceren met de gastconfiguratieservice.

Azure Arc machines verbinding maken met behulp van de on-premises netwerkinfrastructuur om Azure-services te bereiken en de nalevingsstatus te rapporteren.

Communiceren via virtuele netwerken in Azure

Voor communicatie met de resourceprovider voor gastconfiguratie in Azure hebben machines uitgaande toegang tot Azure-datacenters op poort 443 nodig. Als een netwerk in Azure geen uitgaand verkeer toestaat, configureert u uitzonderingen met regels voor netwerkbeveiligingsgroep. De servicetags 'AzureArcInfrastructure' en 'Storage' kunnen worden gebruikt om te verwijzen naar de gastconfiguratie en Storage-services in plaats van de lijst met IP-adresbereiken voor Azure-datacenters handmatig te onderhouden. Beide tags zijn vereist omdat inhoudspakketten voor gastconfiguraties worden gehost door Azure Storage.

Virtuele machines kunnen private link gebruiken voor communicatie met de gastconfiguratieservice. Pas een tag toe met de naam EnablePrivateNetworkGC en waarde om deze functie in TRUE teschakelen. De tag kan worden toegepast vóór of nadat beleidsdefinities voor gastconfiguratie op de machine zijn toegepast.

Verkeer wordt gerouteerd met behulp van het openbare IP-adres van Azure om een beveiligd, geverifieerd kanaal met Azure-platformbronnen tot stand te brengen.

Azure Arc ingeschakelde servers

Knooppunten buiten Azure die zijn verbonden door Azure Arc vereisen connectiviteit met de gastconfiguratieservice. Meer informatie over netwerk- en proxyvereisten in de Azure Arc documentatie.

Sta verkeer toe met behulp van de volgende patronen voor servers met Arc in privé-datacenters:

  • Poort: alleen TCP 443 vereist voor uitgaande internettoegang
  • Algemene URL: *.guestconfiguration.azure.com

Beleid toewijzen aan computers buiten Azure

De controlebeleidsdefinities die beschikbaar zijn voor gastconfiguratie bevatten het resourcetype Microsoft.HybridCompute/machines. Alle machines die zijn toegevoegd aan Azure Arc voor servers die binnen het bereik van de beleidstoewijzing vallen, worden automatisch opgenomen.

Vereisten voor beheerde identiteit

Beleidsdefinities in het initiatief Vereisten implementeren om gastconfiguratiebeleid in te stellen op virtuele machines maken een door het systeem toegewezen beheerde identiteit mogelijk, als deze nog niet bestaat. Er zijn twee beleidsdefinities in het initiatief die het maken van identiteiten beheren. De IF-voorwaarden in de beleidsdefinities zorgen voor het juiste gedrag op basis van de huidige status van de machineresource in Azure.

Belangrijk

Met deze definities System-Assigned beheerde identiteit op de doelbronnen, naast bestaande User-Assigned identiteiten (indien van toepassing). Voor bestaande toepassingen, tenzij ze de identiteit User-Assigned opgeven in de aanvraag, gebruikt de computer standaard System-Assigned identiteit. Meer informatie

Als de machine momenteel geen beheerde identiteiten heeft, is het effectieve beleid: Door het systeem toegewezen beheerde identiteit toevoegen om toewijzingen van gastconfiguraties op virtuele machines zonder identiteiten mogelijk te maken

Als de computer momenteel een door de gebruiker toegewezen systeemidentiteit heeft, is het effectieve beleid: Door het systeem toegewezen beheerde identiteit toevoegen om toewijzingen van gastconfiguraties in teschakelen op VM's met een door de gebruiker toegewezen identiteit

Beschikbaarheid

Klanten die een oplossing met hoge beschikbaarheid ontwerpen, moeten rekening houden met de vereisten voor redundantieplanning voor virtuele machines, omdat gasttoewijzingen extensies van machinebronnen in Azure zijn. Wanneer resources voor gasttoewijzing worden ingericht in een Azure-regio die is gekoppeld,zijn er gasttoewijzingsrapporten beschikbaar zolang er ten minste één regio in het paar beschikbaar is. Als de Azure-regio niet is gekoppeld en deze niet meer beschikbaar is, is het niet mogelijk om toegang te krijgen tot rapporten voor een gasttoewijzing totdat de regio is hersteld.

Wanneer u een architectuur voor toepassingen met hoge beschikbaarheid overweegt, met name wanneer virtuele machines worden ingericht in beschikbaarheidssets achter een load balancer-oplossing om hoge beschikbaarheid te bieden, is het best practice om dezelfde beleidsdefinities met dezelfde parameters toe te wijzen aan alle computers in de oplossing. Indien mogelijk biedt één beleidstoewijzing die alle computers beslaat de minste administratieve overhead.

Voor machines die worden beveiligd door Azure Site Recovery,moet u ervoor zorgen dat machines in een secundaire site binnen het bereik van Azure Policy-toewijzingen voor dezelfde definities vallen met dezelfde parameterwaarden als computers in de primaire site.

Gegevenslocatie

Gastconfiguratie slaat klantgegevens op/verwerkt deze. Standaard worden klantgegevens gerepliceerd naar de gekoppelde regio. Alle klantgegevens worden voor één in de regio opgeslagen en verwerkt.

Problemen met gastconfiguratie oplossen

Zie voor meer informatie over het oplossen van problemen met gastconfiguratie Azure Policy oplossen.

Meerdere toewijzingen

Beleidsdefinities voor gastconfiguratie ondersteunen momenteel alleen het toewijzen van dezelfde gasttoewijzing één keer per computer wanneer de beleidstoewijzing verschillende parameters gebruikt.

Toewijzingen aan Azure Beheergroepen

Azure Policy definities in de categorie Gastconfiguratie kunnen alleen worden toegewezen aan Beheergroepen als het effect AuditIfNotExists is. Beleidsdefinities met het effect 'DeployIfNotExists' worden niet ondersteund als toewijzingen aan Beheergroepen.

Clientlogboekbestanden

De extensie voor gastconfiguratie schrijft logboekbestanden naar de volgende locaties:

Windows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log

Linux

  • Azure-VM: /var/lib/GuestConfig/gc_agent_logs/gc_agent.log
  • Arc-server: /var/lib/GuestConfig/arc_policy_logs/gc_agent.log

Logboeken op afstand verzamelen

De eerste stap bij het oplossen van problemen met configuraties of modules voor gasten moet zijn dat u de cmdlets gebruikt volgens de stappen in How to test guest configuration package artifacts (Artefacten van gastconfiguratiepakketten testen). Als dat niet lukt, kan het verzamelen van clientlogboeken helpen bij het vaststellen van problemen.

Windows

Informatie vastleggen uit logboekbestanden met behulp van Azure VM-Uitvoeropdracht, kan het volgende PowerShell-voorbeeldscript nuttig zijn.

$linesToIncludeBeforeMatch = 0
$linesToIncludeAfterMatch = 10
$logPath = 'C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log'
Select-String -Path $logPath -pattern 'DSCEngine','DSCManagedEngine' -CaseSensitive -Context $linesToIncludeBeforeMatch,$linesToIncludeAfterMatch | Select-Object -Last 10

Linux

Leg informatie vast uit logboekbestanden met behulp van Azure VM-Uitvoeropdracht. Het volgende Bash-voorbeeldscript kan handig zijn.

linesToIncludeBeforeMatch=0
linesToIncludeAfterMatch=10
logPath=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $linesToIncludeBeforeMatch -A $linesToIncludeAfterMatch 'DSCEngine|DSCManagedEngine' $logPath | tail

Agentbestanden

De gastconfiguratieagent downloadt inhoudspakketten naar een computer en extraheert de inhoud. Als u wilt controleren welke inhoud is gedownload en opgeslagen, bekijkt u de onderstaande maplocaties.

Windows: c:\programdata\guestconfig\configuration

Linux: /var/lib/GuestConfig/Configuration

Voorbeelden van gastconfiguratie

Voorbeelden van ingebouwde beleidsvoorbeelden voor gastconfiguratie zijn beschikbaar op de volgende locaties:

Volgende stappen