Azure Policy-definíciók módosító hatása
Az modify
effektussal tulajdonságokat vagy címkéket adhat hozzá, frissíthet vagy távolíthat el egy előfizetésen vagy erőforráson a létrehozás vagy frissítés során. A meglévő nem megfelelő erőforrások szervizelési feladattal is orvosolhatók. A módosításként beállított effektusokkal rendelkező szabályzat-hozzárendelésekhez felügyelt identitásra van szükség a szervizeléshez. Az effektust használó modify
gyakori példa a címkék frissítése az erőforrásokra, például a "costCenterre".
Az erőforrástulajdonságok módosítási viselkedésének néhány árnyalata van. További információ a módosítás kihagyásával kapcsolatos forgatókönyvekről.
Egyetlen modify
szabály tetszőleges számú műveletből áll. A támogatott műveletek a következők:
-
Erőforráscímkék hozzáadása, cseréje vagy eltávolítása . Csak címkék távolíthatók el. Címkék esetén a módosítási házirendnek olyan móddal kell rendelkeznie, amely
indexed
csak akkor használható, ha a célerőforrás erőforráscsoport. -
Adja hozzá vagy cserélje le a virtuális gépek és a virtuálisgép-méretezési csoportok felügyelt identitástípusának (
identity.type
) értékét. Csak a virtuális gépek vagy aidentity.type
virtuálisgép-méretezési csoportok esetében módosítható. -
Adja hozzá vagy cserélje le bizonyos aliasok értékeit.
- Az
Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
Azure PowerShell 4.6.0-s vagy újabb verziójávalmodify
lekérheti a használható aliasok listáját.
- Az
Fontos
Ha címkéket kezel, javasoljuk, hogy a Módosítás parancsot használja hozzáfűzés helyett, mivel a módosítás több művelettípust biztosít, és lehetővé teszi a meglévő erőforrások szervizelésének lehetőségét. A Hozzáfűzés azonban akkor ajánlott, ha nem tud felügyelt identitást létrehozni, vagy a Módosítás még nem támogatja az erőforrástulajdonság aliasát.
Értékelés módosítása
A módosítás kiértékeli, mielőtt az erőforrás-szolgáltató feldolgozta a kérést egy erőforrás létrehozása vagy frissítése során. A modify
rendszer akkor alkalmazza a műveletet a kérelem tartalmára, ha a if
szabályzatszabály feltételei teljesülnek. Minden modify
művelet megadhat egy feltételt, amely meghatározza az alkalmazáskor.
Alias megadásakor a rendszer további ellenőrzéseket végez annak érdekében, hogy a modify
művelet ne módosítsa a kérelem tartalmát oly módon, hogy az erőforrás-szolgáltató elutasítsa azt:
- Az alias által leképezendő tulajdonság módosíthatóként van megjelölve a kérelem API-verziójában.
- A művelet jogkivonattípusa
modify
megegyezik a kérelem API-verziójában szereplő tulajdonság várt jogkivonattípusával.
Ha bármelyik ellenőrzés sikertelen, a szabályzat kiértékelése visszakerül a megadott conflictEffect
értékre.
Fontos
Javasoljuk, hogy az aliasokat tartalmazó definíciók módosítása az auditütközésieffektussal kerülje a sikertelen kérelmeket olyan API-verziók használatával, amelyekben a megfeleltetett tulajdonság nem módosítható. Ha ugyanaz az alias eltérően viselkedik az API-verziók között, a feltételes módosítási műveletek segítségével meghatározhatja az modify
egyes API-verziókhoz használt műveletet.
Kihagyott módosítás
Bizonyos esetekben a módosítási műveletek kihagyása a kiértékelés során:
-
Meglévő erőforrások: Ha az
modify
effektust használó szabályzatdefiníció egy értékelési ciklus részeként fut, az nem módosítja a már létező erőforrásokat. Ehelyett a feltételnek megfelelőif
erőforrásokat nem megfelelőként jelöli meg, így azok szervizelési feladaton keresztül szervizelhetők. -
Nem alkalmazható: Ha a tömb egy
operations
műveletének feltétele hamis értékre van kiértékelve, a rendszer kihagyja az adott műveletet. -
A tulajdonság nem módosítható: Ha egy művelethez megadott alias nem módosítható a kérelem API-verziójában, akkor a kiértékelés az ütközési effektust használja. Ha az ütközési effektus elutasításra van állítva, a kérés le lesz tiltva. Ha az ütközési effektus naplózásra van beállítva, a kérés engedélyezett, de a
modify
művelet kihagyva. -
Nem található tulajdonság: Ha a kérelem erőforrás-hasznos adatai között nincs tulajdonság, akkor a módosítás kihagyható. Bizonyos esetekben a módosítható tulajdonságok más tulajdonságokba vannak beágyazva, és aliasuk van, például
Microsoft.Storage/storageAccounts/blobServices/deleteRetentionPolicy.enabled
. Ha a "szülő" tulajdonság ebben az esetbendeleteRetentionPolicy
nem szerepel a kérelemben, a módosítás kimarad, mert a rendszer feltételezi, hogy a tulajdonság szándékosan hiányzik. Gyakorlati példaként tekintse meg a Nem jelen lévő tulajdonság példa szakaszát. -
Nem virtuálisgép- vagy VMSS-identitásművelet: Ha egy módosítási művelet megkísérli hozzáadni vagy lecserélni a
identity.type
mezőt egy nem virtuálisgép- vagy virtuálisgép-méretezési csoporthoz tartozó erőforráson, a szabályzat kiértékelése teljesen ki lesz hagyva, hogy a módosítás ne legyen végrehajtva. Ebben az esetben az erőforrás nem alkalmazható a szabályzatra.
Példa a nem található tulajdonságra
Az erőforrás tulajdonságainak módosítása az API-kéréstől és a frissített erőforrás hasznos adataitól függ. A hasznos adatok függhetnek a használt ügyféltől, például az Azure Portaltól és más tényezőktől, például az erőforrás-szolgáltatótól.
Tegyük fel, hogy olyan szabályzatot alkalmaz, amely módosítja a címkéket egy virtuális gépen (VM). Minden alkalommal, amikor a virtuális gép frissül, például átméretezés vagy lemezmódosítások során, a címkék a virtuális gép hasznos adatainak tartalmától függetlenül ennek megfelelően frissülnek. Ennek az az oka, hogy a címkék függetlenek a virtuális gép tulajdonságaitól.
Ha azonban olyan szabályzatot alkalmaz, amely módosítja a virtuális gépek tulajdonságait, a módosítás az erőforrás hasznos adataitól függ. Ha olyan tulajdonságokat próbál módosítani, amelyek nem szerepelnek a frissítés hasznos adataiban, a módosítás nem történik meg. Ez történhet például egy virtuális gép (aliasMicrosoft.Compute/virtualMachines/osProfile.windowsConfiguration.patchSettings.assessmentMode
) tulajdonságának javításakorassessmentMode
. A tulajdonság "beágyazott", ezért ha a szülőtulajdonságok nem szerepelnek a kérelemben, a rendszer szándékosnak tekinti ezt a kihagyást, és a módosítást kihagyja. A módosításhoz az erőforrás hasznos adatainak tartalmazniuk kell ezt a környezetet.
Tulajdonságok módosítása
Az details
effektus tulajdonsága tartalmazza az modify
összes olyan altulajdonságot, amely meghatározza a szervizeléshez szükséges engedélyeket, valamint a operations
címkeértékek hozzáadásához, frissítéséhez vagy eltávolításához használt engedélyeket.
-
roleDefinitionIds
(kötelező)- Ennek a tulajdonságnak tartalmaznia kell egy sztringtömböt, amely megfelel az előfizetés által elérhető szerepköralapú hozzáférés-vezérlési szerepkör-azonosítónak. További információkért lásd a szervizelést – konfigurálja a szabályzatdefiníciót.
- A definiált szerepkörnek tartalmaznia kell a közreműködői szerepkörnek nyújtott összes műveletet.
-
conflictEffect
(nem kötelező)- Meghatározza, hogy melyik szabályzatdefiníció "nyer", ha egynél több szabályzatdefiníció módosítja ugyanazt a tulajdonságot, vagy ha a
modify
művelet nem működik a megadott aliason.- Az új vagy frissített erőforrások esetében a megtagadással rendelkező szabályzatdefiníció elsőbbséget élvez. A naplózással rendelkező szabályzatdefiníciók kihagyják az összeset
operations
. Ha több szabályzatdefiníció is megtagadja a effektust, a rendszer ütközésként megtagadja a kérést. Ha minden szabályzatdefiníció rendelkezik naplózással, akkor azoperations
ütköző szabályzatdefiníciók egyike sem lesz feldolgozva. - Meglévő erőforrások esetén, ha egynél több szabályzatdefiníció is megtagadja a effektust, a megfelelőségi állapot Ütközés. Ha egy vagy kevesebb szabályzatdefiníció hatása megtagadható, minden hozzárendelés nem megfelelő megfelelőségi állapotot ad vissza.
- Az új vagy frissített erőforrások esetében a megtagadással rendelkező szabályzatdefiníció elsőbbséget élvez. A naplózással rendelkező szabályzatdefiníciók kihagyják az összeset
- Elérhető értékek: naplózás, megtagadás, letiltás.
- Az alapértelmezett érték a megtagadás.
- Meghatározza, hogy melyik szabályzatdefiníció "nyer", ha egynél több szabályzatdefiníció módosítja ugyanazt a tulajdonságot, vagy ha a
-
operations
(kötelező)- Az egyező erőforrásokon befejezendő összes címkeművelet tömbje.
- Kellékek:
-
operation
(kötelező)- Meghatározza, hogy milyen műveletet kell elvégezni egy egyező erőforráson. A beállítások a következők:
addOrReplace
,Add
ésRemove
. -
Add
a hozzáfűzési effektushoz hasonlóan viselkedik. -
Remove
csak erőforráscímkék esetén támogatott.
- Meghatározza, hogy milyen műveletet kell elvégezni egy egyező erőforráson. A beállítások a következők:
-
field
(kötelező)- A hozzáadni, cserélni vagy eltávolítani kívánt címke. A címkeneveknek meg kell felelnie a többi mező elnevezési konvenciójának.
-
value
(nem kötelező)- Az az érték, amelybe a címkét be szeretné állítani.
- Ez a tulajdonság akkor szükséges, ha
operation
addOrReplace vagy Add.
-
condition
(nem kötelező)- Egy Azure Policy nyelvi kifejezést tartalmazó sztring, amely igaz vagy hamis értéket kiértékelő Szabályzatfüggvényekkel rendelkezik.
- Nem támogatja a következő szabályzatfüggvényeket:
field()
,resourceGroup()
,subscription()
.
-
Műveletek módosítása
A operations
tulajdonságtömb lehetővé teszi több címke módosítását az egyetlen szabályzatdefiníciótól eltérő módon. Minden művelet a következőkből operation
áll: , field
és value
tulajdonságok. Ez operation
határozza meg, hogy a szervizelési feladat mit tesz a címkéken, meghatározza, field
hogy melyik címke módosult, és value
meghatározza a címke új beállítását. Az alábbi példa a következő címkemódosításokat hajtja végre:
- A címkét
environment
"Tesztelés" értékre állítja, még akkor is, ha már létezik egy másik értékkel. - Eltávolítja a címkét
TempResource
. - A címkét a
Dept
szabályzat-hozzárendelésen konfigurált DeptName szabályzatparaméterre állítja be.
"details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
A operation
tulajdonság a következő lehetőségeket kínálja:
Művelet | Leírás |
---|---|
addOrReplace |
Hozzáadja a megadott tulajdonságot vagy címkét és értéket az erőforráshoz, még akkor is, ha a tulajdonság vagy címke már létezik egy másik értékkel. |
add |
Hozzáadja a definiált tulajdonságot vagy címkét és értéket az erőforráshoz. |
remove |
Eltávolítja a definiált címkét az erőforrásból. Csak címkék esetén támogatott. |
Példák módosítása
1. példa: Adja hozzá a címkét, és cserélje le a environment
meglévő environment
címkéket a "Test" kifejezésre:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
2. példa: Távolítsa el a env
címkét, és adja hozzá a environment
címkét, vagy cserélje le a meglévő environment
címkéket egy paraméteres értékre:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"conflictEffect": "deny",
"operations": [
{
"operation": "Remove",
"field": "tags['env']"
},
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "[parameters('tagValue')]"
}
]
}
}
3. példa: Győződjön meg arról, hogy egy tárfiók nem engedélyezi a blobok nyilvános elérését, a modify
művelet csak akkor lesz alkalmazva, ha a kérelmeket az API-verzióval nagyobb vagy egyenlő 2019-04-01
:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
],
"conflictEffect": "audit",
"operations": [
{
"condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
"operation": "addOrReplace",
"field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
"value": false
}
]
}
}
Következő lépések
- Tekintse át az Azure Policy-minták példáit.
- Tekintse meg az Azure szabályzatdefiníciók struktúrája szakaszt.
- Megtudhatja, hogyan hozhat létre programozott módon szabályzatokat.
- Megtudhatja, hogyan kérhet le megfelelőségi adatokat.
- Megtudhatja, hogyan orvosolhatja a nem megfelelő erőforrásokat.
- Tekintse át az Azure felügyeleti csoportjait.