Formation
Module
Afficher un aperçu des modifications de déploiement Azure avec une simulation - Training
Appliquez la commande de simulation (what-if) pour voir l’effet d’un déploiement avant son application.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour bénéficier des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
L’effet modify
permet d’ajouter, de mettre à jour ou de supprimer des propriétés ou des étiquettes sur un abonnement ou une ressource en phase de création ou de mise à jour. Les ressources non conformes existantes peuvent aussi être corrigées avec une tâche de correction. Les affectations de stratégie dont l’effet est défini sur Modify nécessitent une identité managée pour effectuer une correction. Un exemple courant utilisant l’effet modify
est la mise à jour d’étiquettes sur des ressources, comme « costCenter ».
Il existe des nuances dans le comportement de modification pour les propriétés de ressource. Découvrez plus d’informations sur les scénarios quand la modification est ignorée.
Une même règle modify
peut avoir un nombre quelconque d’opérations. Opérations prises en charge :
indexed
dans la stratégie Modify, sauf si la ressource cible est un groupe de ressources.identity.type
) des machines virtuelles et des groupes de machines virtuelles identiques. Vous ne pouvez modifier identity.type
que pour les machines virtuelles ou les groupes de machines virtuelles identiques.Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
dans Azure PowerShell version 4.6.0 ou ultérieure pour obtenir la liste des alias qui peuvent être utilisés avec modify
.Important
Si vous gérez des balises, il est recommandé d’utiliser Modify plutôt qu’Append, car Modify fournit plus de types d’opérations, ainsi que la possibilité de corriger les ressources existantes. Toutefois, Append est recommandé si vous n’êtes pas en mesure de créer une identité managée ou si Modify ne prend pas encore en charge l’alias de la propriété de ressource.
L’évaluation Modify a lieu avant que la requête ne soit traitée par un fournisseur de ressources lors de la création ou de la mise à jour d’une ressource. Les opérations modify
sont appliquées au contenu de la requête lorsque la condition if
de la règle de stratégie est remplie. Chaque opération modify
peut spécifier une condition qui détermine le moment où elle est appliquée.
Lorsqu’un alias est spécifié, des vérifications supplémentaires sont effectuées pour s’assurer que l’opération modify
ne modifie pas le contenu de la requête d’une manière qui conduirait le fournisseur de ressources à le rejeter :
modify
correspond au type de jeton attendu pour la propriété dans la version d’API de la requête.Si l’une de ces vérifications échoue, l’évaluation de la stratégie revient au conflictEffect
spécifié.
Important
Il est recommandé que les définitions de Modify qui incluent des alias utilisent la propriété d'effet de conflitaudit pour éviter l'échec des requêtes utilisant des versions d'API où la propriété mappée n'est pas « modifiable ». Si le même alias se comporte différemment entre les versions d’API, des opérations modify conditionnelles peuvent être utilisées pour déterminer l’opération modify
utilisée pour chaque version d’API.
Dans certains cas, les opérations de modification sont ignorées lors de l’évaluation :
modify
est exécutée dans le cadre d’un cycle d’évaluation, elle n’apporte pas de modifications aux ressources qui existent déjà. Au lieu de cela, elle marque les ressources qui correspondent à la condition if
comme non conformes : elles peuvent donc être corrigées via une tâche de correction.operations
est évaluée à false, cette opération particulière est ignorée.modify
est ignorée.Microsoft.Storage/storageAccounts/blobServices/deleteRetentionPolicy.enabled
. Si la propriété « parent », dans ce cas deleteRetentionPolicy
, n’est pas présente dans la requête, la modification est ignorée, car cette propriété est supposée être omise intentionnellement. Pour obtenir un exemple pratique, accédez à la section Exemple de propriété non présente.identity.type
sur une ressource autre qu’une machine virtuelle ou qu’un groupe de machines virtuelles identiques, l’évaluation de la stratégie est ignorée de façon à ce que la modification ne soit pas effectuée. Dans ce cas, la ressource est considérée comme non applicable à la stratégie.La modification des propriétés d’une ressource dépend de la requête d’API et de la charge utile de la ressource mise à jour. La charge utile peut dépendre du client utilisé, comme le portail Azure, et d’autres facteurs tels que le fournisseur de ressources.
Imaginez que vous appliquez une stratégie qui modifie des étiquettes sur une machine virtuelle. Chaque fois que la machine virtuelle est mise à jour, par exemple lors d’un redimensionnement ou des modifications du disque, les étiquettes sont mises à jour en conséquence, quel que soit le contenu de la charge utile de la machine virtuelle. La raison en est que les étiquettes sont indépendantes des propriétés de la machine virtuelle.
Cependant, si vous appliquez une stratégie qui modifie les propriétés d’une machine virtuelle, la modification dépend de la charge utile de la ressource. Si vous tentez de modifier des propriétés qui ne sont pas incluses dans la charge utile de la mise à jour, la modification n’aura pas lieu. Par exemple, cela peut se produire lors de la mise à jour corrective de la propriété assessmentMode
d’une machine virtuelle (alias Microsoft.Compute/virtualMachines/osProfile.windowsConfiguration.patchSettings.assessmentMode
). La propriété est « imbriquée » : si ses propriétés parentes ne sont pas incluses dans la requête, cette omission est donc supposée intentionnelle et la modification est ignorée. Pour que la modification se produise, la charge utile de la ressource doit contenir ce contexte.
La propriété details
de l’effet modify
comporte toutes les sous-propriétés qui définissent les autorisations nécessaires à la correction, ainsi que les operations
utilisées pour ajouter, mettre à jour ou supprimer des valeurs d’étiquette.
roleDefinitionIds
(requis) conflictEffect
(facultatif) modify
ne fonctionne pas sur l’alias spécifié.
operations
. Si plusieurs définitions de stratégie ont l’effet deny, la demande est refusée pour raison de conflit. Si toutes les définitions de stratégie ont audit, aucune des operations
des définitions de stratégie en conflit n’est traitée.operations
(requis) operation
(requis) addOrReplace
, Add
et Remove
.Add
a le même comportement que l’effet append.Remove
n’est pris en charge que pour les balises de ressource.field
(requis) value
(facultatif) operation
correspond à addOrReplace ou à Add.condition
(facultatif) field()
, resourceGroup()
et subscription()
.Le tableau de propriétés operations
permet de modifier plusieurs étiquettes de différentes façons à partir d’une même définition de stratégie. Chaque opération est constituée des propriétés operation
, field
et value
. La propriété operation
détermine ce que fait la tâche de correction aux étiquettes, field
détermine l’étiquette qui est modifiée, et value
définit le nouveau paramétrage de l’étiquette. L’exemple suivant effectue les modifications de balises suivantes :
environment
sur « Test », même si elle existe déjà avec une autre valeur.TempResource
.Dept
sur le paramètre de stratégie DeptName configuré pour l’attribution de stratégie."details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
La propriété operation
propose les options suivantes :
Operation | Description |
---|---|
addOrReplace |
Ajoute la propriété/l’étiquette et la valeur définies à la ressource, même si la propriété/l’étiquette a déjà une autre valeur. |
add |
Ajoute la propriété/l’étiquette et la valeur définies à la ressource. |
remove |
Supprime l’étiquette définie de la ressource. Uniquement pris en charge pour les balises. |
Exemple 1 : Ajoutez l’étiquette environment
et remplacez les étiquettes environment
existantes par « Test » :
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
Exemple 2 : Supprimez l’étiquette env
et ajoutez l’étiquette environment
, ou remplacez les étiquettes environment
existantes par une valeur paramétrable :
"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')]"
}
]
}
}
Exemple 3 : vérifiez qu’aucun compte de stockage n’empêche l’accès public aux blobs. L’opération modify
est appliquée uniquement lors de l’évaluation des requêtes avec une version d’API supérieure ou égale à 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
}
]
}
}
Formation
Module
Afficher un aperçu des modifications de déploiement Azure avec une simulation - Training
Appliquez la commande de simulation (what-if) pour voir l’effet d’un déploiement avant son application.
Documentation
Effet deployIfNotExists des définitions Azure Policy - Azure Policy
L’effet deployIfNotExists des définitions Azure Policy détermine la façon dont la conformité est gérée et signalée.
Effet Append de définitions Azure Policy - Azure Policy
L’effet Append de définitions Azure Policy détermine la façon dont la conformité est gérée et signalée.
Concepts de base de l’effet des définitions d’Azure Policy - Azure Policy
Les concepts de base de l’effet des définitions d’Azure Policy déterminent la manière dont la conformité est gérée et signalée.