Efecto denyAction de definiciones de Azure Policy
El efecto denyAction
se usa para bloquear las solicitudes en función de la acción prevista para los recursos a escala. La única acción admitida hoy en día es DELETE
. Este efecto y el nombre de la acción ayudan a prevenir cualquier eliminación accidental de recursos críticos.
Evaluación de DenyAction
Cuando se envía una llamada de solicitud con un nombre de acción aplicable y el ámbito de destino, denyAction
impide que la solicitud se realice correctamente. La solicitud se devuelve como un código 403 (Forbidden)
. En el portal, Forbidden
se puede ver como un estado de implementación que impedía la asignación de directiva.
Microsoft.Authorization/policyAssignments
, Microsoft.Authorization/denyAssignments
, Microsoft.Blueprint/blueprintAssignments
, Microsoft.Resources/deploymentStacks
, Microsoft.Resources/subscriptions
, y Microsoft.Authorization/locks
están exentos de la aplicación denyAction
para evitar escenarios de bloqueo.
Eliminación de suscripciones
La directiva no bloquea la eliminación de recursos que se producen durante la eliminación de una suscripción.
Eliminación de grupos de recursos
La directiva evalúa los recursos que admiten la ubicación y las etiquetas con las directivas denyAction
durante la eliminación de un grupo de recursos. Solo las directivas que tengan cascadeBehaviors
establecido en deny
en la regla de directiva bloquean la eliminación de un grupo de recursos. La directiva no bloquear la eliminación de recursos que no admitan la ubicación y las etiquetas ni ninguna directiva con mode:all
.
Eliminación en cascada
La eliminación en cascada se produce cuando la eliminación de un recurso primario elimina implícitamente todos sus recursos secundarios y de extensión. La directiva no bloquea la eliminación de recursos secundarios y de extensión cuando una acción de eliminación tiene como destino los recursos primarios. Por ejemplo, Microsoft.Insights/diagnosticSettings
es un recurso de extensión Microsoft.Storage/storageaccounts
. Si una directiva denyAction
tiene como destino Microsoft.Insights/diagnosticSettings
, se produce un error en una llamada de eliminación a la configuración de diagnóstico (secundario), pero una eliminación de la cuenta de almacenamiento (primaria) elimina implícitamente la configuración de diagnóstico (extensión).
En esta tabla se describe si un recurso se protegerá de la eliminación dado el recurso aplicable a la directiva denyAction
asignada y el ámbito objetivo de la llamada DELETE
. En el contexto de esta tabla, un recurso indexado es aquel que admite etiquetas y ubicaciones, y un recurso no indexado es aquel que no admite etiquetas ni ubicaciones. Para más información sobre los recursos indexados y no indexados, consulte el modo de definición. Los recursos secundarios son recursos que solo existen en el contexto de otro recurso. Por ejemplo, un recurso de extensión de máquina virtual es un elemento secundario de la máquina virtual, que es el recurso primario.
Entidad que se va a eliminar | Entidad aplicable a condiciones de directiva | Acción realizada |
---|---|---|
Resource | Resource | Protegido |
Suscripción | Resource | Deleted |
Resource group | Recurso indexado | Depende de cascadeBehaviors |
Resource group | Recurso no indexado | Deleted |
Recurso secundario | Recurso principal | El elemento primario está protegido; se elimina el elemento secundario |
Recurso principal | Recurso secundario | Deleted |
Propiedades de DenyAction
La propiedad details
del efecto denyAction
tiene todas las subpropiedades que definen la acción y los comportamientos.
actionNames
(obligatorio)- Matriz que especifica qué acciones se va a impedir que se ejecuten.
- Los nombres de acción admitidos son:
delete
.
cascadeBehaviors
(opcional)- Un Objeto que define qué comportamiento se sigue cuando se elimina implícitamente un recurso cuando se quita un grupo de recursos.
- Solo se admite en las definiciones de directiva con el modo establecido en
indexed
. - Los valores permitidos son:
allow
odeny
. - El valor predeterminado es
deny
.
Ejemplo DenyAction
Ejemplo: Denegar cualquier llamada de eliminación dirigida a cuentas de base de datos que tengan un entorno de etiqueta que sea igual a producción. Dado que el comportamiento en cascada se establece en deny, bloquee cualquier llamada DELETE
destinada a un grupo de recursos con una cuenta de base de datos aplicable.
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.DocumentDb/accounts"
},
{
"field": "tags.environment",
"equals": "prod"
}
]
},
"then": {
"effect": "denyAction",
"details": {
"actionNames": [
"delete"
],
"cascadeBehaviors": {
"resourceGroup": "deny"
}
}
}
}
Pasos siguientes
- Puede consultar ejemplos en Ejemplos de Azure Policy.
- Revise la estructura de definición de Azure Policy.
- Obtenga información acerca de cómo se pueden crear directivas mediante programación.
- Obtenga información sobre cómo obtener datos de cumplimiento.
- Obtenga información sobre cómo corregir recursos no compatibles.
- Revise Grupos de administración de Azure.