Policy Definitions - Create Or Update

구독에서 정책 정의를 만들거나 업데이트합니다.
이 작업은 지정된 구독에서 지정된 이름으로 정책 정의를 만들거나 업데이트합니다.

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

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
policyDefinitionName
path True

string

만들 정책 정의의 이름입니다.

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

subscriptionId
path True

string

uuid

대상 구독의 ID입니다. 값은 UUID여야 합니다.

api-version
query True

string

이 작업에 사용할 API 버전입니다.

요청 본문

Name 형식 Description
properties.description

string

정책 정의 설명입니다.

properties.displayName

string

정책 정의의 표시 이름입니다.

properties.metadata

object

정책 정의 메타데이터입니다. 메타데이터는 개방형 종료 개체이며 일반적으로 키 값 쌍의 컬렉션입니다.

properties.mode

string

정책 정의 모드입니다. 일부 예는 All, Indexed, Microsoft.KeyVault.Data입니다.

properties.parameters

<string,  ParameterDefinitionsValue>

정책 규칙에 사용되는 매개 변수에 대한 매개 변수 정의입니다. 키는 매개 변수 이름입니다.

properties.policyRule

object

정책 규칙입니다.

properties.policyType

policyType

정책 정의의 형식입니다. 가능한 값은 NotSpecified, BuiltIn, Custom 및 Static입니다.

properties.version

string

#.#.# 형식의 정책 정의 버전입니다.

properties.versions

string[]

이 정책 정의에 사용 가능한 버전 목록입니다.

응답

Name 형식 Description
201 Created

PolicyDefinition

만든 - 정책 정의에 대한 정보를 반환합니다.

Other Status Codes

CloudError

작업이 실패한 이유를 설명하는 오류 응답입니다.

보안

azure_auth

Azure Active Directory OAuth2 Flow.

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

Scopes

Name Description
user_impersonation 사용자 계정 가장

예제

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

정의

Name Description
CloudError

정책 작업의 오류 응답입니다.

createdByType

리소스를 만든 ID의 형식입니다.

ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

ErrorResponse

오류 응답

Metadata

매개 변수에 대한 일반 메타데이터입니다.

ParameterDefinitionsValue

정책에 제공할 수 있는 매개 변수의 정의입니다.

parameterType

매개 변수의 데이터 형식입니다.

PolicyDefinition

정책 정의입니다.

policyType

정책 정의의 형식입니다. 가능한 값은 NotSpecified, BuiltIn, Custom 및 Static입니다.

systemData

리소스 만들기 및 마지막 수정과 관련된 메타데이터입니다.

CloudError

정책 작업의 오류 응답입니다.

Name 형식 Description
error

ErrorResponse

오류 응답
실패한 작업에 대한 오류 세부 정보를 반환하는 모든 Azure Resource Manager API에 대한 일반적인 오류 응답입니다. OData 오류 응답 형식도 따릅니다.

createdByType

리소스를 만든 ID의 형식입니다.

Name 형식 Description
Application

string

Key

string

ManagedIdentity

string

User

string

ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

Name 형식 Description
info

object

추가 정보입니다.

type

string

추가 정보 유형입니다.

ErrorResponse

오류 응답

Name 형식 Description
additionalInfo

ErrorAdditionalInfo[]

오류 추가 정보입니다.

code

string

오류 코드입니다.

details

ErrorResponse[]

오류 세부 정보입니다.

message

string

오류 메시지입니다.

target

string

오류 대상입니다.

Metadata

매개 변수에 대한 일반 메타데이터입니다.

Name 형식 Description
assignPermissions

boolean

정책 할당 중에 이 매개 변수의 리소스 ID 또는 리소스 scope 값에 Azure Portal 역할 할당을 만들도록 하려면 true로 설정합니다. 이 속성은 할당 범위 외부에서 사용 권한을 할당하려는 경우에 유용합니다.

description

string

매개 변수에 대한 설명입니다.

displayName

string

매개 변수의 표시 이름입니다.

strongType

string

포털을 통해 정책 정의를 할당할 때 사용됩니다. 사용자가 선택할 수 있는 값의 컨텍스트 인식 목록을 제공합니다.

ParameterDefinitionsValue

정책에 제공할 수 있는 매개 변수의 정의입니다.

Name 형식 Description
allowedValues

object[]

매개 변수에 허용되는 값입니다.

defaultValue

object

값이 제공되지 않은 경우 매개 변수의 기본값입니다.

metadata

Metadata

매개 변수에 대한 일반 메타데이터입니다.

schema

object

자체 정의 JSON 스키마를 사용하여 할당하는 동안 매개 변수 입력의 유효성 검사를 제공합니다. 이 속성은 개체 형식 매개 변수에 대해서만 지원되며 Json.NET 스키마 2019-09 구현을 따릅니다. https://json-schema.org/에서 스키마 사용에 대해 자세히 알아보고 https://www.jsonschemavalidator.net/에서 초안 스키마를 테스트할 수 있습니다.

type

parameterType

매개 변수의 데이터 형식입니다.

parameterType

매개 변수의 데이터 형식입니다.

Name 형식 Description
Array

string

Boolean

string

DateTime

string

Float

string

Integer

string

Object

string

String

string

PolicyDefinition

정책 정의입니다.

Name 형식 기본값 Description
id

string

정책 정의의 ID입니다.

name

string

정책 정의의 이름입니다.

properties.description

string

정책 정의 설명입니다.

properties.displayName

string

정책 정의의 표시 이름입니다.

properties.metadata

object

정책 정의 메타데이터입니다. 메타데이터는 개방형 종료 개체이며 일반적으로 키 값 쌍의 컬렉션입니다.

properties.mode

string

Indexed

정책 정의 모드입니다. 일부 예는 All, Indexed, Microsoft.KeyVault.Data입니다.

properties.parameters

<string,  ParameterDefinitionsValue>

정책 규칙에 사용되는 매개 변수에 대한 매개 변수 정의입니다. 키는 매개 변수 이름입니다.

properties.policyRule

object

정책 규칙입니다.

properties.policyType

policyType

정책 정의의 형식입니다. 가능한 값은 NotSpecified, BuiltIn, Custom 및 Static입니다.

properties.version

string

#.#.# 형식의 정책 정의 버전입니다.

properties.versions

string[]

이 정책 정의에 사용 가능한 버전 목록입니다.

systemData

systemData

이 리소스와 관련된 시스템 메타데이터입니다.

type

string

리소스 유형(Microsoft.Authorization/policyDefinitions)입니다.

policyType

정책 정의의 형식입니다. 가능한 값은 NotSpecified, BuiltIn, Custom 및 Static입니다.

Name 형식 Description
BuiltIn

string

Custom

string

NotSpecified

string

Static

string

systemData

리소스 만들기 및 마지막 수정과 관련된 메타데이터입니다.

Name 형식 Description
createdAt

string

UTC(리소스 만들기)의 타임스탬프입니다.

createdBy

string

리소스를 만든 ID입니다.

createdByType

createdByType

리소스를 만든 ID의 형식입니다.

lastModifiedAt

string

리소스 마지막 수정의 타임스탬프(UTC)

lastModifiedBy

string

리소스를 마지막으로 수정한 ID입니다.

lastModifiedByType

createdByType

리소스를 마지막으로 수정한 ID 유형입니다.