Policy Definitions - Create Or Update

Crée ou met à jour une définition de stratégie dans un abonnement.
Cette opération crée ou met à jour une définition de stratégie dans l’abonnement donné avec le nom donné.

PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}?api-version=2023-04-01

Paramètres URI

Nom Dans Obligatoire Type Description
policyDefinitionName
path True

string

Nom de la définition de stratégie à créer.

Regex pattern: ^[^<>*%&:\?.+/]*[^<>*%&:\?.+/ ]+$

subscriptionId
path True

string

uuid

ID de l’abonnement cible. La valeur doit être un UUID.

api-version
query True

string

Version de l’API à utiliser pour cette opération.

Corps de la demande

Nom Type Description
properties.description

string

Description de la définition de stratégie.

properties.displayName

string

Nom d’affichage de la définition de stratégie.

properties.metadata

object

Métadonnées de définition de stratégie. Les métadonnées sont un objet ouvert et sont généralement une collection de paires de valeurs de clé.

properties.mode

string

Mode de définition de stratégie. Par exemple, All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Définitions de paramètres pour les paramètres utilisés dans la règle de stratégie. Les clés sont les noms des paramètres.

properties.policyRule

object

Règle de stratégie.

properties.policyType

policyType

Type de définition de stratégie. Les valeurs possibles sont NotSpecified, BuiltIn, Custom et Static.

properties.version

string

Version de la définition de stratégie au format #.#.#.

properties.versions

string[]

Liste des versions disponibles pour cette définition de stratégie.

Réponses

Nom Type Description
201 Created

PolicyDefinition

Créé : retourne des informations sur la définition de stratégie.

Other Status Codes

CloudError

Réponse d’erreur décrivant la raison de l’échec de l’opération.

Sécurité

azure_auth

Flux OAuth2 Azure Active Directory.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Nom Description
user_impersonation Emprunter l’identité de votre compte d’utilisateur

Exemples

Create or update a policy definition
Create or update a policy definition with advanced parameters

Create or update a policy definition

Sample Request

PUT https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming?api-version=2023-04-01

{
  "properties": {
    "mode": "All",
    "displayName": "Enforce resource naming convention",
    "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'",
    "metadata": {
      "category": "Naming"
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "name",
          "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]"
        }
      },
      "then": {
        "effect": "deny"
      }
    },
    "parameters": {
      "prefix": {
        "type": "String",
        "metadata": {
          "displayName": "Prefix",
          "description": "Resource name prefix"
        }
      },
      "suffix": {
        "type": "String",
        "metadata": {
          "displayName": "Suffix",
          "description": "Resource name suffix"
        }
      }
    }
  }
}

Sample Response

{
  "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "ResourceNaming",
  "properties": {
    "mode": "All",
    "displayName": "Naming Convention",
    "description": "Force resource names to begin with 'prefix' and end with 'suffix'",
    "metadata": {
      "category": "Naming"
    },
    "version": "1.2.1",
    "versions": [
      "1.2.1",
      "1.0.0"
    ],
    "policyRule": {
      "if": {
        "not": {
          "field": "name",
          "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]"
        }
      },
      "then": {
        "effect": "deny"
      }
    },
    "parameters": {
      "prefix": {
        "type": "String",
        "metadata": {
          "displayName": "Prefix",
          "description": "Resource name prefix"
        }
      },
      "suffix": {
        "type": "String",
        "metadata": {
          "displayName": "Suffix",
          "description": "Resource name suffix"
        }
      }
    },
    "policyType": "Custom"
  }
}

Create or update a policy definition with advanced parameters

Sample Request

PUT https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/EventHubDiagnosticLogs?api-version=2023-04-01

{
  "properties": {
    "mode": "Indexed",
    "displayName": "Event Hubs should have diagnostic logging enabled",
    "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised",
    "metadata": {
      "category": "Event Hub"
    },
    "policyRule": {
      "if": {
        "field": "type",
        "equals": "Microsoft.EventHub/namespaces"
      },
      "then": {
        "effect": "AuditIfNotExists",
        "details": {
          "type": "Microsoft.Insights/diagnosticSettings",
          "existenceCondition": {
            "allOf": [
              {
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled",
                "equals": "true"
              },
              {
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days",
                "equals": "[parameters('requiredRetentionDays')]"
              }
            ]
          }
        }
      }
    },
    "parameters": {
      "requiredRetentionDays": {
        "type": "Integer",
        "defaultValue": 365,
        "allowedValues": [
          0,
          30,
          90,
          180,
          365
        ],
        "metadata": {
          "displayName": "Required retention (days)",
          "description": "The required diagnostic logs retention in days"
        }
      }
    }
  }
}

Sample Response

{
  "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "ResourceNaming",
  "properties": {
    "mode": "Indexed",
    "displayName": "Event Hubs should have diagnostic logging enabled",
    "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised",
    "metadata": {
      "category": "Event Hub"
    },
    "version": "1.2.1",
    "versions": [
      "1.2.1",
      "1.0.0"
    ],
    "policyRule": {
      "if": {
        "field": "type",
        "equals": "Microsoft.EventHub/namespaces"
      },
      "then": {
        "effect": "AuditIfNotExists",
        "details": {
          "type": "Microsoft.Insights/diagnosticSettings",
          "existenceCondition": {
            "allOf": [
              {
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled",
                "equals": "true"
              },
              {
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days",
                "equals": "[parameters('requiredRetentionDays')]"
              }
            ]
          }
        }
      }
    },
    "parameters": {
      "requiredRetentionDays": {
        "type": "Integer",
        "defaultValue": 365,
        "allowedValues": [
          0,
          30,
          90,
          180,
          365
        ],
        "metadata": {
          "displayName": "Required retention (days)",
          "description": "The required diagnostic logs retention in days"
        }
      }
    }
  }
}

