Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Mielőtt hozzákezdene, érdemes elolvasni a gépkonfiguráció áttekintési oldalát és a gépkonfiguráció szervizelési beállításainak részleteit.
Important
A gép konfigurációs bővítménye szükséges az Azure-beli virtuális gépekhez. Ha a bővítményt minden gépen nagy léptékben szeretné üzembe helyezni, rendelje hozzá a következő szabályzatkezdeményezést: Deploy prerequisites to enable machine configuration policies on virtual machines
A konfigurációkat alkalmazó gépkonfigurációs csomagok használatához az Azure-beli virtuális gép vendégkonfigurációs bővítményének 1.26.24-es vagy újabb verziójára vagy az Arc-ügynök 1.10.0-s vagy újabb verziójára van szükség.
Egyéni gépkonfigurációs szabályzatdefiníciók AuditIfNotExistsDeployIfNotExists általánosan elérhető vagy általánosan elérhető támogatási állapotban vannak.
Az alábbi lépésekkel létrehozhat saját szabályzatokat, amelyek az Azure- vagy Arc-kompatibilis gépek állapotát naplózzák vagy felügyelik.
A PowerShell 7 és a szükséges PowerShell-modulok telepítése
Először állítson be egy gépkonfiguráció-készítő környezetet a PowerShell szükséges verziójának telepítéséhez az operációs rendszerhez és a GuestConfiguration modulhoz.
Gépkonfigurációs csomag összetevőjének létrehozása és közzététele
Ha még nem tette meg, hozzon létre és tegyen közzé egy egyéni gépkonfigurációs csomagot az Egyéni gép konfigurációs csomag összetevőinek létrehozása című témakör lépéseit követve. Ezután ellenőrizze a csomagot a fejlesztői környezetben a Gépkonfigurációs csomag összetevőinek tesztelése című témakörben leírt lépések végrehajtásával.
Note
A cikkben szereplő példakód a változóra $contentUri hivatkozik. Ha ugyanazt a PowerShell-munkamenetet használja, mint a csomagösszetevők létrehozására és tesztelésére vonatkozó korábbi oktatóanyagok, akkor előfordulhat, hogy a változó már rendelkezik a csomag URI-val.
Ha a PowerShell-munkamenetben nem állítja be a $contentUri csomag URI-jának változóját, be kell állítania. Ez a példa egy tárfiók kapcsolati sztring és a New-AzStorageContext parancsmag használatával hoz létre egy tárolási környezetet. Ezután lekéri a közzétett csomaghoz tartozó tárolóblobot, és az objektum tulajdonságaival szerzi be a tartalom URI-ját.
$connectionString = '<storage-account-connection-string>'
$context = New-AzStorageContext -ConnectionString $connectionString
$getParams = @{
Context = $context
Container = '<container-name>'
Blob = '<published-package-file-name>'
}
$blob = Get-AzStorageBlob @getParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
A gépkonfiguráció házirendkövetelményei
A szabályzatdefiníció metaadat-szakaszának tartalmaznia kell a gépkonfigurációs szolgáltatás két tulajdonságát a vendégkonfigurációs hozzárendelések kiépítésének és jelentésének automatizálásához.
A kategóriatulajdonságot be kell állítani, Guest Configuration és a guestConfiguration nevű szakasznak tartalmaznia kell a gépkonfiguráció-hozzárendeléssel kapcsolatos információkat. A New-GuestConfigurationPolicy parancsmag automatikusan létrehozza ezt a szöveget.
Az alábbi példa a metaadat-szakaszt mutatja be, amelyet New-GuestConfigurationPolicya rendszer automatikusan létrehoz.
"metadata": {
"category": "Guest Configuration",
"guestConfiguration": {
"name": "test",
"version": "1.0.0",
"contentType": "Custom",
"contentUri": "CUSTOM-URI-HERE",
"contentHash": "CUSTOM-HASH-VALUE-HERE",
"configurationParameter": {}
}
}
Ha a definíciós effektus értéke be DeployIfNotExistsvan állítva, akkor a szakasznak tartalmaznia kell egy gépkonfiguráció-hozzárendelés üzembe helyezési adatait. A New-GuestConfigurationPolicy parancsmag automatikusan létrehozza ezt a szöveget.
Azure Policy-definíció létrehozása
Miután létrehozott és feltöltött egy egyéni gépkonfigurációs egyéni házirendcsomagot, hozza létre a gép konfigurációs szabályzatdefinícióját. A New-GuestConfigurationPolicy parancsmag egy egyéni szabályzatcsomagot vesz igénybe, és létrehoz egy szabályzatdefiníciót.
A PolicyId paraméterhez New-GuestConfigurationPolicy egyedi sztring szükséges. Globálisan egyedi azonosítóra (GUID) van szükség. Új definíciók esetén hozzon létre egy új GUID-t a New-GUID parancsmag használatával. A definíció frissítésekor használja ugyanazt az egyedi sztringet a PolicyId-hez a megfelelő definíció frissítéséhez.
A parancsmag paraméterei New-GuestConfigurationPolicy :
PolicyId: GUID.
ContentUri: A gépkonfigurációs tartalomcsomag nyilvános HTTP-URI-ja.
DisplayName: Szabályzat megjelenítendő neve.
Leírás: Szabályzat leírása.
Paraméter: Kivonattáblában megadott szabályzatparaméterek.
PolicyVersion: Szabályzat verziója.
Elérési út: Cél elérési útja, ahol a szabályzatdefiníciók létrejönnek. Ne adja meg ezt a paramétert a csomag helyi példányának elérési útjaként.
Platform: Célplatform (Windows/Linux) gépkonfigurációs szabályzathoz és tartalomcsomaghoz.
Mód: (kis- és nagybetűk megkülönböztetése:
ApplyAndMonitor,ApplyAndAutoCorrect)Auditválassza ki, hogy a szabályzatnak naplóznia vagy telepítenie kell-e a konfigurációt. Az alapértelmezett értékAudit.Címke: Hozzáad egy vagy több címkeszűrőt a szabályzatdefinícióhoz.
Kategória: Beállítja a kategória metaadatainak mezőjét a szabályzatdefinícióban.
LocalContentPath: A gépkonfigurációs csomagfájl helyi példányának
.zipelérési útja. Ez a paraméter akkor szükséges, ha felhasználó által hozzárendelt felügyelt identitást használ egy Azure Storage-blobhoz való hozzáférés biztosításához.ManagedIdentityResourceId: A
resourceIdfelhasználó által hozzárendelt felügyelt identitás, amely olvasási hozzáféréssel rendelkezik a gépkonfigurációs csomagfájlt tartalmazó.zipAzure Storage-blobhoz. Ez a paraméter akkor szükséges, ha felhasználó által hozzárendelt felügyelt identitást használ egy Azure Storage-blobhoz való hozzáférés biztosításához.ExcludeArcMachines: Azt határozza meg, hogy a szabályzatdefiníció kizárja az Arc-gépeket. Ez a paraméter akkor szükséges, ha felhasználó által hozzárendelt felügyelt identitással biztosít hozzáférést egy Azure Storage-blobhoz.
UseSystemAssignedIdentity: Ez az a lehetőség, hogy a rendszer által hozzárendelt identitást használja a csomag storage-fiók tárolóból való letöltéséhez saS URL-cím használata helyett.
Ezt a lehetőséget nem használhatja a ManagedIdentityResourceId azonosítóval. A lehetőségek kölcsönösen kizárják egymást.
Ezt a paramétert az ExcludeArcMachines lehetőség nélkül is használhatja, mivel a rendszer által hozzárendelt identitás elérhető az Arc-gépekhez.
Important
Az Azure-beli virtuális gépektől eltérően az Archoz csatlakoztatott gépek jelenleg nem támogatják a felhasználó által hozzárendelt felügyelt identitásokat. Ennek eredményeképpen a -ExcludeArcMachines jelölő szükséges annak biztosításához, hogy ezek a gépek ne legyenek a szabályzatdefinícióban. Ahhoz, hogy az Azure-beli virtuális gép letöltse a hozzárendelt csomagot és alkalmazza a szabályzatot, a vendégkonfigurációs ügynöknek windowsos vagy újabb verziójúnak 1.29.82.0 kell lennie, linuxos vagy újabb verziónak 1.26.76.0 kell lennie.
Az Archoz csatlakoztatott gépek esetében a rendszer által hozzárendelt felügyelt identitásokkal is letölthet csomagokat.
A Mód paraméterről további információt a Gépkonfiguráció szervizelési beállításainak konfigurálása című lapon talál.
Hozzon létre egy szabályzatdefiníciót, amely egy egyéni konfigurációs csomag használatával naplóz egy megadott elérési úton:
$PolicyConfig = @{
PolicyId = '_My GUID_'
ContentUri = $contentUri
DisplayName = 'My audit policy'
Description = 'My audit policy'
Path = './policies/auditIfNotExists.json'
Platform = 'Windows'
PolicyVersion = 1.0.0
}
New-GuestConfigurationPolicy @PolicyConfig
Hozzon létre egy egyéni konfigurációs csomagot kényszerítő szabályzatdefiníciót egy megadott elérési úton:
$PolicyConfig2 = @{
PolicyId = '_My GUID_'
ContentUri = $contentUri
DisplayName = 'My deployment policy'
Description = 'My deployment policy'
Path = './policies/deployIfNotExists.json'
Platform = 'Windows'
PolicyVersion = 1.0.0
Mode = 'ApplyAndAutoCorrect'
}
New-GuestConfigurationPolicy @PolicyConfig2
Hozzon létre egy szabályzatdefiníciót, amely felhasználó által hozzárendelt felügyelt identitással kényszeríti ki az egyéni konfigurációs csomagokat:
$PolicyConfig3 = @{
PolicyId = '_My GUID_'
ContentUri = $contentUri
DisplayName = 'My deployment policy'
Description = 'My deployment policy'
Path = './policies/deployIfNotExists.json'
Platform = 'Windows'
PolicyVersion = 1.0.0
Mode = 'ApplyAndAutoCorrect'
LocalContentPath = "C:\Local\Path\To\Package" # Required parameter for managed identity
ManagedIdentityResourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" # Required parameter for managed identity
}
New-GuestConfigurationPolicy @PolicyConfig3 -ExcludeArcMachines
Ebben a forgatókönyvben le kell tiltania a Blob névtelen hozzáférésének engedélyezése beállítást, és hozzá kell rendelnie a tárfiókban lévő Storage Blob Data Reader szerepkört az identitáshoz.
Hozzon létre egy szabályzatdefiníciót, amely egyéni konfigurációs csomagot kényszerít ki egy System-Assigned felügyelt identitás használatával:
$PolicyConfig4 = @{
PolicyId = '_My GUID_'
ContentUri = $contentUri
DisplayName = 'My deployment policy'
Description = 'My deployment policy'
Path = './policies/deployIfNotExists.json'
Platform = 'Windows'
PolicyVersion = 1.0.0
Mode = 'ApplyAndAutoCorrect'
LocalContentPath = "C:\Local\Path\To\Package" # Required parameter for managed identity
}
New-GuestConfigurationPolicy @PolicyConfig4 -UseSystemAssignedIdentity
Ebben a forgatókönyvben le kell tiltania a Blob névtelen hozzáférésének engedélyezése beállítást, és hozzá kell rendelnie a tárfiókon lévő Storage Blob Data Reader szerepkört a rendszeridentitáshoz.
Note
A felügyelt identitás erőforrás-azonosítóját a Get-AzUserAssignedIdentity PowerShell-parancsmaggal kérdezheti le.
A parancsmag kimenete egy objektumot ad vissza, amely tartalmazza a szabályzatfájlok definíciójának megjelenítendő nevét és elérési útját. Az auditszabályzat-definíciókat létrehozó definíciós JSON-fájlok neve auditIfNotExists.json és a konfigurációk alkalmazásához szabályzatdefiníciókat létrehozó fájlok neve deployIfNotExists.json.
Gépkonfigurációs szabályzatok szűrése címkékkel
A Vendégkonfiguráció modul parancsmagjai által létrehozott szabályzatdefiníciók opcionálisan tartalmazhatnak címkék szűrőt. A Címke paraméter New-GuestConfigurationPolicy támogatja az egyes címkebejegyzéseket tartalmazó kivonattáblák tömbjét. A címkék hozzá lesznek adva a szabályzatdefiníció if szakaszához, és szabályzat-hozzárendeléssel nem módosíthatók.
Példarészlet egy olyan szabályzatdefinícióról, amely a címkékre szűr.
"if": {
"allOf" : [
{
"allOf": [
{
"field": "tags.Owner",
"equals": "BusinessUnit"
},
{
"field": "tags.Role",
"equals": "Web"
}
]
},
{
// Original machine configuration content
}
]
}
Paraméterek használata egyéni gép konfigurációs szabályzatdefinícióiban
A gépkonfiguráció támogatja a DSC-konfigurációk felülbírálását futásidőben. Ez a funkció azt jelenti, hogy a csomag MOF-fájljának értékeit nem kell statikusnak tekinteni. A felülbírálási értékeket az Azure Policy biztosítja, és nem módosítja a DSC-konfigurációk létrehozásának vagy fordításának módját.
A gépkonfiguráció a következő értéktípusokat támogatja paraméterek esetén:
- String
- logikai
- Double
- Float
A parancsmagok New-GuestConfigurationPolicy egy Get-GuestConfigurationPackageComplianceStatus Paraméter nevű paramétert tartalmaznak. Ez a paraméter egy kivonattábla-definíciót használ, amely tartalmazza az egyes paraméterek összes részletét, és létrehozza az Azure Policy-definícióhoz használt fájlok szükséges szakaszait.
Az alábbi példa létrehoz egy szabályzatdefiníciót egy szolgáltatás naplózásához, ahol a felhasználó kiválaszt egy listát a szabályzat-hozzárendeléskor.
# This DSC resource definition...
Service 'UserSelectedNameExample' {
Name = 'ParameterValue'
Ensure = 'Present'
State = 'Running'
}
# ...can be converted to a hash table:
$PolicyParameterInfo = @(
@{
# Policy parameter name (mandatory)
Name = 'ServiceName'
# Policy parameter display name (mandatory)
DisplayName = 'windows service name.'
# Policy parameter description (optional)
Description = 'Name of the windows service to be audited.'
# DSC configuration resource type (mandatory)
ResourceType = 'Service'
# DSC configuration resource id (mandatory)
ResourceId = 'UserSelectedNameExample'
# DSC configuration resource property name (mandatory)
ResourcePropertyName = 'Name'
# Policy parameter default value (optional)
DefaultValue = 'winrm'
# Policy parameter allowed values (optional)
AllowedValues = @('BDESVC','TermService','wuauserv','winrm')
})
# ...and then passed into the `New-GuestConfigurationPolicy` cmdlet
$PolicyParam = @{
PolicyId = 'My GUID'
ContentUri = $contentUri
DisplayName = 'Audit Windows Service.'
Description = "Audit if a Windows Service isn't enabled on Windows machine."
Path = '.\policies\auditIfNotExists.json'
Parameter = $PolicyParameterInfo
PolicyVersion = 1.0.0
}
New-GuestConfigurationPolicy @PolicyParam
Az Azure Policy definíciójának közzététele
Végül közzéteheti a szabályzatdefiníciókat a New-AzPolicyDefinition parancsmaggal. Az alábbi parancsok közzéteszik a gépkonfigurációs szabályzatot a házirendközpontban.
A New-AzPolicyDefinition parancs futtatásához hozzáférésre van szüksége a szabályzatdefiníciók azure-beli létrehozásához.
A konkrét engedélyezési követelményeket az Azure Policy áttekintési oldalán dokumentáljuk. A javasolt beépített szerepkör a következő Resource Policy Contributor: .
New-AzPolicyDefinition -Name 'mypolicydefinition' -Policy '.\policies\auditIfNotExists.json'
Vagy ha a szabályzat üzembe helyezés, ha nem létezik szabályzat (DINE) használja ezt a parancsot:
New-AzPolicyDefinition -Name 'mypolicydefinition' -Policy '.\policies\deployIfNotExists.json'
Az Azure-ban létrehozott szabályzatdefinícióval az utolsó lépés a definíció hozzárendelése. Megtudhatja, hogyan rendelheti hozzá a definíciót a Portalhoz, az Azure CLI-hez és az Azure PowerShellhez.
Policy lifecycle
Ha frissíteni szeretné a szabályzatdefiníciót, módosítsa mind a vendégkonfigurációs csomag, mind az Azure Policy definíciójának részleteit.
Note
A version gépkonfiguráció-hozzárendelés tulajdonsága csak a Microsoft által üzemeltetett effektuscsomagokat befolyásolja. Az egyéni tartalom verziószámozásának ajánlott eljárása, ha a verziót belefoglalja a fájlnévbe.
Először is a futtatáskor New-GuestConfigurationPackageadja meg a csomag nevét, amely egyedivé teszi a korábbi verziókból. A névben szerepelhet egy verziószám, például PackageName_1.0.0: . A példában szereplő szám csak a csomag egyedivé alakítására szolgál, nem pedig annak megadására, hogy a csomagot újabbnak vagy régebbinek kell-e tekinteni, mint a többi csomag.
Másodszor frissítse a parancsmaggal New-GuestConfigurationPolicy együtt használt paramétereket az alábbi magyarázatok mindegyikét követve.
-
Verzió: A
New-GuestConfigurationPolicyparancsmag futtatásakor a jelenleg közzétettnél nagyobb verziószámot kell megadnia. -
contentUri: A parancsmag futtatásakor
New-GuestConfigurationPolicymeg kell adnia egy URI-t a csomag helyére. Ha egy csomagverziót beleszámít a fájlnévbe, a tulajdonság értéke minden kiadásban megváltozik. -
contentHash: A
New-GuestConfigurationPolicyparancsmag automatikusan frissíti ezt a tulajdonságot. Ez a létrehozott csomagNew-GuestConfigurationPackagekivonatértéke. A tulajdonságnak helyesnek kell lennie a.zipközzétett fájlhoz. Ha csak a contentUri tulajdonság frissül, a bővítmény elutasítja a tartalomcsomagot.
A frissített csomagok kiadásának legegyszerűbb módja a cikkben leírt folyamat megismétlése és a frissített verziószám megadása. Ez a folyamat garantálja, hogy az összes tulajdonság megfelelően frissült.
Next steps
- Egyéni szabályzatdefiníció hozzárendelése az Azure Portal használatával.
- Megtudhatja, hogyan tekintheti meg a gépkonfigurációs házirend-hozzárendelések megfelelőségi részleteit.