Förstå gästkonfigurationsfunktionen i Azure Policy
Azure Policy gästkonfigurationsfunktionen ger inbyggda funktioner för att granska eller konfigurera inställningar för operativsystem som kod, både för datorer som körs i Azure och Arc-aktiverade hybriddatorer. Funktionen kan användas direkt per dator eller i stor skala orkestrerat av Azure Policy.
Konfigurationsresurser i Azure är utformade som en tilläggsresurs. Du kan föreställa dig varje konfiguration som en ytterligare uppsättning egenskaper för datorn. Konfigurationer kan innehålla inställningar som:
- Inställningar för operativsystem
- Programkonfiguration eller förekomst
- Miljöinställningar
Konfigurationer skiljer sig från principdefinitioner. Gästkonfigurationen använder Azure Policy för att dynamiskt tilldela konfigurationer till datorer. Du kan också tilldela konfigurationer till datorer manuellteller med hjälp av andra Azure-tjänster, till exempel AutoManage.
Exempel på varje scenario finns i följande tabell.
| Typ | Description | Exempelberättelse |
|---|---|---|
| Konfigurationshantering | Du vill ha en fullständig representation av en server som kod i källkodskontrollen. Distributionen bör innehålla egenskaper för servern (storlek, nätverk, lagring) och konfiguration av inställningar för operativsystem och program. | "Den här datorn ska vara en webbserver som är konfigurerad som värd för min webbplats." |
| Efterlevnad | Du vill granska eller distribuera inställningar till alla datorer i omfånget reaktivt till befintliga datorer eller proaktivt till nya datorer när de distribueras. | "Alla datorer ska använda TLS 1.2. Granska befintliga datorer så att jag kan släppa ändringar där det behövs, på ett kontrollerat sätt, i stor skala. För nya datorer framtvingar du inställningen när de distribueras." |
Resultatet per inställning från konfigurationer kan visas antingen på sidan Gästtilldelningar eller om konfigurationen samordnas av en Azure Policy-tilldelning genom att klicka på länken "Senast utvärderad resurs" på sidan "Efterlevnadsinformation".
En video-genomgång av det här dokumentet finns tillgänglig. (uppdateringen kommer snart)
Aktivera gästkonfiguration
Granska följande information för att hantera tillståndet för datorer i din miljö, inklusive datorer i Azure och Arc-aktiverade servrar.
Resursprovider
Innan du kan använda gästkonfigurationsfunktionen i Azure Policy måste du registrera Microsoft.GuestConfiguration resursprovidern. Om tilldelningen av en gästkonfigurationsprincip görs via portalen, eller om prenumerationen har registrerats i Azure Security Center, registreras resursprovidern automatiskt. Du kan registrera dig manuellt via portalen, Azure PowerShelleller Azure CLI.
Distribuera krav för virtuella Azure-datorer
För att hantera inställningar i en dator aktiveras ett tillägg för virtuell dator och datorn måste ha en systemhanterad identitet. Tillägget laddar ned tillämplig tilldelning av gästkonfiguration och motsvarande beroenden. Identiteten används för att autentisera datorn när den läser och skriver till gästkonfigurationstjänsten. Tillägget krävs inte för Arc-aktiverade servrar eftersom det ingår i Arc Connected Machine-agenten.
Viktigt
Gästkonfigurationstillägget och en hanterad identitet krävs för att hantera virtuella Azure-datorer.
Om du vill distribuera tillägget i stor skala på många datorer tilldelar du principinitiativ Deploy prerequisites to enable guest configuration policies on virtual machines
till en hanteringsgrupp, prenumeration eller resursgrupp som innehåller de datorer som du planerar att hantera.
Om du föredrar att distribuera tillägget och den hanterade identiteten till en enda dator följer du riktlinjerna för var och en:
- Översikt över Azure Policy-tillägget Guest Configuration
- Konfigurera hanterade identiteter för Azure-resurser på en virtuell dator med hjälp av Azure Portal
Om du vill använda gästkonfigurationspaket som tillämpar konfigurationer krävs version 1.29.24 eller senare av gästkonfigurationstillägget för virtuella Azure-datorer.
Begränsningar som angetts för tillägget
För att begränsa tillägget från att påverka program som körs i datorn får gästkonfigurationsagenten inte överskrida mer än 5 % av CPU:n. Den här begränsningen gäller både inbyggda och anpassade definitioner. Samma sak gäller för gästkonfigurationstjänsten i Arc Connected Machine-agenten.
Valideringsverktyg
På datorn använder gästkonfigurationsagenten lokala verktyg för att utföra uppgifter.
I följande tabell visas en lista över de lokala verktyg som används på varje operativsystem som stöds. För inbyggt innehåll hanteras inläsningen av de här verktygen automatiskt av gästkonfigurationen.
| Operativsystem | Verifieringsverktyg | Kommentarer |
|---|---|---|
| Windows | PowerShell Desired State Configuration v3 | Sidoinstallerad till en mapp som endast används av Azure Policy. Står inte i konflikt med Windows PowerShell DSC. PowerShell Core läggs inte till i systemsökvägen. |
| Linux | PowerShell Desired State Configuration v3 | Sidoinstallerad till en mapp som endast används av Azure Policy. PowerShell Core läggs inte till i systemsökvägen. |
| Linux | Chef InSpec | Installerar Chef InSpec version 2.2.61 på standardplatsen och lägger till det i systemsökvägen. Beroenden för InSpec-paketet inklusive Ruby och Python installeras också. |
Valideringsfrekvens
Gästkonfigurationsagenten söker efter nya eller ändrade gästtilldelningar var femte minut. När en gästtilldelning tas emot kontrolleras inställningarna för konfigurationen på nytt med ett intervall på 15 minuter. Om flera konfigurationer tilldelas utvärderas var och en sekventiellt. Långvariga konfigurationer påverkar intervallet för alla konfigurationer, eftersom nästa inte körs förrän den tidigare konfigurationen har slutförts.
Resultaten skickas till gästkonfigurationstjänsten när granskningen är klar. När en principutvärderingsutlösare inträffar skrivs datorns tillstånd till gästkonfigurationens resursprovider. Den här uppdateringen Azure Policy att utvärdera Azure Resource Manager egenskaper. En utvärderingsutvärdering Azure Policy på begäran hämtar det senaste värdet från resursprovidern för gästkonfiguration. Den utlöser dock inte någon ny aktivitet på datorn. Statusen skrivs sedan till Azure Resource Graph.
Klienttyper som stöds
Principdefinitioner för gästkonfiguration inkluderar nya versioner. Äldre versioner av operativsystem som är Azure Marketplace undantagna om gästkonfigurationsklienten inte är kompatibel. I följande tabell visas en lista över operativsystem som stöds på Azure-avbildningar. Texten ".x" är symbolisk för att representera nya mindre versioner av Linux-distributioner.
| Publisher | Name | Versioner |
|---|---|---|
| Amazon | Linux | 2 |
| Canonical | Ubuntu Server | 14.04–20.x |
| Credativ | Debian | 8–10.x |
| Microsoft | Windows Server | 2012 - 2019 |
| Microsoft | Windows-klient | 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 stöds inte.
Anpassade avbildningar av virtuella datorer stöds av principdefinitioner för gästkonfiguration så länge de är ett av operativsystemen i tabellen ovan.
Nätverkskrav
Virtuella datorer i Azure kan använda antingen sitt lokala nätverkskort eller en privat länk för att kommunicera med gästkonfigurationstjänsten.
Azure Arc datorer ansluter med hjälp av den lokala nätverksinfrastrukturen för att nå Azure-tjänster och rapportera efterlevnadsstatus.
Kommunicera över virtuella nätverk i Azure
För att kommunicera med gästkonfigurationsresursprovidern i Azure kräver datorer utgående åtkomst till Azure-datacenter på port 443. Om ett nätverk i Azure inte tillåter utgående trafik konfigurerar du undantag med regler för nätverkssäkerhetsgruppen. Tjänsttaggarna "AzureArcInfrastructure" och "Storage" kan användas för att referera till gästkonfigurationen och Storage-tjänster i stället för att manuellt underhålla listan över IP-intervall för Azure-datacenter. Båda taggarna krävs eftersom gästkonfigurationens innehållspaket finns på Azure Storage.
Kommunicera via Private Link i Azure
Virtuella datorer kan använda privat länk för kommunikation till gästkonfigurationstjänsten. Använd taggen med namn och EnablePrivateNetworkGC värde för att aktivera den här TRUE funktionen. Taggen kan tillämpas före eller efter att principdefinitioner för gästkonfiguration tillämpas på datorn.
Trafiken dirigeras med hjälp av den virtuella offentliga IP-adressen för Azure för att upprätta en säker, autentiserad kanal med Azure-plattformsresurser.
Azure Arc-aktiverade servrar
Noder utanför Azure som är anslutna via Azure Arc kräver anslutning till gästkonfigurationstjänsten. Information om nätverk och proxykrav som finns i Azure Arc dokumentationen.
För Arc-aktiverade servrar i privata datacenter tillåter du trafik med följande mönster:
- Port: Endast TCP 443 krävs för utgående Internetåtkomst
- Global URL:
*.guestconfiguration.azure.com
Tilldela principer till datorer utanför Azure
De granskningsprincipdefinitioner som är tillgängliga för gästkonfiguration inkluderar resurstypen Microsoft.HybridCompute/machines. Alla datorer som är Azure Arc för servrar som ingår i principtilldelningens omfång inkluderas automatiskt.
Krav för hanterad identitet
Principdefinitioner i initiativet Distribuera krav för att aktivera gästkonfigurationsprinciper på virtuella datorer aktiverar en system tilldelad hanterad identitet, om det inte finns någon. Det finns två principdefinitioner i initiativet som hanterar identitetsskapande. IF-villkoren i principdefinitionerna säkerställer korrekt beteende baserat på datorresursens aktuella tillstånd i Azure.
Viktigt
De här definitionerna skapar System-Assigned hanterad identitet på målresurserna, förutom befintliga User-Assigned identiteter (om sådana finns). För befintliga program om de inte User-Assigned identiteten i begäran använder datorn som standard System-Assigned Identity i stället. Läs mer
Om datorn för närvarande inte har några hanterade identiteter är den gällande principen: Lägg till system tilldelad hanterad identitet för att aktivera gästkonfigurationstilldelningar på virtuella datorer utan identiteter
Om datorn för närvarande har en användar tilldelad systemidentitet är den gällande principen: Lägg till system tilldelad hanterad identitet för att aktivera gästkonfigurationstilldelningar på virtuella datorer med en användar tilldelad identitet
Tillgänglighet
Kunder som utformar en lösning med hög tillgång bör överväga kraven på redundansplanering för virtuella datorer eftersom gästtilldelningar är tillägg av datorresurser i Azure. När gästtilldelningsresurser etableras i en Azure-region som är parkopplad, så länge minst en region i paret är tillgänglig, är gästtilldelningsrapporter tillgängliga. Om Azure-regionen inte är länkad och den blir otillgänglig går det inte att komma åt rapporter för en gästtilldelning förrän regionen har återställts.
När du överväger en arkitektur för program med hög tillgänglighet, särskilt när virtuella datorer etableras i tillgänglighetsuppsättningar bakom en lastbalanseringslösning för att tillhandahålla hög tillgänglighet, är det bästa praxis att tilldela samma principdefinitioner med samma parametrar till alla datorer i lösningen. Om möjligt skulle en enda principtilldelning som omfattar alla datorer erbjuda minst administrativa kostnader.
För datorer som skyddas av Azure Site Recovery, se till att datorer på en sekundär plats är inom omfånget för Azure Policy-tilldelningar för samma definitioner med samma parametervärden som datorer på den primära platsen.
Dataplacering
Gästkonfiguration lagrar/bearbetar kunddata. Som standard replikeras kunddata till den parkopplade regionen. För en enda region lagras och bearbetas alla kunddata i regionen.
Felsöka gästkonfiguration
Mer information om felsökning av gästkonfiguration finns i Azure Policy felsökning.
Flera tilldelningar
Principdefinitioner för gästkonfiguration stöder för närvarande endast tilldelning av samma gästtilldelning en gång per dator när principtilldelningen använder olika parametrar.
Tilldelningar till Azure Hanteringsgrupper
Azure Policy i kategorin "Gästkonfiguration" kan bara tilldelas till Hanteringsgrupper när effekten är "AuditIfNotExists". Principdefinitioner med effekten "DeployIfNotExists" stöds inte som tilldelningar till Hanteringsgrupper.
Klientloggfiler
Gästkonfigurationstillägget skriver loggfiler till följande platser:
Windows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log
Linux
- Virtuell Azure-dator:
/var/lib/GuestConfig/gc_agent_logs/gc_agent.log - Arc-aktiverad server:
/var/lib/GuestConfig/arc_policy_logs/gc_agent.log
Fjärrinsamling av loggar
Det första steget när du felsöker konfigurationer eller moduler för gästkonfiguration bör vara att använda cmdletarna genom att följa stegen i Testa artefakter för gästkonfigurationspaket. Om det inte lyckas kan insamling av klientloggar hjälpa dig att diagnostisera problem.
Windows
Samla in information från loggfiler med hjälp av Azure VM Kör kommando, kan följande PowerShell-exempelskript vara till hjälp.
$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
Samla in information från loggfiler med hjälp av Azure VM Kör kommando, kan följande Bash-exempelskript vara till hjälp.
linesToIncludeBeforeMatch=0
linesToIncludeAfterMatch=10
logPath=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $linesToIncludeBeforeMatch -A $linesToIncludeAfterMatch 'DSCEngine|DSCManagedEngine' $logPath | tail
Agentfiler
Gästkonfigurationsagenten laddar ned innehållspaket till en dator och extraherar innehållet. Du kan kontrollera vilket innehåll som har laddats ned och lagrats genom att visa mappplatserna nedan.
Windows: c:\programdata\guestconfig\configuration
Linux: /var/lib/GuestConfig/Configuration
Exempel på gästkonfiguration
Inbyggda principexempel för gästkonfiguration är tillgängliga på följande platser:
- Inbyggda principdefinitioner – gästkonfiguration
- Inbyggda initiativ – gästkonfiguration
- Azure Policy exempel på GitHub lagringsplatsen
Nästa steg
- Konfigurera en anpassad utvecklingsmiljö för gästkonfigurationspaket.
- Skapa en paketartefakt för gästkonfiguration.
- Testa paketartefakten från din utvecklingsmiljö.
- Använd modulen
GuestConfigurationför att skapa en Azure Policy-definition för hantering av din miljö i stor skala. - Tilldela din anpassade principdefinition med hjälp av Azure-portalen.
- Lär dig hur du visar efterlevnadsinformation för tilldelningar av gästkonfigurationsprinciper.