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. Gyakori példa a címkék frissítése az erőforrásokon, például a costCenteren. A meglévő nem megfelelő erőforrások szervizelhetők szervizelési feladattal. Egyetlen módosítási szabály tetszőleges számú műveletből áll. 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 modify effektus a következő műveleteket támogatja:

  • Erőforráscímkék hozzáadása, cseréje vagy eltávolítása. 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 a identity.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ával modifylekérheti a használható aliasok listáját.

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. A rendszer kihagyja a hamis állapotkiértékeléseket tartalmazó műveleteket.

Alias megadásakor a rendszer annál több ellenőrzést 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.

Ha az modify effektust használó szabályzatdefiníció egy értékelési ciklus részeként fut, nem módosítja a már létező erőforrásokat. Ehelyett minden olyan erőforrást megjelöl, amely megfelel a if feltételnek, nem megfelelőként.

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 összesetoperations. 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 az operations ü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.
    • Elérhető értékek: naplózás, megtagadás, letiltás.
    • Az alapértelmezett érték a megtagadás.
  • operations (kötelező)
    • Az egyező erőforrásokon befejezendő összes címkeművelet tömbje.
    • Tulajdonságok:
      • 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, Remove. A hozzáadás a hozzáfűző effektushoz hasonlóan viselkedik.
      • 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ő)

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 megadott tulajdonságot vagy címkét az erőforrásból.

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