Creación de directivas personalizadas para Microsoft Foundry

Aprenda a usar directivas de Azure personalizadas para permitir que los equipos administren automáticamente los recursos de Microsoft Foundry. Aplique límites de protección y restricciones en las configuraciones permitidas para que pueda proporcionar flexibilidad al cumplir los requisitos de seguridad y cumplimiento.

Mediante el uso de directivas personalizadas, puede hacer lo siguiente:

  • Aplicar controles de seguridad: evite la creación no autorizada de centros de Foundry, proyectos, conexiones o hosts de funcionalidades.
  • Control del comportamiento de los recursos: asegúrese de que las configuraciones de seguridad, apliquen el etiquetado o permitan solo las integraciones aprobadas.
  • Garantizar el cumplimiento: aplique los estándares operativos y de seguridad de la empresa de forma coherente en todos los entornos.

Requisitos previos

Para obtener más información, consulte ¿Qué es Azure Policy?

Pasos para crear una directiva personalizada

  1. Abrir directiva en el portal de Azure

    • Vaya al portal Azure.
    • Busque Directiva y selecciónela.
  2. Definición de una nueva directiva

    • En la sección Creación , seleccione Definiciones>+ Definición de directiva.
    • Proporcione:
      • Ubicación de definición: suscripción (se aplica a los recursos de una sola suscripción) o grupo de administración (se aplica en varias suscripciones).
      • Nombre: un nombre único (por ejemplo, Deny-Unapproved-Connections).
      • Descripción: explique el propósito (por ejemplo, "Restringir las conexiones de Foundry a categorías aprobadas").
      • Categoría: use una categoría existente o cree una como AI Governance.
  3. Agregar regla de directiva

    • Escriba la regla en formato JSON. Por ejemplo, la siguiente directiva restringe las conexiones de Foundry a las categorías aprobadas:

      {
         "mode": "All",
         "policyRule": {
           "if": {
             "allOf": [
               {
                 "field": "type",
                 "in": [
                   "Microsoft.CognitiveServices/accounts/connections",
                   "Microsoft.CognitiveServices/accounts/projects/connections"
                 ]
               },
               {
                 "field": "Microsoft.CognitiveServices/accounts/connections/category",
                 "notIn": "[parameters('allowedCategories')]"
               }
             ]
           },
           "then": {
             "effect": "Deny"
           }
         },
         "parameters": {
           "allowedCategories": {
             "type": "Array",
             "metadata": {
               "displayName": "Allowed connection categories",
               "description": "List of connection categories approved for use"
             }
           }
         }
      }
      

      Para obtener una versión completa y lista para usar de esta directiva, consulte el ejemplo completo:

      {
        "properties": {
          "displayName": "Only selected Foundry connection categories are allowed",
          "policyType": "Custom",
          "mode": "All",
          "description": "Only selected Foundry connection categories are allowed",
          "version": "1.0.0",
          "parameters": {
            "allowedCategories": {
              "type": "Array",
              "metadata": {
                "description": "Categories allowed for Microsoft.CognitiveServices/accounts/connections and Microsoft.CognitiveServices/accounts/projects/connections",
                "displayName": "Allowed connection categories"
              },
              "defaultValue": [
                "BingLLMSearch"
              ]
            }
          },
          "policyRule": {
            "if": {
              "anyOf": [
                {
                  "allOf": [
                    {
                      "field": "type",
                      "equals": "Microsoft.CognitiveServices/accounts/connections"
                    },
                    {
                      "field": "Microsoft.CognitiveServices/accounts/connections/category",
                      "notIn": "[parameters('allowedCategories')]"
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "field": "type",
                      "equals": "Microsoft.CognitiveServices/accounts/projects/connections"
                    },
                    {
                      "field": "Microsoft.CognitiveServices/accounts/projects/connections/category",
                      "notIn": "[parameters('allowedCategories')]"
                    }
                  ]
                }
              ]
            },
            "then": {
              "effect": "deny"
            }
          },
          "versions": [
            "1.0.0"
          ]
        }
      }
      

Esta directiva deniega la creación de conexiones Foundry cuando la conexión category no está en el parámetro allowedCategories. Se aplica tanto a Microsoft.CognitiveServices/accounts/connections como a Microsoft.CognitiveServices/accounts/projects/connections.

Para personalizar el comportamiento, actualice allowedCategories (o anúlelo al asignar la política) con las categorías de conexión que aprueba su organización.

Referencias:

  1. Asigne la directiva

    • Después de guardar, asigne la política al ámbito deseado (suscripción, grupo de recursos o centro).
  2. Validación de la asignación de directiva

    • Intente crear una conexión con una categoría que no esté en allowedCategories y confirme que se deniega la solicitud.
    • Intente crear una conexión con una categoría que esté en allowedCategories y confirme que la solicitud se realiza correctamente.

Escenarios comunes de directivas personalizadas

  • Permitir solo categorías de conexión aprobadas
    Bloquear cualquier categoría de conexión que no sea la aprobada por su organización.

  • Denegar conexiones que usan claves de API como tipo de autenticación
    Requerir todos los demás tipos de autenticación porque las claves de API suelen ser menos seguras.

  • Auditar recursos de Foundry sin un host de funcionalidades válido de agente
    Compruebe la existencia de un ID de ARM de subred de red virtual y los recursos de almacenamiento personalizado al usar el servicio de agente en un entorno regulado.

  • Denegar la creación de tipos de cuenta que no tienen funcionalidades completas de Foundry
    Asegúrese de que las nuevas cuentas están configuradas para que los usuarios puedan acceder a todas las funcionalidades de Foundry.

Biblioteca de ejemplo

Explore plantillas y ejemplos listos para usar en el repositorio de GitHub:
Definiciones de directivas personalizadas

Esta biblioteca incluye plantillas JSON para escenarios comunes.

Pasos siguientes

  • Revise Directivas integradas para Foundry para obtener directivas integradas y personalizadas para lograr un cumplimiento completo.
  • Pruebe las directivas en un entorno que no sea de producción antes de aplicarlas ampliamente.

Solución de problemas

  • Si no puede crear o asignar una definición de directiva, confirme que tiene el rol necesario en el ámbito que está usando.
  • Si no se bloquea una conexión como se esperaba, confirme que el ámbito de asignación de directiva incluye el recurso de destino.
  • Si una directiva bloquea más recursos de los esperados, revise el allowedCategories valor usado en la asignación.
  • La evaluación de política puede tardar hasta 30 minutos después de la asignación. Para forzar la evaluación inmediata, ejecute az policy state trigger-scan --resource-group <resource-group-name>.