Effect van Azure Policy-definities wijzigen
Het modify
effect wordt gebruikt om tijdens het maken of bijwerken eigenschappen of tags aan een abonnement of resource toe te voegen, bij te werken of te verwijderen. Een veelvoorkomend voorbeeld is het bijwerken van tags voor resources zoals costCenter. Bestaande niet-compatibele resources kunnen worden hersteld met een hersteltaak. Eén regel Wijzigen kan een willekeurig aantal bewerkingen hebben. Beleidstoewijzingen met effect ingesteld als Wijzigen vereisen een beheerde identiteit om herstel uit te voeren.
Het modify
effect ondersteunt de volgende bewerkingen:
- Resourcetags toevoegen, vervangen of verwijderen. Voor tags moet de modus Modify-beleid zijn ingesteld op
indexed
tenzij de doelresource een resourcegroep is. - Voeg de waarde van het beheerde identiteitstype (
identity.type
) van virtuele machines en virtuele-machineschaalsets toe of vervang deze. U kunt alleen deidentity.type
virtuele machines of virtuele-machineschaalsets wijzigen. - Voeg de waarden van bepaalde aliassen toe of vervang deze.
- Gebruik
Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
in Azure PowerShell 4.6.0 of hoger om een lijst met aliassen op te halen waarmee kan worden gebruiktmodify
.
- Gebruik
Belangrijk
Als u tags beheert, is het raadzaam om Modify te gebruiken in plaats van Toevoegen als Wijzigen meer bewerkingstypen en de mogelijkheid om bestaande resources te herstellen. Toevoegen wordt echter aanbevolen als u geen beheerde identiteit kunt maken of Wijzigen de alias voor de resource-eigenschap nog niet ondersteunt.
Evaluatie wijzigen
Wijzigingen worden geëvalueerd voordat de aanvraag wordt verwerkt door een resourceprovider tijdens het maken of bijwerken van een resource. De modify
bewerkingen worden toegepast op de aanvraaginhoud wanneer aan de if
voorwaarde van de beleidsregel wordt voldaan. Elke modify
bewerking kan een voorwaarde opgeven die bepaalt wanneer deze wordt toegepast. Bewerkingen met evaluaties van valse voorwaarden worden overgeslagen.
Wanneer een alias is opgegeven, worden des te meer controles uitgevoerd om ervoor te zorgen dat de modify
bewerking de aanvraaginhoud niet wijzigt op een manier die ervoor zorgt dat de resourceprovider deze weigert:
- De eigenschap waarnaar de alias wordt toegewezen, is gemarkeerd als Wijzigbaar in de API-versie van de aanvraag.
- Het tokentype in de
modify
bewerking komt overeen met het verwachte tokentype voor de eigenschap in de API-versie van de aanvraag.
Als een van deze controles mislukt, valt de beleidsevaluatie terug op de opgegeven conflictEffect
.
Belangrijk
Het is raadzaam definities te wijzigen die aliassen bevatten, het conflicteffect van de controlegebruiken om mislukte aanvragen te voorkomen met behulp van API-versies waarbij de toegewezen eigenschap niet 'Wijzigbaar' is. Als dezelfde alias zich anders gedraagt tussen API-versies, kunnen bewerkingen voor voorwaardelijke wijzigingen worden gebruikt om de modify
bewerking te bepalen die wordt gebruikt voor elke API-versie.
Wanneer een beleidsdefinitie die het modify
effect gebruikt, wordt uitgevoerd als onderdeel van een evaluatiecyclus, worden er geen wijzigingen aangebracht in resources die al bestaan. In plaats daarvan worden alle resources gemarkeerd die voldoen aan de if
voorwaarde als niet-compatibel.
Eigenschappen wijzigen
De details
eigenschap van het modify
effect heeft alle subproperties die de machtigingen definiëren die nodig zijn voor herstel en de operations
gebruikte om tagwaarden toe te voegen, bij te werken of te verwijderen.
roleDefinitionIds
(vereist)- Deze eigenschap moet een matrix met tekenreeksen bevatten die overeenkomen met de rol-id van op rollen gebaseerd toegangsbeheer die toegankelijk is voor het abonnement. Zie herstel voor meer informatie: de beleidsdefinitie configureren.
- De gedefinieerde rol moet alle bewerkingen bevatten die zijn verleend aan de rol Inzender .
conflictEffect
(optioneel)- Bepaalt welke beleidsdefinitie 'wint' als meer dan één beleidsdefinitie dezelfde eigenschap wijzigt of wanneer de
modify
bewerking niet werkt op de opgegeven alias.- Voor nieuwe of bijgewerkte resources heeft de beleidsdefinitie met weigeren voorrang. Beleidsdefinities met audit slaan alles
operations
over. Als meerdere beleidsdefinities het effect weigeren hebben, wordt de aanvraag geweigerd als een conflict. Als alle beleidsdefinities controle hebben, worden geen van deoperations
conflicterende beleidsdefinities verwerkt. - Als voor bestaande resources meerdere beleidsdefinities het effect weigeren hebben, is de nalevingsstatus Conflict. Als een of minder beleidsdefinities het effect weigeren hebben, retourneert elke toewijzing een nalevingsstatus van Niet-compatibel.
- Voor nieuwe of bijgewerkte resources heeft de beleidsdefinitie met weigeren voorrang. Beleidsdefinities met audit slaan alles
- Beschikbare waarden: controleren, weigeren, uitgeschakeld.
- De standaardwaarde wordt geweigerd.
- Bepaalt welke beleidsdefinitie 'wint' als meer dan één beleidsdefinitie dezelfde eigenschap wijzigt of wanneer de
operations
(vereist)- Een matrix van alle tagbewerkingen die moeten worden voltooid voor overeenkomende resources.
- Eigenschappen:
operation
(vereist)- Definieert welke actie moet worden ondernomen voor een overeenkomende resource. Opties zijn: addOrReplace, Toevoegen, Verwijderen. Toevoegen gedraagt zich vergelijkbaar met het toevoegeffect .
field
(vereist)- De tag die u wilt toevoegen, vervangen of verwijderen. Tagnamen moeten voldoen aan dezelfde naamconventie voor andere velden.
value
(optioneel)- De waarde voor het instellen van de tag.
- Deze eigenschap is vereist als
operation
addOrReplace of Add is.
condition
(optioneel)- Een tekenreeks met een Azure Policy-taalexpressie met beleidsfuncties die waar of onwaar evalueren.
- Biedt geen ondersteuning voor de volgende beleidsfuncties:
field()
,resourceGroup()
,subscription()
.
Bewerkingen wijzigen
Met de operations
eigenschapsmatrix kunt u verschillende tags op verschillende manieren wijzigen van één beleidsdefinitie. Elke bewerking bestaat uit operation
, field
en value
eigenschappen. De operation
bepaalt wat de hersteltaak doet met de tags, field
bepaalt welke tag wordt gewijzigd en value
definieert de nieuwe instelling voor die tag. In het volgende voorbeeld worden de volgende tagwijzigingen aangebracht:
- Hiermee stelt u de
environment
tag in op 'Testen', zelfs als deze al bestaat met een andere waarde. - Hiermee verwijdert u de tag
TempResource
. - Hiermee stelt u de
Dept
tag in op de beleidsparameter DeptName die is geconfigureerd voor de beleidstoewijzing.
"details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
De operation
eigenschap heeft de volgende opties:
Operation | Omschrijving |
---|---|
addOrReplace |
Voegt de gedefinieerde eigenschap of tag en waarde toe aan de resource, zelfs als de eigenschap of tag al bestaat met een andere waarde. |
add |
Voegt de gedefinieerde eigenschap of tag en waarde toe aan de resource. |
remove |
Hiermee verwijdert u de gedefinieerde eigenschap of tag uit de resource. |
Voorbeelden wijzigen
Voorbeeld 1: Voeg de environment
tag toe en vervang bestaande environment
tags door Test:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
Voorbeeld 2: Verwijder de env
tag en voeg de environment
tag toe of vervang bestaande environment
tags door een geparameteriseerde waarde:
"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')]"
}
]
}
}
Voorbeeld 3: Zorg ervoor dat een opslagaccount geen openbare blob-toegang toestaat. De modify
bewerking wordt alleen toegepast wanneer aanvragen met API-versie groter of gelijk zijn aan 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
}
]
}
}
Volgende stappen
- Bekijk voorbeelden in Azure Policy-voorbeelden.
- Lees over de structuur van Azure Policy-definities.
- Meer informatie over het programmatisch maken van beleid.
- Meer informatie over het ophalen van nalevingsgegevens.
- Ontdek hoe u niet-compatibele resources kunt herstellen.
- Controleer Azure-beheergroepen.