Policy Definitions - Create Or Update

Эта операция создаёт или обновляет определение политики в данной подписке с имённым именем.

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

Параметры URI

Имя В Обязательно Тип Описание
policyDefinitionName
path True

string

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

Имя определения политики для получения.

subscriptionId
path True

string (uuid)

Идентификатор целевой подписки. Значение должно быть Универсальным Уникальным Идентификатором (UUID).

api-version
query True

string

minLength: 1

Версия API, используемая для данной операции.

Текст запроса

Имя Тип Описание
properties.description

string

Описание определения политики.

properties.displayName

string

Отображаемое имя определения политики.

properties.externalEvaluationEnforcementSettings

ExternalEvaluationEnforcementSettings

Сведения о источнике результатов внешней оценки, необходимых политике во время оценки принудительного применения.

properties.metadata

Метаданные определения политики. Метаданные — это открытый завершенный объект, который обычно представляет собой коллекцию пар значений ключей.

properties.mode

string

Режим определения политики. Ниже приведены примеры All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Определения параметров для параметров, используемых в правиле политики. Ключи — это имена параметров.

properties.policyRule

Правило политики.

properties.policyType

PolicyType

Тип определения политики. Возможные значения: NotSpecified, BuiltIn, Custom и Static.

properties.version

string

Версия определения политики в формате #.#.#

properties.versions

string[]

Список доступных версий для этого определения политики.

Ответы

Имя Тип Описание
201 Created

PolicyDefinition

Операция создания ресурса 'PolicyDefinition' успешно выполнена

Other Status Codes

ErrorResponse

Непредвиденное сообщение об ошибке.

Безопасность

azure_auth

Azure Active Directory OAuth2 Flow.

Тип: oauth2
Flow: implicit
URL-адрес авторизации: https://login.microsoftonline.com/common/oauth2/authorize

Области

Имя Описание
user_impersonation олицетворения учетной записи пользователя

Примеры

Create or update a policy definition
Create or update a policy definition with advanced parameters
Create or update a policy definition with external evaluation enforcement settings

Create or update a policy definition

Образец запроса

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

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

Пример ответа

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

Create or update a policy definition with advanced parameters

Образец запроса

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

{
  "properties": {
    "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",
    "displayName": "Event Hubs should have diagnostic logging enabled",
    "metadata": {
      "category": "Event Hub"
    },
    "mode": "Indexed",
    "parameters": {
      "requiredRetentionDays": {
        "type": "Integer",
        "allowedValues": [
          0,
          30,
          90,
          180,
          365
        ],
        "defaultValue": 365,
        "metadata": {
          "description": "The required diagnostic logs retention in days",
          "displayName": "Required retention (days)"
        }
      }
    },
    "policyRule": {
      "if": {
        "equals": "Microsoft.EventHub/namespaces",
        "field": "type"
      },
      "then": {
        "effect": "AuditIfNotExists",
        "details": {
          "type": "Microsoft.Insights/diagnosticSettings",
          "existenceCondition": {
            "allOf": [
              {
                "equals": "true",
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled"
              },
              {
                "equals": "[parameters('requiredRetentionDays')]",
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days"
              }
            ]
          }
        }
      }
    }
  }
}

Пример ответа

{
  "name": "ResourceNaming",
  "type": "Microsoft.Authorization/policyDefinitions",
  "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
  "properties": {
    "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",
    "displayName": "Event Hubs should have diagnostic logging enabled",
    "metadata": {
      "category": "Event Hub"
    },
    "mode": "Indexed",
    "parameters": {
      "requiredRetentionDays": {
        "type": "Integer",
        "allowedValues": [
          0,
          30,
          90,
          180,
          365
        ],
        "defaultValue": 365,
        "metadata": {
          "description": "The required diagnostic logs retention in days",
          "displayName": "Required retention (days)"
        }
      }
    },
    "policyRule": {
      "if": {
        "equals": "Microsoft.EventHub/namespaces",
        "field": "type"
      },
      "then": {
        "effect": "AuditIfNotExists",
        "details": {
          "type": "Microsoft.Insights/diagnosticSettings",
          "existenceCondition": {
            "allOf": [
              {
                "equals": "true",
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled"
              },
              {
                "equals": "[parameters('requiredRetentionDays')]",
                "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days"
              }
            ]
          }
        }
      }
    },
    "version": "1.2.1",
    "versions": [
      "1.2.1",
      "1.0.0"
    ]
  }
}