Définitions

Nom Description
CloudError

Réponse d’erreur d’une opération de stratégie.

createdByType

Type d’identité qui a créé la ressource.

ErrorAdditionalInfo

Informations supplémentaires sur l’erreur de gestion des ressources.

ErrorResponse

Réponse d’erreur

Metadata

Métadonnées générales pour le paramètre.

ParameterDefinitionsValue

Définition d’un paramètre qui peut être fourni à la stratégie.

parameterType

Type de données du paramètre.

PolicyDefinition

Définition de stratégie.

policyType

Type de définition de stratégie. Les valeurs possibles sont NotSpecified, BuiltIn, Custom et Static.

systemData

Métadonnées relatives à la création et à la dernière modification de la ressource.

CloudError

Réponse d’erreur d’une opération de stratégie.

Nom Type Description
error

ErrorResponse

Réponse d’erreur
Réponse d’erreur courante pour toutes les API Azure Resource Manager pour retourner les détails de l’erreur concernant les opérations ayant échoué. (Cela suit également le format de réponse d’erreur OData.)

createdByType

Type d’identité qui a créé la ressource.

Nom Type Description
Application

string

Key

string

ManagedIdentity

string

User

string

ErrorAdditionalInfo

Informations supplémentaires sur l’erreur de gestion des ressources.

Nom Type Description
info

object

Informations supplémentaires

type

string

Type d’informations supplémentaires.

ErrorResponse

Réponse d’erreur

Nom Type Description
additionalInfo

ErrorAdditionalInfo[]

Informations supplémentaires sur l’erreur.

code

string

Code d'erreur.

details

ErrorResponse[]

Détails de l’erreur.

message

string

Message d’erreur.

target

string

Cible d’erreur.

Metadata

Métadonnées générales pour le paramètre.

Nom Type Description
assignPermissions

boolean

Définissez sur true pour avoir Portail Azure créer des attributions de rôles sur l’ID de ressource ou la valeur d’étendue de ressource de ce paramètre pendant l’attribution de stratégie. Cette propriété est utile si vous souhaitez attribuer des autorisations en dehors de l’étendue d’attribution.

description

string

Description du paramètre.

displayName

string

Nom d’affichage du paramètre.

strongType

string

Utilisé lors de l’attribution de la définition de stratégie via le portail. Fournit une liste de valeurs contextuelles que l’utilisateur peut choisir.

ParameterDefinitionsValue

Définition d’un paramètre qui peut être fourni à la stratégie.

Nom Type Description
allowedValues

object[]

Valeurs autorisées pour le paramètre.

defaultValue

object

Valeur par défaut du paramètre si aucune valeur n’est fournie.

metadata

Metadata

Métadonnées générales pour le paramètre.

schema

object

Fournit la validation des entrées de paramètres pendant l’affectation à l’aide d’un schéma JSON auto-défini. Cette propriété est prise en charge uniquement pour les paramètres de type objet. Elle suit l’implémentation de la version du schéma Json.NET de septembre 2019. Vous pouvez en savoir plus sur l’utilisation des schémas en accédant à https://json-schema.org/ et vous pouvez tester les brouillons de schémas en accédant à https://www.jsonschemavalidator.net/.

type

parameterType

Type de données du paramètre.

parameterType

Type de données du paramètre.

Nom Type Description
Array

string

Boolean

string

DateTime

string

Float

string

Integer

string

Object

string

String

string

PolicyDefinition

Définition de stratégie.

Nom Type Valeur par défaut Description
id

string

ID de la définition de stratégie.

name

string

Nom de la définition de stratégie.

properties.description

string

Description de la définition de stratégie.

properties.displayName

string

Nom d’affichage de la définition de stratégie.

properties.metadata

object

Métadonnées de définition de stratégie. Les métadonnées sont un objet ouvert et sont généralement une collection de paires de valeurs de clé.

properties.mode

string

Indexed

Mode de définition de stratégie. Par exemple, All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Définitions de paramètres pour les paramètres utilisés dans la règle de stratégie. Les clés sont les noms des paramètres.

properties.policyRule

object

Règle de stratégie.

properties.policyType

policyType

Type de définition de stratégie. Les valeurs possibles sont NotSpecified, BuiltIn, Custom et Static.

properties.version

string

Version de la définition de stratégie au format #.#.#.

properties.versions

string[]

Liste des versions disponibles pour cette définition de stratégie.

systemData

systemData

Métadonnées système relatives à cette ressource.

type

string

Type de la ressource (Microsoft.Authorization/policyDefinitions).

policyType

Type de définition de stratégie. Les valeurs possibles sont NotSpecified, BuiltIn, Custom et Static.

Nom Type Description
BuiltIn

string

Custom

string

NotSpecified

string

Static

string

systemData

Métadonnées relatives à la création et à la dernière modification de la ressource.

Nom Type Description
createdAt

string

Horodatage de la création de ressources (UTC).

createdBy

string

Identité qui a créé la ressource.

createdByType

createdByType

Type d’identité qui a créé la ressource.

lastModifiedAt

string

Horodatage de la dernière modification de la ressource (UTC)

lastModifiedBy

string

Identité qui a modifié la dernière ressource.

lastModifiedByType

createdByType

Type d’identité qui a modifié la dernière ressource.