Policy Definitions - Create Or Update

Crea o actualiza una definición de directiva en una suscripción.
Esta operación crea o actualiza una definición de directiva en la suscripción especificada con el nombre especificado.

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

Parámetros de identificador URI

Nombre En Requerido Tipo Description
policyDefinitionName
path True

string

Nombre de la definición de directiva que se va a crear.

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

subscriptionId
path True

string

uuid

Identificador de la suscripción de destino. El valor debe ser un UUID.

api-version
query True

string

Versión de API que se usará para la operación.

Cuerpo de la solicitud

Nombre Tipo Description
properties.description

string

Descripción de la definición de directiva.

properties.displayName

string

Nombre para mostrar de la definición de directiva.

properties.metadata

object

Metadatos de definición de directiva. Los metadatos son un objeto abierto y normalmente es una colección de pares clave-valor.

properties.mode

string

Modo de definición de directiva. Algunos ejemplos son All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Definiciones de parámetros para parámetros usados en la regla de directiva. Las claves son los nombres de parámetro.

properties.policyRule

object

Regla de directiva.

properties.policyType

policyType

Tipo de definición de directiva. Los valores posibles son NotSpecified, BuiltIn, Custom y Static.

properties.version

string

La versión de definición de directiva en formato #.#.#.

properties.versions

string[]

Lista de versiones disponibles para esta definición de directiva.

Respuestas

Nombre Tipo Description
201 Created

PolicyDefinition

Creado: devuelve información sobre la definición de directiva.

Other Status Codes

CloudError

Respuesta de error que describe el motivo del error de la operación.

Seguridad

azure_auth

Flujo de OAuth2 de Azure Active Directory.

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

Scopes

Nombre Description
user_impersonation suplantación de su cuenta de usuario

Ejemplos

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

Definiciones

Nombre Description
CloudError

Respuesta de error de una operación de directiva.

createdByType

Tipo de identidad que creó el recurso.

ErrorAdditionalInfo

Información adicional sobre el error de administración de recursos.

ErrorResponse

Respuesta de error

Metadata

Metadatos generales para el parámetro .

ParameterDefinitionsValue

Definición de un parámetro que se puede proporcionar a la directiva.

parameterType

El tipo de datos del parámetro.

PolicyDefinition

Definición de directiva.

policyType

Tipo de definición de directiva. Los valores posibles son NotSpecified, BuiltIn, Custom y Static.

systemData

Metadatos relacionados con la creación y la última modificación del recurso.

CloudError

Respuesta de error de una operación de directiva.

Nombre Tipo Description
error

ErrorResponse

Respuesta de error
Respuesta de error común para todas las API de Azure Resource Manager para devolver los detalles de error de las operaciones con errores. (Esto también sigue el formato de respuesta de error de OData).

createdByType

Tipo de identidad que creó el recurso.

Nombre Tipo Description
Application

string

Key

string

ManagedIdentity

string

User

string

ErrorAdditionalInfo

Información adicional sobre el error de administración de recursos.

Nombre Tipo Description
info

object

Información adicional.

type

string

Tipo de información adicional.

ErrorResponse

Respuesta de error

Nombre Tipo Description
additionalInfo

ErrorAdditionalInfo[]

Información adicional del error.

code

string

Código de error.

details

ErrorResponse[]

Los detalles del error.

message

string

El mensaje de error.

target

string

Destino del error.

Metadata

Metadatos generales para el parámetro .

Nombre Tipo Description
assignPermissions

boolean

Establézcalo en true para que Azure Portal cree asignaciones de roles en el identificador de recurso o el valor de ámbito de recurso de este parámetro durante la asignación de directiva. Esta propiedad es útil en caso de que desee asignar permisos fuera del ámbito de asignación.

description

string

La descripción del parámetro.

displayName

string

Nombre para mostrar del parámetro .

strongType

string

Se usa al asignar la definición de directiva a través del portal. Proporciona una lista con reconocimiento de contexto de valores entre los que el usuario debe elegir.

ParameterDefinitionsValue

Definición de un parámetro que se puede proporcionar a la directiva.

Nombre Tipo Description
allowedValues

object[]

Valores permitidos para el parámetro .

defaultValue

object

Valor predeterminado del parámetro si no se proporciona ningún valor.

metadata

Metadata

Metadatos generales para el parámetro .

schema

object

Proporciona validación de entradas de parámetro durante la asignación mediante un esquema JSON autodefinido. Esta propiedad solo se admite para los parámetros de tipo de objeto y sigue la implementación 2019-09 del esquema Json.NET. Puede obtener más información sobre el uso de esquemas en https://json-schema.org/ y probar borradores de esquemas en https://www.jsonschemavalidator.net/.

type

parameterType

El tipo de datos del parámetro.

parameterType

El tipo de datos del parámetro.

Nombre Tipo Description
Array

string

Boolean

string

DateTime

string

Float

string

Integer

string

Object

string

String

string

PolicyDefinition

Definición de directiva.

Nombre Tipo Valor predeterminado Description
id

string

Identificador de la definición de directiva.

name

string

Nombre de la definición de directiva.

properties.description

string

Descripción de la definición de directiva.

properties.displayName

string

Nombre para mostrar de la definición de directiva.

properties.metadata

object

Metadatos de definición de directiva. Los metadatos son un objeto abierto y normalmente es una colección de pares clave-valor.

properties.mode

string

Indexed

Modo de definición de directiva. Algunos ejemplos son All, Indexed, Microsoft.KeyVault.Data.

properties.parameters

<string,  ParameterDefinitionsValue>

Definiciones de parámetros para parámetros usados en la regla de directiva. Las claves son los nombres de parámetro.

properties.policyRule

object

Regla de directiva.

properties.policyType

policyType

Tipo de definición de directiva. Los valores posibles son NotSpecified, BuiltIn, Custom y Static.

properties.version

string

La versión de definición de directiva en formato #.#.#.

properties.versions

string[]

Lista de versiones disponibles para esta definición de directiva.

systemData

systemData

Metadatos del sistema relacionados con este recurso.

type

string

Tipo del recurso (Microsoft.Authorization/policyDefinitions).

policyType

Tipo de definición de directiva. Los valores posibles son NotSpecified, BuiltIn, Custom y Static.

Nombre Tipo Description
BuiltIn

string

Custom

string

NotSpecified

string

Static

string

systemData

Metadatos relacionados con la creación y la última modificación del recurso.

Nombre Tipo Description
createdAt

string

Marca de tiempo de creación de recursos (UTC).

createdBy

string

Identidad que creó el recurso.

createdByType

createdByType

Tipo de identidad que creó el recurso.

lastModifiedAt

string

Marca de tiempo de la última modificación del recurso (UTC)

lastModifiedBy

string

Identidad que modificó por última vez el recurso.

lastModifiedByType

createdByType

Tipo de identidad que modificó por última vez el recurso.