Policy Definitions - Create Or Update

Bu işlem, verilen abonelikte verilen isimle bir politika tanımı oluşturur veya günceller.

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

URI Parametreleri

Name İçinde Gerekli Tür Description
policyDefinitionName
path True

string

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

Alınacak ilke tanımının adı.

subscriptionId
path True

string (uuid)

Hedef aboneliğin kimliği. Değer bir UUID olmalıdır.

api-version
query True

string

minLength: 1

Bu işlem için kullanılacak API sürümü.

İstek Gövdesi

Name Tür Description
properties.description

string

İlke tanımı açıklaması.

properties.displayName

string

İlke tanımının görünen adı.

properties.externalEvaluationEnforcementSettings

ExternalEvaluationEnforcementSettings

Zorlama değerlendirmesi sırasında ilkenin gerektirdiği dış değerlendirme sonuçlarının kaynağının ayrıntıları.

properties.metadata

İlke tanımı meta verileri. Meta veriler açık uçlu bir nesnedir ve genellikle anahtar değer çiftleri koleksiyonudur.

properties.mode

string

İlke tanımı modu. Bazı örnekler All, Indexed, Microsoft.KeyVault.Data'dır.

properties.parameters

<string,  ParameterDefinitionsValue>

İlke kuralında kullanılan parametreler için parametre tanımları. Anahtarlar parametre adlarıdır.

properties.policyRule

İlke kuralı.

properties.policyType

PolicyType

İlke tanımının türü. Olası değerler NotSpecified, BuiltIn, Custom ve Static değerleridir.

properties.version

string

#.#.# biçimindeki ilke tanımı sürümü.

properties.versions

string[]

Bu ilke tanımı için kullanılabilir sürümlerin listesi.

Yanıtlar

Name Tür Description
201 Created

PolicyDefinition

Kaynak 'PolicyDefinition' operasyonu oluşturma başarılı oldu

Other Status Codes

ErrorResponse

Beklenmeyen bir hata yanıtı.

Güvenlik

azure_auth

Azure Active Directory OAuth2 Akışı.

Tür: oauth2
Akış: implicit
Yetkilendirme URL’si: https://login.microsoftonline.com/common/oauth2/authorize

Kapsamlar

Name Description
user_impersonation kullanıcı hesabınızı taklit etme

Örnekler

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

Örnek isteği

PUT https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming?api-version=2026-07-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"
      }
    }
  }
}

Örnek yanıt

{
  "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

Örnek isteği

PUT https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/EventHubDiagnosticLogs?api-version=2026-07-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"
              }
            ]
          }
        }
      }
    }
  }
}

Örnek yanıt

{
  "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

Örnek isteği

PUT https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/RandomizeVMAllocation?api-version=2026-07-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"
      }
    }
  }
}

Örnek yanıt

{
  "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"
    ]
  }
}

Tanımlar

Name Description
createdByType

Kaynağı oluşturan kimliğin türü.

ErrorAdditionalInfo

Kaynak yönetimi hatasına ilişkin ek bilgiler.

ErrorDetail

Hata ayrıntısı.

ErrorResponse

Hata yanıtı

ExternalEvaluationEndpointSettings

Değerlendirme sonuçları sağlayan bir dış uç noktanın ayarları.

ExternalEvaluationEnforcementSettings

Zorlama değerlendirmesi sırasında ilkenin gerektirdiği dış değerlendirme sonuçlarının kaynağının ayrıntıları.

ParameterDefinitionsValue

İlkeye sağlanabilir bir parametrenin tanımı.

ParameterDefinitionsValueMetadata

parametresi için genel meta veriler.

ParameterType

Parametresinin veri türü.

PolicyDefinition

İlke tanımı.

PolicyType

İlke tanımının türü. Olası değerler NotSpecified, BuiltIn, Custom ve Static değerleridir.

systemData

Kaynağın oluşturulması ve son değiştirilmesiyle ilgili meta veriler.

createdByType

Kaynağı oluşturan kimliğin türü.

Değer Description
User
Application
ManagedIdentity
Key

ErrorAdditionalInfo

Kaynak yönetimi hatasına ilişkin ek bilgiler.

Name Tür Description
info

object

Ek bilgiler.

type

string

Ek bilgi türü.

ErrorDetail

Hata ayrıntısı.

Name Tür Description
additionalInfo

ErrorAdditionalInfo[]

Hata ek bilgisi.

code

string

Hata kodu.

details

ErrorDetail[]

Hata ayrıntıları.

message

string

Hata iletisi.

target

string

Hata hedefi

ErrorResponse

Hata yanıtı

Name Tür Description
error

ErrorDetail

Hata nesnesi.

ExternalEvaluationEndpointSettings

Değerlendirme sonuçları sağlayan bir dış uç noktanın ayarları.

Name Tür Description
details

Uç noktanın ayrıntıları.

kind

string

Uç noktanın türü.

ExternalEvaluationEnforcementSettings

Zorlama değerlendirmesi sırasında ilkenin gerektirdiği dış değerlendirme sonuçlarının kaynağının ayrıntıları.

Name Tür Description
endpointSettings

ExternalEvaluationEndpointSettings

Değerlendirme sonuçları sağlayan bir dış uç noktanın ayarları.

