Configurar el registro de Model Armor

En este documento se describe cómo configurar Model Armor para registrar las siguientes operaciones:

  • Operaciones que crean, actualizan o eliminan una plantilla
  • Operaciones que desinfectan una petición de un usuario o una respuesta de un modelo

Model Armor usa registros de auditoría para registrar las actividades de gestión de administradores y recursos. Para obtener más información, consulta el artículo Información general sobre el registro de auditoría de Model Armor.

Antes de empezar

Completa estas tareas antes de completar las tareas restantes de esta página.

Obtener los permisos necesarios

Para obtener los permisos que necesitas para configurar el registro de Model Armor, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Model Armor (roles/modelarmor.admin) en la plantilla de Model Armor. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Habilitar APIs

Para usar Model Armor, primero debes habilitar sus APIs.

Consola

  1. Enable the Model Armor API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Selecciona el proyecto en el que quieras activar Model Armor.

gcloud

Antes de empezar, sigue estos pasos con la CLI de Google Cloud y la API Model Armor:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Ejecuta el siguiente comando para definir el endpoint de la API del servicio Model Armor.

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

    Sustituye LOCATION por la región en la que quieras usar Model Armor.

  3. Ejecuta el siguiente comando para habilitar Model Armor.

      gcloud services enable modelarmor.googleapis.com --project=PROJECT_ID
       

    Sustituye PROJECT_ID con el ID del proyecto.

    Configurar el registro en plantillas

    Las plantillas definen los filtros y los umbrales de las diferentes categorías de protección y seguridad. Al crear o actualizar una plantilla de Model Armor, puedes especificar si Model Armor registra determinadas operaciones. Usa las siguientes marcas en los metadatos de la plantilla:

    • log_template_operations: valor booleano que habilita el registro de las operaciones de creación, actualización, lectura y eliminación de plantillas.
    • log_sanitize_operations: valor booleano que habilita el registro de las operaciones de saneamiento. Los registros incluyen la petición y la respuesta, los resultados de la evaluación de Model Armor y campos de metadatos adicionales.

    Consola

    1. En la Google Cloud consola, ve a la página Model Armor.

      Ir a Model Armor

    2. Comprueba que estás viendo el proyecto en el que has activado Model Armor.

    3. En la página Model Armor (Protección de modelos), haga clic en Create Template (Crear plantilla). Para obtener más información sobre cómo crear plantillas, consulta el artículo Crear una plantilla de Model Armor.

    4. En la sección Configurar registro, selecciona las operaciones para las que quieras configurar el registro.

    5. Haz clic en Crear.

    REST

      curl -X POST \
          -d '{ "filterConfig": {}, "templateMetadata": { "logTemplateOperations": true, "logSanitizeOperations": true } }' \
          -H "Content-Type: application/json" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto al que pertenece la plantilla.
    • LOCATION: la ubicación de la plantilla.
    • TEMPLATE_ID: el ID de la plantilla.

    Python

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Model Armor.

       request = modelarmor_v1.CreateTemplateRequest(
         parent="projects/PROJECT_ID/locations/LOCATION",
         template_id="TEMPLATE_ID",
         template={
            "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
            "filter_config": {},
            "template_metadata": {
               "log_template_operations": True,
               "log_sanitize_operations": True
            }
         }
       )
       response = client.create_template(request=request)
       

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto al que pertenece la plantilla.
    • LOCATION: la ubicación de la plantilla.
    • TEMPLATE_ID: el ID de la plantilla.

    Ver registros

    Accede a los registros de Model Armor mediante el Explorador de registros de Cloud Logging. Para obtener más información, consulta el artículo Ver registros con el Explorador de registros. Filtra por el nombre del servicio modelarmor.googleapis.com. Busca las entradas relacionadas con las operaciones que hayas habilitado en tu plantilla. Para ver una lista de todos los nombres de servicio y tipos de recursos monitorizados, consulta Recursos y servicios monitorizados.

    Filtrar registros de Model Armor

    Usa etiquetas de registro para filtrar los registros de Model Armor de las operaciones de saneamiento y el registro de plantillas.

    Ejecuta la siguiente consulta en el explorador de registros para filtrar los registros de operaciones de anonimización.

    jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
    

    Para acotar aún más los registros de operaciones de anonimización, puede especificar un ID de proyecto, un nombre de cliente o un ID de correlación en la consulta.

    • Usar un ID de proyecto:

      jsonPayload.@type="type.googleapis.com%2Fgoogle.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry";project=PROJECT_ID
      
    • Usar el nombre de un cliente:

      jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
      labels."modelarmor.googleapis.com/client_name"="CLIENT_NAME"
      
    • Usar un ID de correlación:

      labels."modelarmor.googleapis.com/client_correlation_id"="CORRELATION_ID"
      

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto. Google Cloud
    • CLIENT_NAME: el nombre de tu cliente.
    • CORRELATION_ID: identificador único que genera para una solicitud específica.

    Correlacionar registros y eventos relacionados

    Para correlacionar los registros y los eventos relacionados con esa interacción concreta, necesitará un ID de correlación de cliente. Es un identificador único que genera (por ejemplo, un UUID) para hacer un seguimiento de una solicitud específica en su sistema. Para definir un ID de correlación de cliente en un encabezado de curl, usa la opción -H para incluir un encabezado personalizado en tu solicitud. Este es el formato de ejemplo:

    curl -X POST -d  '{"userPromptData": { "text": 'USER_PROMPT' } }' \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "MA-Client-Correlation-Id: $uuid" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeUserPrompt"
    
    curl -X POST \
        -d  '{"modelResponseData": { "text": 'MODEL_RESPONSE' }, "userPrompt": 'USER_PROMPT' }' \
        -H "Content-Type: application/json" \
        -H "MA-Client-Correlation-Id: $uuid" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID:sanitizeModelResponse"
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto al que pertenece la plantilla.
    • LOCATION: la ubicación de la plantilla.
    • TEMPLATE_ID: el ID de la plantilla.
    • USER_PROMPT: la petición proporcionada al modelo.
    • MODEL_RESPONSE: la respuesta recibida del modelo.