Structure d’attribution Azure Policy
Les attributions de stratégies sont utilisées par Azure Policy pour définir quelles stratégies ou initiatives sont attribuées aux ressources. L’attribution de stratégie peut déterminer les valeurs des paramètres de ce groupe de ressources au moment de l’attribution, ce qui permet de réutiliser les définitions de stratégie pour des mêmes propriétés de ressource qui auraient des exigences de conformité différentes.
Notes
Pour plus d’informations sur l’étendue d’Azure Policy, consultez Présentation de l’étendue dans Azure Policy.
La notation JSON (JavaScript Object Notation) est utilisée pour créer une attribution de stratégie. L’attribution de stratégie contient des éléments pour :
- le nom d’affichage
- description
- métadonnées
- sélecteurs de ressources
- remplace
- mode d’application
- étendues exclues
- définition de stratégie
- messages de non-conformité
- parameters
- identity
Par exemple, le code JSON suivant montre une attribution de stratégie en mode DoNotEnforce avec des paramètres dynamiques :
{
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"metadata": {
"assignedBy": "Cloud Center of Excellence"
},
"enforcementMode": "DoNotEnforce",
"notScopes": [],
"policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"nonComplianceMessages": [
{
"message": "Resource names must start with 'DeptA' and end with '-LC'."
}
],
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
},
"identity": {
"type": "SystemAssigned"
},
"resourceSelectors": [],
"overrides": []
}
}
Tous les exemples Azure Policy se trouvent dans Exemples de stratégies.
Nom d’affichage et description
Vous utilisez displayName et description pour identifier l’attribution de stratégie et fournir un contexte pour son utilisation avec l’ensemble de ressources. displayName a une longueur maximale de 128 caractères et description a une longueur maximale de 512 caractères.
Métadonnées
La propriété facultative metadata
stocke les informations sur l’attribution de stratégie. Les clients peuvent définir toutes les propriétés et valeurs utiles à leur organisation dans metadata
. Cependant, certaines propriétés communes sont utilisées par Azure Policy. Chaque propriété metadata
a une limite de 1 024 caractères.
Propriétés de métadonnées communes
assignedBy
(chaîne) : nom convivial du principal de sécurité qui a créé l’attribution.createdBy
(chaîne) : GUID du principal de sécurité qui a créé l’attribution.createdOn
(chaîne) : format date/heure universel ISO 8601 de l’heure de création de l’attribution.parameterScopes
(objet) : collection de paires clé-valeur où la clé correspond à un nom de paramètre configuré strongType et la valeur définit l’étendue de ressource utilisée dans le portail pour fournir la liste des ressources disponibles en faisant correspondre la valeur strongType. Le portail définit cette valeur si l’étendue est différente de celle de l’attribution. Si cette valeur est définie, une modification de l’attribution de stratégie dans le portail l’affecte automatiquement à l’étendue du paramètre. Toutefois, l’étendue n’est pas verrouillée sur la valeur et peut être remplacée par une autre étendue.L’exemple suivant de
parameterScopes
s’applique à un paramètre strongType nommébackupPolicyId
qui définit une étendue pour la sélection des ressources quand l’attribution est modifiée dans le portail."metadata": { "parameterScopes": { "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}" } }
updatedBy
(chaîne) : nom convivial du principal de sécurité qui a mis à jour l’attribution, le cas échéant.updatedOn
(chaîne) : format date/heure universel ISO 8601 de l’heure de mise à jour de l’attribution, le cas échéant.evidenceStorages
(objet) : compte de stockage par défaut recommandé qui doit être utilisé pour contenir des preuves pour les attestations aux affectations de stratégie avec un effetmanual
. La propriétédisplayName
est le nom du compte de stockage. La propriétéevidenceStorageAccountID
est l’ID de ressource du compte de stockage. La propriétéevidenceBlobContainer
est le nom du conteneur d’objets blob dans lequel vous envisagez de stocker la preuve.{ "properties": { "displayName": "A contingency plan should be in place to ensure operational continuity for each Azure subscription.", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/{definitionId}", "metadata": { "evidenceStorages": [ { "displayName": "Default evidence storage", "evidenceStorageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}", "evidenceBlobContainer": "evidence-container" } ] } } }
Sélecteurs de ressources
La propriété resourceSelectors
facultative facilite les pratiques de déploiement sécurisées (SDP) en vous permettant de déployer progressivement des affectations de stratégie en fonction de facteurs tels que l’emplacement des ressources, le type de ressource ou si une ressource a un emplacement. Lorsque des sélecteurs de ressources sont utilisés, Azure Policy évalue uniquement les ressources applicables aux spécifications effectuées dans les sélecteurs de ressources.
Les sélecteurs de ressources peuvent également être utilisés pour limiter l’étendue des exemptions de la même façon.
Dans l’exemple de scénario suivant, la nouvelle affectation de stratégie est évaluée uniquement si l’emplacement de la ressource est USA Est ou USA Ouest.
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
"definitionVersion": "1.1",
"resourceSelectors": [
{
"name": "SDPRegions",
"selectors": [
{
"kind": "resourceLocation",
"in": [ "eastus", "westus" ]
}
]
}
]
},
"systemData": { ... },
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
"type": "Microsoft.Authorization/policyAssignments",
"name": "ResourceLimit"
}
Lorsque vous êtes prêt à étendre l’étendue d’évaluation de votre stratégie, vous devez simplement modifier l’affectation. L’exemple suivant montre notre affectation de stratégie avec deux autres régions Azure ajoutées au sélecteur SDPRegions. Notez que, dans cet exemple, SDP signifie que la pratique de déploiement sécurisée est la suivante :
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyDefinitions/ResourceLimit",
"definitionVersion": "1.1",
"resourceSelectors": [
{
"name": "SDPRegions",
"selectors": [
{
"kind": "resourceLocation",
"in": [ "eastus", "westus", "centralus", "southcentralus" ]
}
]
}
]
},
"systemData": { ... },
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
"type": "Microsoft.Authorization/policyAssignments",
"name": "ResourceLimit"
}
Les sélecteurs de ressources ont les propriétés suivantes :
name
: nom du sélecteur de ressources.selectors
: (Facultatif) La propriété utilisée pour déterminer le sous-ensemble de ressources applicable à l’attribution de stratégie doit être évalué pour la conformité.kind
: propriété d’un sélecteur qui décrit quelle caractéristique affine l’ensemble des ressources évaluées. Chaque « type » ne peut être utilisé qu’une seule fois dans un seul sélecteur de ressources. Les valeurs autorisées sont les suivantes :resourceLocation
: Cette propriété permet de sélectionner des ressources en fonction de leur type. Ne peut pas être utilisé dans le même sélecteur de ressources queresourceWithoutLocation
.resourceType
: Cette propriété permet de sélectionner des ressources en fonction de leur type.resourceWithoutLocation
: Cette propriété permet de sélectionner des ressources au niveau de l’abonnement qui n’ont pas d’emplacement. Actuellement, prend en charge uniquementsubscriptionLevelResources
. Ne peut pas être utilisé dans le même sélecteur de ressources queresourceLocation
.
in
: liste des valeurs autorisées pour l’kind
spécifié. Impossible à utiliser avecnotIn
. Peut contenir jusqu’à 50 valeurs.notIn
: liste des valeurs non-autorisées pour l’kind
spécifié. Impossible à utiliser avecin
. Peut contenir jusqu’à 50 valeurs.
Un sélecteur de ressources peut contenir plusieurs sélecteurs. Pour être applicable à un sélecteur de ressources, une ressource doit répondre aux exigences spécifiées par tous ses sélecteurs. De plus, jusqu’à 10 sélecteurs de ressources peuvent être spécifiés dans une seule affectation. Les ressources dans l’étendue sont évaluées lorsqu’elles répondent à l’un de ces sélecteurs de ressources.
Remplacements
La propriété overrides
facultative vous permet de changer l’effet d’une définition de stratégie sans modifier la définition de stratégie sous-jacente ni utiliser un effet paramétrable dans la définition de stratégie.
Les cas d’usage les plus courants pour les remplacements sont les initiatives de stratégie avec un grand nombre de définitions de stratégie associées. Dans ce cas, la gestion de plusieurs effets de stratégie peut demander des efforts administratifs importants, en particulier lorsque l’effet doit être ponctuellement mis à jour. Les remplacements peuvent être utilisés pour mettre à jour simultanément les effets de plusieurs définitions de stratégie au sein d’une initiative.
Examinons un exemple. Imaginez que vous avez une initiative de stratégie nommée CostManagement qui inclut une définition de stratégie personnalisée avec policyDefinitionReferenceId
corpVMSizePolicy et un seul effet de audit
. Supposons que vous souhaitiez affecter l’initiative CostManagement, mais que vous ne souhaitez pas encore voir la conformité signalée pour cette stratégie. L’effet « audit » de cette stratégie peut être remplacé par « désactivé » via un remplacement sur l’affectation d’initiative, comme indiqué dans l’exemple suivant :
{
"properties": {
"policyDefinitionId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policySetDefinitions/CostManagement",
"overrides": [
{
"kind": "policyEffect",
"value": "disabled",
"selectors": [
{
"kind": "policyDefinitionReferenceId",
"in": [ "corpVMSizePolicy" ]
}
]
}
]
},
"systemData": { ... },
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"type": "Microsoft.Authorization/policyAssignments",
"name": "CostManagement"
}
Les remplacements ont les propriétés suivantes :
kind
: La propriété que l’affectation remplace. Le type pris en charge estpolicyEffect
.value
: Nouvelle valeur qui remplace la valeur existante. Les valeurs prises en charge sont les effets.selectors
: (Facultatif) La propriété utilisée pour déterminer l’étendue de l’attribution de stratégie doit prendre le remplacement.kind
: propriété d’un sélecteur qui décrit quelle caractéristique affinera l’étendue du remplacement. La valeur autorisée pourkind: policyEffect
est :policyDefinitionReferenceId
: Spécifie les définitions de stratégie dans une affectation d’initiative qui doivent prendre l’effet de remplacement.
in
: liste des valeurs autorisées pour l’kind
spécifié. Impossible à utiliser avecnotIn
. Peut contenir jusqu’à 50 valeurs.notIn
: liste des valeurs non-autorisées pour l’kind
spécifié. Impossible à utiliser avecin
. Peut contenir jusqu’à 50 valeurs.
Notez qu’une substitution peut être utilisée pour remplacer l’effet de nombreuses stratégies en spécifiant plusieurs valeurs dans le tableau policyDefinitionReferenceId. Un remplacement unique peut être utilisé dans la limite de 50 policyDefinitionReferenceIds, et une seule affectation de stratégie peut contenir jusqu’à 10 remplacements, évalués dans l’ordre dans lequel ils sont spécifiés. Avant la création de l’affectation, l’effet choisi dans le remplacement est validé par rapport à la règle de stratégie et à la liste des valeurs autorisées par le paramètre (dans les cas où l’effet est paramétré).
Mode d’application
La propriété enforcementMode permet aux clients de tester le résultat d’une stratégie sur des ressources existantes sans lancer l’effet de stratégie ni déclencher des entrées du journal d’activité Azure.
Ce scénario est de type « What If » et suit des pratiques de déploiement sécurisées. enforcementMode diffère de l’effet Disabled , car cet effet empêche l’évaluation des ressources de se produire.
Cette propriété a les valeurs suivantes :
Mode | Valeur JSON | Type | Corriger manuellement | Entrée du journal d’activité | Description |
---|---|---|---|---|---|
activé | Default | string | Oui | Oui | L’effet de stratégie est appliqué pendant la création ou la mise à jour d’une ressource. |
Désactivé | DoNotEnforce | string | Oui | Non | L’effet de stratégie n’est pas appliqué pendant la création ou la mise à jour d’une ressource. |
Si enforcementMode n’est pas spécifié dans la définition d’une stratégie ou d’une initiative, la valeur Default est utilisée. Les tâches de correction peuvent être démarrées pour les stratégies deployIfNotExists, même lorsque enforcementMode est défini sur DoNotEnforce.
Étendues exclues
L’étendue de l’affectation comprend tous les conteneurs de ressources enfants et les ressources enfants. Si la définition ne doit pas être appliquée à un conteneur de ressources enfant ou une ressource enfant, ces derniers peuvent être exclus de l’évaluation en définissant notScopes. Cette propriété est un tableau qui permet d’exclure un ou plusieurs conteneurs de ressources ou ressources de l’évaluation. notScopes peut être ajouté ou mis à jour au terme de l’affectation initiale.
Notes
Une ressource exclue est différente d’une ressource exemptée. Pour plus d’informations, consultez Comprendre l’étendue d’Azure Policy.
ID de définition de stratégie
Ce champ correspond au nom du chemin complet d’une définition de stratégie ou d’une définition d’initiative.
policyDefinitionId
est une chaîne et non un tableau. Le contenu le plus récent de la définition de stratégie ou de l’initiative affectée est récupéré à chaque évaluation de l’affectation de stratégie. Si plusieurs stratégies sont souvent attribuées ensemble, il est recommandé d’utiliser une initiative.
Messages de non-conformité
Pour définir un message personnalisé décrivant la raison pour laquelle une ressource n’est pas conforme à la définition de la stratégie ou de l’initiative, définissez nonComplianceMessages
dans la définition de l’affectation. Ce nœud est un tableau d’entrées message
. Ce message personnalisé s’ajoute au message d’erreur par défaut en cas de non-conformité et est facultatif.
Important
Les messages personnalisés en cas de non-conformité sont pris en charge uniquement sur des définitions ou des initiatives avec les des définitions de Modes Resource Manager.
"nonComplianceMessages": [
{
"message": "Default message"
}
]
Si l’affectation concerne une initiative, différents messages peuvent être configurés pour chaque définition de stratégie de l’initiative. Les messages utilisent la valeur policyDefinitionReferenceId
configurée dans la définition de l’initiative. Pour plus d’informations, consultez Propriétés des définitions des stratégies.
"nonComplianceMessages": [
{
"message": "Default message"
},
{
"message": "Message for just this policy definition by reference ID",
"policyDefinitionReferenceId": "10420126870854049575"
}
]
Paramètres
Ce segment de l’attribution de stratégie fournit les valeurs des paramètres définis dans la définition de stratégie ou d’initiative. Grâce à cette conception, il est possible de réutiliser une définition de stratégie ou d’initiative avec différentes ressources. Toutefois, vous devez chercher à connaître les valeurs métiers et les résultats pour chaque option.
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
Dans cet exemple, les paramètres précédemment définis dans la définition de stratégie sont prefix
et suffix
. Cette attribution de stratégie définit prefix
sur DeptA et suffix
sur -LC. La même définition de stratégie peut être réutilisée avec un autre ensemble de paramètres dans un autre service, ce qui réduit la duplication et la complexité des définitions de stratégie tout en offrant une certaine flexibilité.
Identité
Pour les affectations de stratégie dont l’effet est défini sur deployIfNotExist ou modify, il est nécessaire d’avoir une propriété d’identité pour effectuer la correction sur les ressources non conformes. Lorsque vous utilisez l’identité, l’utilisateur doit également spécifier un emplacement pour l’affectation.
Notes
Une attribution de stratégie unique ne peut être associée qu’à une seule identité managée affectée par le système ou l’utilisateur. Toutefois, cette identité peut si nécessaire être attribuée à plusieurs rôles.
# System-assigned identity
"identity": {
"type": "SystemAssigned"
}
# User-assigned identity
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/SubscriptionID/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
}
},
Étapes suivantes
- En savoir plus sur la structure des définitions de stratégies
- Découvrez comment créer des stratégies par programmation.
- Découvrez comment obtenir des données de conformité.
- Découvrez comment corriger des ressources non conformes.
- Pour en savoir plus sur les groupes d’administration, consultez Organiser vos ressources avec des groupes d’administration Azure.
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour