Compartir por


Solución de problemas relacionados con la implementación de directivas de Azure en Key Vault

En este artículo se explica cómo solucionar los errores generales que pueden producirse al configurar Azure Policy para Key Vault y se sugieren formas de resolverlos.

Acerca de Azure Policy en Key Vault

Azure Policy es una herramienta de gobierno que ofrece a los usuarios la capacidad de auditar y administrar su entorno de Azure a escala. Azure Policy le permite colocar barreras en los recursos de Azure para asegurarse de que son compatibles con las reglas de directivas asignadas. Permite a los usuarios realizar tareas de auditoría, aplicación en tiempo real y corrección de su entorno de Azure. Los resultados de las auditorías realizadas por la directiva estarán disponibles para los usuarios en un panel de cumplimiento, donde podrán ver una exploración en profundidad de qué recursos y componentes son compatibles y cuáles no.

Registro

Para supervisar cómo se realizan las evaluaciones de directivas, puede revisar los registros de Key Vault. Se explica cómo habilitar el registro de Azure Key Vault, que guarda la información en una cuenta de almacenamiento de Azure proporcionada por el usuario. Para obtener instrucciones paso a paso, consulte Habilitación del registro de Key Vault.

Al habilitar el registro, se creará automáticamente un contenedor llamado AzurePolicyEvaluationDetails para recopilar información de registro relacionada con las directivas en la cuenta de almacenamiento especificada.

Nota:

Debe regular estrictamente el acceso a los datos de supervisión, especialmente a los archivos de registro, ya que pueden contener información confidencial. Descubra cómo aplicar el rol de supervisión integrado de Azure y limitar el acceso.

Los blobs individuales se almacenan como texto, con formato de blob JSON.

Echemos un vistazo a una entrada de registro de ejemplo de una directiva de clave: las claves deben tener establecida la fecha de expiración. Esta directiva evalúa todas las claves de los almacenes de claves y marca como no compatibles aquellas que no tienen establecida una fecha de expiración.

{
  "ObjectName": "example",
  "ObjectType": "Key",
  "IsComplianceCheck": false,
  "EvaluationDetails": [
    {
      "AssignmentId": "<subscription ID>",
      "AssignmentDisplayName": "[Preview]: Key Vault keys should have an expiration date",
      "DefinitionId": "<definition ID>",
      "DefinitionDisplayName": "[Preview]: Key Vault keys should have an expiration date",
      "Outcome": "NonCompliant",
      "ExpressionEvaluationDetails": [
        {
          "Result": "True",
          "Expression": "type",
          "ExpressionKind": "Field",
          "ExpressionValue": "Microsoft.KeyVault.Data/vaults/keys",
          "TargetValue": "Microsoft.KeyVault.Data/vaults/keys",
          "Operator": "Equals"
        },
        {
          "Result": "True",
          "Expression": "Microsoft.KeyVault.Data/vaults/keys/attributes.expiresOn",
          "ExpressionKind": "Field",
          "ExpressionValue": "******",
          "TargetValue": "False",
          "Operator": "Exists"
        }
      ]
    }
  ]
}

En la tabla siguiente se muestran los nombres y las descripciones de los campos:

Nombre del campo Descripción
ObjectName Nombre del objeto.
ObjectType Tipo de objeto de almacén de claves: certificado, secreto o clave.
IsComplianceCheck True si la evaluación se produjo durante la auditoría nocturna; false si se produjo durante la creación o actualización de recursos.
AssignmentId Identificador de la asignación de directiva
AssignmentDisplayName Nombre descriptivo de la asignación de directiva
DefinitionId Identificador de la definición de directiva para la asignación
DefinitionDisplayName Nombre descriptivo de la definición de directiva para la asignación
Resultado Resultado de la evaluación de directivas
ExpressionEvaluationDetails Detalles sobre las evaluaciones realizadas durante la evaluación de directivas
ExpressionValue Valor real del campo especificado durante la evaluación de directivas
TargetValue Valor esperado del campo especificado

Preguntas más frecuentes

Recuperación de Key Vault bloqueado por Azure Policy

Una de las razones podría ser que su suscripción (o grupo de administración) tiene una directiva que bloquea la recuperación. Para corregir este problema, ajuste la directiva para que no se aplique cuando se recupera un almacén.

Si ve el tipo de error RequestDisallowedByPolicy en la recuperación debido a la directiva integrada, asegúrese de que usa la versión más actualizada.

Si ha creado una directiva personalizada con su propia lógica, este es un ejemplo de parte de una directiva que se puede usar para requerir la eliminación temporal. Para recuperar un almacén eliminado temporalmente se usa la misma API que para la creación o la actualización de un almacén. Sin embargo, en lugar de especificar las propiedades del almacén, tiene una única propiedad "createMode" con el valor "recover". El almacén se restaurará con las propiedades que tenía cuando se eliminó. Las directivas que bloquean las solicitudes también bloquearán la recuperación de almacenes eliminados temporalmente, a menos que tengan propiedades específicas configuradas. Para corregir este problema, incluya una cláusula que haga que la directiva omita las solicitudes cuando "createMode" es "recover":

Verá que tiene una cláusula que hace que la directiva solo se aplique cuando "createMode" no es igual a "recover":


    "policyRule": { 
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.KeyVault/vaults"
          }, 
          {
            "not": {
              "field": "Microsoft.Keyvault/vaults/createMode",
              "equals": "recover"
            }
          },
          {
            "anyOf": [
              {
                "field": "Microsoft.KeyVault/vaults/enableSoftDelete",
                "exists": "false"
              },
              {
                "field": "Microsoft.KeyVault/vaults/enableSoftDelete",
                "equals": "false"
              }
            ]
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]"
      }
    }

Latencia en la eliminación de asignaciones de directivas de Azure en Key Vault

Microsoft.KeyVault.Data: una asignación de directiva eliminada puede tardar hasta 24 horas en dejar de aplicarse.

Mitigación: actualice el efecto de la asignación de directiva a "Deshabilitado".

Creación de secretos a través de una plantilla de ARM que falta en la evaluación de directivas

Las directivas de plano de datos que evalúan la creación de secretos no serían aplicables a los secretos creados a través de la plantilla de ARM en el momento de la creación del secreto. Al cabo de 24 horas, se produciría la comprobación de cumplimiento automatizada y se pueden revisar los resultados de cumplimiento.

Pasos siguientes