Compartir a través de


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

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

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

subscriptionId
path True

string (uuid)

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

api-version
query True

string

minLength: 1

Versión de la API que se va a usar para esta 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 terminado 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 los 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 por qué se produjo un error en la operación.

Seguridad

azure_auth

Flujo de OAuth2 de Azure Active Directory.

Tipo: oauth2
Flujo: implicit
Dirección URL de autorización: https://login.microsoftonline.com/common/oauth2/authorize

Ámbitos

Nombre Description
user_impersonation suplantar la 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

Solicitud de ejemplo

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

Respuesta de muestra

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

Solicitud de ejemplo

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

Respuesta de muestra

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

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 relativos a la creación y ú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.

Valor Description
Application
Key
ManagedIdentity
User

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[]

Detalles del error.

message

string

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 directivas. Esta propiedad es útil en caso de que desee asignar permisos fuera del ámbito de asignación.

description

string

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 puede 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 del esquema de Json.NET 2019-09. Puede obtener más información sobre el uso de esquemas en https://json-schema.org/ y probar esquemas de borrador en https://www.jsonschemavalidator.net/.

type

parameterType

Tipo de datos del parámetro.

parameterType

Tipo de datos del parámetro.

Valor Description
Array
Boolean
DateTime
Float
Integer
Object
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 terminado 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 los 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.

Valor Description
BuiltIn
Custom
NotSpecified
Static

systemData

Metadatos relativos a la creación y última modificación del recurso.

Nombre Tipo Description
createdAt

string (date-time)

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 (date-time)

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.