Create or update a policy definition with external evaluation enforcement settings

Образец запроса

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

{
  "properties": {
    "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.",
    "displayName": "Randomize VM Allocation",
    "externalEvaluationEnforcementSettings": {
      "endpointSettings": {
        "kind": "CoinFlip",
        "details": {
          "successProbability": 0.5
        }
      },
      "missingTokenAction": "audit",
      "roleDefinitionIds": [
        "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b"
      ]
    },
    "metadata": {
      "category": "VM"
    },
    "mode": "Indexed",
    "policyRule": {
      "if": {
        "allOf": [
          {
            "equals": "Microsoft.Compute/virtualMachines",
            "field": "type"
          },
          {
            "equals": "eastus",
            "field": "location"
          },
          {
            "equals": "false",
            "value": "[claims().isValid]"
          }
        ]
      },
      "then": {
        "effect": "deny"
      }
    }
  }
}

Пример ответа

{
  "name": "RandomizeVMAllocation",
  "type": "Microsoft.Authorization/policyDefinitions",
  "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/RandomizeVMAllocation",
  "properties": {
    "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.",
    "displayName": "Randomize VM Allocation",
    "externalEvaluationEnforcementSettings": {
      "endpointSettings": {
        "kind": "CoinFlip",
        "details": {
          "successProbability": 0.5
        }
      },
      "missingTokenAction": "audit",
      "roleDefinitionIds": [
        "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b"
      ]
    },
    "metadata": {
      "category": "VM"
    },
    "mode": "Indexed",
    "policyRule": {
      "if": {
        "allOf": [
          {
            "equals": "Microsoft.Compute/virtualMachines",
            "field": "type"
          },
          {
            "equals": "eastus",
            "field": "location"
          },
          {
            "equals": "false",
            "value": "[claims().isValid]"
          }
        ]
      },
      "then": {
        "effect": "deny"
      }
    },
    "policyType": "Custom",
    "version": "1.2.1",
    "versions": [
      "1.2.1",
      "1.0.0"
    ]
  }
}

Определения

Имя Описание
createdByType

Тип удостоверения, создавшего ресурс.

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

ErrorDetail

Сведения об ошибке.

ErrorResponse

Ответ на ошибку

ExternalEvaluationEndpointSettings

Параметры внешней конечной точки, предоставляющие результаты оценки.

ExternalEvaluationEnforcementSettings

Сведения о источнике результатов внешней оценки, необходимых политике во время оценки принудительного применения.

ParameterDefinitionsValue

Определение параметра, который может быть предоставлен политике.

ParameterDefinitionsValueMetadata

Общие метаданные параметра.

ParameterType

Тип данных параметра.

PolicyDefinition

Определение политики.

PolicyType

Тип определения политики. Возможные значения: NotSpecified, BuiltIn, Custom и Static.

systemData

Метаданные, относящиеся к созданию и последнему изменении ресурса.

createdByType

Тип удостоверения, создавшего ресурс.

Значение Описание
User
Application
ManagedIdentity
Key

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

Имя Тип Описание
info

object

Дополнительные сведения.

type

string

Дополнительный тип сведений.

ErrorDetail

Сведения об ошибке.

Имя Тип Описание
additionalInfo

ErrorAdditionalInfo[]

Дополнительные сведения об ошибке.

code

string

Код ошибки.

details

ErrorDetail[]

Сведения об ошибке.

message

string

Сообщение об ошибке.

target

string

Целевой объект ошибки.

ErrorResponse

Ответ на ошибку

Имя Тип Описание
error

ErrorDetail

Объект ошибки.

ExternalEvaluationEndpointSettings

Параметры внешней конечной точки, предоставляющие результаты оценки.

Имя Тип Описание
details

Сведения о конечной точке.

kind

string

Тип конечной точки.

ExternalEvaluationEnforcementSettings

Сведения о источнике результатов внешней оценки, необходимых политике во время оценки принудительного применения.

Имя Тип Описание
endpointSettings

ExternalEvaluationEndpointSettings

Параметры внешней конечной точки, предоставляющие результаты оценки.

missingTokenAction

string