missingTokenAction

string

Dış değerlendirme gerektiren ve belirteç eksik olan bir zorlama ilkesini değerlendirirken yapılması gerekenler. Olası değerler Denetim ve Reddet'tir ve dil ifadeleri desteklenir.

resultLifespan

string

Uç nokta çağırma sonucunun kullanım ömrü, bundan sonra geçerliliğini yitirir. Değerin ISO 8601 süre biçimini izlemesi beklenir ve dil ifadeleri desteklenir.

roleDefinitionIds

string[]

Atamanın MSI'sinin uç noktayı çağırmak için ihtiyaç duyacağı rol tanımı kimlikleri dizisi.

ParameterDefinitionsValue

İlkeye sağlanabilir bir parametrenin tanımı.

Name Tür Description
allowedValues

AllowedValues[]

parametresi için izin verilen değerler.

defaultValue

Değer sağlanmazsa parametresi için varsayılan değer.

metadata

ParameterDefinitionsValueMetadata

parametresi için genel meta veriler.

schema

Kendi kendine tanımlanmış bir JSON şeması kullanarak atama sırasında parametre girişlerinin doğrulanması sağlar. Bu özellik yalnızca nesne tipi parametreler için desteklenir ve Json.NET Schema 2019-09 uygulamasını takip eder. adresinde şemaları https://json-schema.org/ kullanma hakkında daha fazla bilgi edinebilir ve adresinden taslak şemaları https://www.jsonschemavalidator.net/test edebilirsiniz.

type

ParameterType

Parametresinin veri türü.

ParameterDefinitionsValueMetadata

parametresi için genel meta veriler.

Name Tür Description
assignPermissions

boolean

Politika ataması sırasında Azure portalının bu parametrenin kaynak kimliği veya kaynak kapsamı değeri üzerinde rol atamaları oluşturmasını sağlamak için doğru olarak ayarlanın. Bu özellik, atama kapsamının dışında izinler atamak istemeniz durumunda kullanışlıdır.

description

string

Parametresinin açıklaması.

displayName

string

Parametresinin görünen adı.

strongType

string

portal aracılığıyla ilke tanımı atanırken kullanılır. Kullanıcının seçileceği değerlerin bağlam bilgisi olan bir listesi sağlar.

ParameterType

Parametresinin veri türü.

Değer Description
String

Dizi parametre türü.

Array

Dizi parametre türü.

Object

Nesne parametre türü.

Boolean

Boolean parametre türü.

Integer

Tamsayı parametre türü.

Float

Float parametre türü.

DateTime

Tarih-saat parametre türü.

PolicyDefinition

İlke tanımı.

Name Tür Default value Description
id

string (arm-id)

Kaynağın tam nitelikli kaynak kimliği. Örneğin "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"

name

string

Kaynağın adı

properties.description

string

İlke tanımı açıklaması.

properties.displayName

string

İlke tanımının görünen adı.

properties.externalEvaluationEnforcementSettings

ExternalEvaluationEnforcementSettings

Zorlama değerlendirmesi sırasında ilkenin gerektirdiği dış değerlendirme sonuçlarının kaynağının ayrıntıları.

properties.metadata

İlke tanımı meta verileri. Meta veriler açık uçlu bir nesnedir ve genellikle anahtar değer çiftleri koleksiyonudur.

properties.mode

string

Indexed

İlke tanımı modu. Bazı örnekler All, Indexed, Microsoft.KeyVault.Data'dır.

properties.parameters

<string,  ParameterDefinitionsValue>

İlke kuralında kullanılan parametreler için parametre tanımları. Anahtarlar parametre adlarıdır.

properties.policyRule

İlke kuralı.

properties.policyType

PolicyType

İlke tanımının türü. Olası değerler NotSpecified, BuiltIn, Custom ve Static değerleridir.

properties.version

string

#.#.# biçimindeki ilke tanımı sürümü.

properties.versions

string[]

Bu ilke tanımı için kullanılabilir sürümlerin listesi.

systemData

systemData

createdBy ve modifiedBy bilgilerini içeren Azure Resource Manager meta verileri.

type

string

Kaynağın türü. Örneğin, "Microsoft.Compute/virtualMachines" veya "Microsoft.Storage/storageAccounts"

PolicyType

İlke tanımının türü. Olası değerler NotSpecified, BuiltIn, Custom ve Static değerleridir.

Değer Description
NotSpecified

Belirtilmemiş politika tanımı türü.

BuiltIn

Yerleşik politika tanımı türü.

Custom

Özel politika tanım türü.

Static

Statik politika tanımı türü.

systemData

Kaynağın oluşturulması ve son değiştirilmesiyle ilgili meta veriler.

Name Tür Description
createdAt

string (date-time)

Kaynak oluşturmanın zaman damgası (UTC).

createdBy

string

Kaynağı oluşturan kimlik.

createdByType

createdByType

Kaynağı oluşturan kimliğin türü.

lastModifiedAt

string (date-time)

Kaynağın son değişikliğinin zaman damgası (UTC)

lastModifiedBy

string

Kaynağı en son değiştiren kimlik.

lastModifiedByType

createdByType

Kaynağı en son değiştiren kimlik türü.