Configurer la journalisation pour Model Armor

Ce document explique comment configurer Model Armor pour enregistrer les opérations suivantes :

  • Opérations qui créent, modifient ou suppriment un modèle
  • Opérations qui nettoient une requête utilisateur ou une réponse du modèle

Model Armor utilise des journaux d'audit pour enregistrer les activités d'administration et de gestion des ressources. Pour en savoir plus, consultez Présentation de la journalisation des audits Model Armor.

Avant de commencer

Effectuez ces tâches avant de passer aux autres tâches de cette page.

Obtenir les autorisations requises

Pour obtenir les autorisations nécessaires pour configurer la journalisation pour Model Armor, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Model Armor (roles/modelarmor.admin) sur le modèle Model Armor. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer les API

Vous devez activer les API Model Armor avant de pouvoir utiliser Model Armor.

Console

  1. Enable the Model Armor API.

    Enable the API

  2. Sélectionnez le projet dans lequel vous souhaitez activer Model Armor.

gcloud

Avant de commencer, suivez ces étapes à l'aide de la Google Cloud CLI avec l'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. Exécutez la commande suivante pour définir le point de terminaison de l'API pour le service Model Armor.

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

    Remplacez LOCATION par la région dans laquelle vous souhaitez utiliser Model Armor.

  3. Exécutez la commande suivante pour activer Model Armor.

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

    Remplacez PROJECT_ID par l'ID du projet.

    Configurer la journalisation dans les modèles

    Les modèles définissent les filtres et les seuils pour différentes catégories de sécurité. Lorsque vous créez ou mettez à jour un modèle Model Armor, vous pouvez spécifier si Model Armor doit consigner certaines opérations. Utilisez les indicateurs suivants dans les métadonnées du modèle :

    • log_template_operations : valeur booléenne qui permet la journalisation des opérations de création, de mise à jour, de lecture et de suppression des modèles.
    • log_sanitize_operations : valeur booléenne qui permet la journalisation des opérations de nettoyage. Les journaux incluent la requête et la réponse, les résultats d'évaluation de Model Armor et d'autres champs de métadonnées.

    Console

    1. Dans la console Google Cloud , accédez à la page Model Armor.

      Accéder à Model Armor

    2. Vérifiez que vous consultez le projet sur lequel vous avez activé Model Armor.

    3. Sur la page Model Armor, cliquez sur Créer un modèle. Pour en savoir plus sur la création de modèles, consultez Créer un modèle Model Armor.

    4. Dans la section Configurer la journalisation, sélectionnez les opérations pour lesquelles vous souhaitez configurer la journalisation.

    5. Cliquez sur Créer.

    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"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet auquel appartient le modèle.
    • LOCATION : emplacement du modèle.
    • TEMPLATE_ID : ID du modèle.

    Python

       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)
       

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet auquel appartient le modèle.
    • LOCATION : emplacement du modèle.
    • TEMPLATE_ID : ID du modèle.

    Afficher les journaux

    Accédez aux journaux Model Armor à l'aide de l'explorateur de journaux dans Cloud Logging. Pour en savoir plus, consultez la page Afficher les journaux à l'aide de l'explorateur de journaux. Filtrez par nom de service modelarmor.googleapis.com. Recherchez les entrées liées aux opérations que vous avez activées dans votre modèle. Pour obtenir la liste de tous les noms de service et types de ressources surveillées, consultez Ressources et services surveillés.

    Filtrer les journaux Model Armor

    Utilisez des libellés de journaux pour filtrer les journaux Model Armor pour les opérations de désinfection et la journalisation des modèles.

    Exécutez la requête suivante dans l'explorateur de journaux pour filtrer les journaux des opérations de désinfection.

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

    Pour affiner davantage les journaux d'opérations de désinfection, vous pouvez spécifier un ID de projet, un nom de client ou un ID de corrélation dans la requête.

    • Utiliser un ID de projet :

      jsonPayload.@type="type.googleapis.com%2Fgoogle.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry";project=PROJECT_ID
      
    • Utiliser un nom de client :

      jsonPayload.@type="type.googleapis.com/google.cloud.modelarmor.logging.v1.SanitizeOperationLogEntry"
      labels."modelarmor.googleapis.com/client_name"="CLIENT_NAME"
      
    • Utiliser un ID de corrélation :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud .
    • CLIENT_NAME : nom de votre client.
    • CORRELATION_ID : identifiant unique que vous générez pour une demande spécifique.

    Corréler les journaux et les événements associés

    Pour mettre en corrélation les journaux et les événements liés à cette interaction spécifique, vous aurez besoin d'un ID de corrélation client. Il s'agit d'un identifiant unique que vous générez (par exemple, un UUID) pour suivre une demande spécifique dans votre système. Pour définir un ID de corrélation client dans un en-tête curl, utilisez l'option -H pour inclure un en-tête personnalisé dans votre requête. Voici un exemple de format :

    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"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet auquel appartient le modèle.
    • LOCATION : emplacement du modèle.
    • TEMPLATE_ID : ID du modèle.
    • USER_PROMPT : requête fournie au modèle.
    • MODEL_RESPONSE : réponse reçue du modèle.