Что делать при оценке политики принудительного применения, требующей внешней оценки, и маркер отсутствует. Возможные значения: аудит и запрет и выражения языка поддерживаются.

resultLifespan

string

Срок действия вызова конечной точки, после которого он больше не действителен. Ожидается, что значение соответствует формату длительности ISO 8601 и выражениям языка.

roleDefinitionIds

string[]

Массив определения роли идентификаторов MSI назначения потребуется для вызова конечной точки.

ParameterDefinitionsValue

Определение параметра, который может быть предоставлен политике.

Имя Тип Описание
allowedValues

AllowedValues[]

Допустимые значения параметра.

defaultValue

Значение по умолчанию для параметра, если значение не указано.

metadata

ParameterDefinitionsValueMetadata

Общие метаданные параметра.

schema

Обеспечивает проверку входных данных параметров во время назначения с помощью самоопределимой схемы JSON. Это свойство поддерживается только для параметров объектного типа и следует реализации схемы Json.NET 2019-09. Вы можете просмотреть дополнительные сведения об использовании схем на сайте https://json-schema.org/ и протестировать черновые версии схем на сайте https://www.jsonschemavalidator.net/.

type

ParameterType

Тип данных параметра.

ParameterDefinitionsValueMetadata

Общие метаданные параметра.

Имя Тип Описание
assignPermissions

boolean

Установите true так, чтобы Azure portal создавал назначения ролей на идентификаторе ресурса или значении области ресурса этого параметра во время назначения политики. Это свойство полезно, если вы хотите назначить разрешения за пределами области назначения.

description

string

Описание параметра.

displayName

string

Отображаемое имя параметра.

strongType

string

Используется при назначении определения политики через портал. Предоставляет контекстный список значений, которые пользователь выбирает.

ParameterType

Тип данных параметра.

Значение Описание
String

Тип параметра строки.

Array

Тип параметра массива.

Object

Тип параметра объекта.

Boolean

Тип булевых параметров.

Integer

Тип параметра целого числа.

Float

Тип параметра float.

DateTime

Тип параметра дата-время.

PolicyDefinition

Определение политики.

Имя Тип Default value Описание
id

string (arm-id)

Полный идентификатор ресурса для ресурса. Например, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"

name

string

Имя ресурса

properties.description

string

Описание определения политики.

properties.displayName

string

Отображаемое имя определения политики.

properties.externalEvaluationEnforcementSettings

ExternalEvaluationEnforcementSettings

Сведения о источнике результатов внешней оценки, необходимых политике во время оценки принудительного применения.

properties.metadata

Метаданные определения политики. Метаданные — это открытый завершенный объект, который обычно представляет собой коллекцию пар значений ключей.

properties.mode

string

Indexed

Режим определения политики. Ниже приведены примеры All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Определения параметров для параметров, используемых в правиле политики. Ключи — это имена параметров.

properties.policyRule

Правило политики.

properties.policyType

PolicyType

Тип определения политики. Возможные значения: NotSpecified, BuiltIn, Custom и Static.

properties.version

string

Версия определения политики в формате #.#.#

properties.versions

string[]

Список доступных версий для этого определения политики.

systemData

systemData

Azure Resource Manager метаданные, содержащие информацию createdBy и modifiedBy.

type

string

Тип ресурса. Например, "Microsoft.Compute/virtualMachines" или "Microsoft.Storage/storageAccounts"

PolicyType

Тип определения политики. Возможные значения: NotSpecified, BuiltIn, Custom и Static.

Значение Описание
NotSpecified

Тип определения политики, не указанный.

BuiltIn

Встроенный тип определения политики.

Custom

Тип определения пользовательских полисов.

Static

Тип определения статических политик.

systemData

Метаданные, относящиеся к созданию и последнему изменении ресурса.

Имя Тип Описание
createdAt

string (date-time)

Метка времени создания ресурса (UTC).

createdBy

string

Удостоверение, создающее ресурс.

createdByType

createdByType

Тип удостоверения, создавшего ресурс.

lastModifiedAt

string (date-time)

Метка времени последнего изменения ресурса (UTC)

lastModifiedBy

string

Идентификатор, который последний раз изменил ресурс.

lastModifiedByType

createdByType

Тип удостоверения, который последний раз изменил ресурс.