Paramètres de plancher Model Armor

Les paramètres de plancher Model Armor définissent des règles qui dictent les exigences minimales pour tous les modèles Model Armor créés à un point spécifique de la hiérarchie des ressources Google Cloud(c'est-à-dire au niveau d'une organisation, d'un dossier ou d'un projet). S'il existe plusieurs paramètres de plancher en conflit, ceux situés plus bas dans la hiérarchie des ressources sont prioritaires. Par exemple, si une règle de paramètre de plancher est créée au niveau d'un dossier et d'un projet, la règle au niveau du projet est appliquée.

Voici un exemple pour illustrer le fonctionnement d'une règle de paramètre minimal Model Armor. La règle minimale X est définie au niveau d'un dossier pour lequel le filtre d'URL malveillantes est activé. La règle de base Y est définie sur un projet de ce dossier pour le filtre de détection d'injection de requête et de jailbreaking avec un seuil de confiance moyen. Par conséquent, chaque modèle Model Armor créé dans le projet doit comporter au moins le filtre de détection d'injection d'invite et d'évasion, avec un seuil de confiance moyen. Un modèle créé dans un dossier autre que le dossier parent de ce projet ne nécessite pas le filtre d'URI malveillants.

Les paramètres de plancher aident les responsables de la sécurité des systèmes d'information et les architectes de sécurité à appliquer une posture de sécurité minimale à tous les modèles Model Armor de leur organisation. Ils empêchent ainsi les développeurs individuels d'abaisser accidentellement ou intentionnellement les normes de sécurité en dessous des niveaux acceptables. Pour les clients disposant d'un niveau Premium ou Enterprise de Security Command Center, les cas de non-respect des paramètres de prix plancher déclenchent des résultats. Cela signifie que si un modèle est créé avant un paramètre de plancher et qu'il comporte des paramètres moins restrictifs, un résultat s'affichera dans Security Command Center pour vous aider à identifier et à corriger les modèles Model Armor moins sécurisés.

Activer et désactiver les paramètres de plancher Model Armor

Pour activer les paramètres de plancher Model Armor, définissez le flag enable_floor_setting_enforcement sur true. Les exemples suivants montrent comment procéder.

gcloud

  • Définissez le point de terminaison Model Armor sur son point de terminaison mondial.

      gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.googleapis.com/"
    
  • Activez les paramètres de seuil Model Armor pour un projet donné.

      gcloud model-armor floorsettings update \
       --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
       --enable-floor-setting-enforcement=true
    
  • Activez les paramètres de seuil Model Armor pour une organisation donnée.

      gcloud model-armor floorsettings update \
      --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting' \
      --enable-floor-setting-enforcement=true
    
  • Activez les paramètres Model Armor Floor pour un dossier donné.

      gcloud model-armor floorsettings update \
      --full-uri='folders/FOLDER_ID/locations/global/floorSetting' \
      --enable-floor-setting-enforcement=true
    

    Remplacez les éléments suivants :

  • PROJECT_ID correspond à l'ID du projet pour le modèle.

  • FOLDER_ID est l'ID du dossier du modèle.

  • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

REST

  curl -X PATCH
  -d '{"enable_floor_setting_enforcement" : "true"}'
  -H "Content-Type: application/json"
  -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting?update_mask=enable_floor_setting_enforcement"
  

Remplacez PROJECT_ID par l'ID du projet pour le modèle.

Si vous ne souhaitez pas utiliser les paramètres de seuil Model Armor, définissez l'option filter_config sur empty ou l'option enable_floor_setting_enforcement sur false.

gcloud

    gcloud model-armor floorsettings get 
--full-uri='projects/PROJECT_ID/locations/global/floorSetting'
Flags --full-uri = name of the floor setting resource
--enable-floor-setting-enforcement=false
--filterConfig = {}

Remplacez PROJECT_ID par l'ID du projet pour le modèle.

    curl -X PATCH 
-H "Content-Type: application/json"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-d '{"filterConfig" :{},"enable_floor_setting_enforcement":"false"}'
"https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"

Remplacez PROJECT_ID par l'ID du projet pour le modèle.

Afficher les paramètres Model Armor Floor

Exécutez la commande suivante pour afficher les paramètres de seuil Model Armor.

gcloud

  • Affichez le paramètre de plancher Model Armor pour un projet donné.

      gcloud model-armor floorsettings describe \
      --full-uri='projects/PROJECT_ID/locations/global/floorSetting'
  • Affichez le paramètre de seuil Model Armor pour une organisation donnée.

      gcloud model-armor floorsettings describe \
      --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting'
  • Affichez le paramètre Model Armor Floor pour un dossier donné.

       gcloud model-armor floorsettings describe \
       --full-uri='folders/FOLDER_ID/locations/global/floorSetting'

    Remplacez les éléments suivants :

    • PROJECT_ID correspond à l'ID du projet pour le modèle.
    • FOLDER_ID est l'ID du dossier du modèle.
    • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

REST

  • Affichez le paramètre de plancher Model Armor pour un projet donné.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
  • Affichez le paramètre Model Armor Floor pour un dossier donné.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
  • Affichez le paramètre de seuil Model Armor pour une organisation donnée.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

Remplacez les éléments suivants :

  • PROJECT_ID correspond à l'ID du projet pour le modèle.
  • FOLDER_ID est l'ID du dossier du modèle.
  • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

Python

Pour exécuter cette commande, commencez par initialiser un client Model Armor en Python.

  • Affichez le paramètre de plancher Model Armor pour un projet donné.

    request = modelarmor_v1.GetFloorSettingRequest(
    floor_setting={
      "name": "projects/PROJECT_ID/locations/global/floorSetting",
    }
    )
    response = client.get_floor_setting(request=request)
  • Affichez le paramètre Model Armor Floor pour un dossier donné.

    request = modelarmor_v1.GetFloorSettingRequest(
    floor_setting={
      "name": "folders/FOLDER_ID/locations/global/floorSetting",
    }
    )
    response = client.get_floor_setting(request=request)
  • Affichez le paramètre de seuil Model Armor pour une organisation donnée.

    request = modelarmor_v1.GetFloorSettingRequest(
    floor_setting={
      "name": "organizations/ORGANIZATION_ID/locations/global/floorSetting",
    }
    )
    response = client.get_floor_setting(request=request)

    Remplacez les éléments suivants :

    • PROJECT_ID correspond à l'ID du projet auquel appartient le modèle.
    • FOLDER_ID est l'ID du dossier du modèle.
    • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

Mettre à jour les paramètres Model Armor Floor

Exécutez la commande suivante pour mettre à jour les paramètres de protection du modèle.

gcloud

   gcloud model-armor floorsettings update --full-uri=<full-uri-of-the-floorsetting>

Exemple de commande :

       gcloud model-armor floorsettings update \
       --malicious-uri-filter-settings-enforcement=ENABLED \
       --pi-and-jailbreak-filter-settings-enforcement=DISABLED \
       --pi-and-jailbreak-filter-settings-confidence-level=LOW_AND_ABOVE \
       --basic-config-filter-enforcement=ENABLED \
       --add-rai-settings-filters='[{"confidenceLevel": "low_and_above", "filterType": "HARASSMENT"}, {"confidenceLevel": "high", "filterType": "SEXUALLY_EXPLICIT"}]'
       --full-uri='folders/FOLDER_ID/locations/global/floorSetting' \
       --enable-floor-setting-enforcement=true

Remplacez FOLDER_ID par l'ID du dossier du modèle.

REST

  • Mettez à jour le paramètre de seuil Model Armor pour un projet donné.

    curl -X PATCH -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" }, "rai_settings":{"rai_filters":{"filter_type":"DANGEROUS", "confidence_level":"LOW_AND_ABOVE" },
    "rai_filters":{"filter_type":"HATE_SPEECH", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"HARASSMENT", "confidence_level":"LOW_AND_ABOVE" }, "rai_filters":{"filter_type":"SEXUALLY_EXPLICIT", "confidence_level":"LOW_AND_ABOVE" }}},"enable_floor_setting_enforcement":"true"}' -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token) "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
  • Mettez à jour le paramètre de seuil Model Armor pour un dossier donné.

    curl -X PATCH \
    -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" }},"enable_floor_setting_enforcement":"true"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://modelarmor.googleapis.com/v1/folders/FOLDER_ID/locations/global/floorSetting"
  • Mettez à jour le paramètre de seuil Model Armor pour une organisation donnée.

    curl -X PATCH \
    -d '{"filterConfig" :{"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" }},"enable_floor_setting_enforcement":"true"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/floorSetting"

    Remplacez les éléments suivants :

    • PROJECT_ID correspond à l'ID du projet pour le modèle.
    • FOLDER_ID est l'ID du dossier du modèle.
    • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

    La commande de mise à jour renvoie la réponse suivante :

    {
    "name": "projects/PROJECT_ID/locations/global/floorSetting",
    "updateTime": "2024-12-19T15:36:21.318191Z",
    "filterConfig": {
    "piAndJailbreakFilterSettings": {
      "filterEnforcement": "ENABLED"
    },
    "maliciousUriFilterSettings": {
    "filterEnforcement": "ENABLED"
    }
    }
    }

Python

Pour exécuter cette commande, commencez par initialiser un client Model Armor en Python.

  • Mettez à jour le paramètre de seuil Model Armor pour un projet donné.

    request = modelarmor_v1.UpdateFloorSettingRequest(
    floor_setting={
      "name": "projects/PROJECT_ID/locations/global/floorSetting",
      "filter_config": FILTER_CONFIG,
      "enable_floor_setting_enforcement": True
    }
    )
    response = client.update_floor_setting(request=request)
  • Mettez à jour le paramètre de seuil Model Armor pour un dossier donné.

    request = modelarmor_v1.UpdateFloorSettingRequest(
    floor_setting={
      "name": "folders/FOLDER_ID/locations/global/floorSetting",
      "filter_config": FILTER_CONFIG
      "enable_floor_setting_enforcement": True
    }
    )
    response = client.update_floor_setting(request=request)
  • Mettez à jour le paramètre de seuil Model Armor pour une organisation donnée.

    request = modelarmor_v1.UpdateFloorSettingRequest(
    floor_setting={
      "name": "organizations/ORGANIZATION_ID/locations/global/floorSetting",
      "filter_config": FILTER_CONFIG
      "enable_floor_setting_enforcement": True
    }
    )
    response = client.update_floor_setting(request=request)

    Remplacez les éléments suivants :

  • FILTER_CONFIG correspond à la configuration du filtre pour le modèle.

  • PROJECT_ID correspond à l'ID du projet auquel appartient le modèle.

  • FOLDER_ID : ID du dossier du modèle.

  • ORGANIZATION_ID est l'ID de l'organisation pour le modèle.

Non-respect des paramètres de plancher

Chaque résultat du service Model Armor identifie une violation des paramètres de plancher qui se produit lorsqu'un modèle Model Armor ne respecte pas les normes de sécurité minimales définies par les paramètres de plancher de la hiérarchie des ressources. Les paramètres de plancher définissent le niveau le moins strict autorisé pour chaque filtre d'un modèle. Un cas de non-respect des paramètres de plancher peut impliquer un modèle qui n'inclut pas les filtres requis ou qui ne respecte pas le niveau de confiance minimal pour ces filtres. Lorsqu'une violation est détectée, un résultat de gravité élevée est publié dans Security Command Center. Le résultat spécifie le paramètre de plancher enfreint, le modèle non conforme et des informations sur le non-respect. Pour en savoir plus, consultez Résultats du service Model Armor.

Voici un exemple du champ "source_properties" du résultat en cas de non-respect des paramètres de l'étage.

{
  "filterConfig": {
    "raiSettings": {
      "raiFilters": [
        {
          "filterType": "HATE_SPEECH",
          "confidenceLevel": {
            "floorSettings": "LOW_AND_ABOVE",
            "template": "MEDIUM_AND_ABOVE"
          }
        },
        {
          "filterType": "HARASSMENT",
          "confidenceLevel": {
            "floorSettings": "MEDIUM_AND_ABOVE",
            "template": "HIGH"
          }
        }
      ]
    },
    "piAndJailbreakFilterSettings": {
      "confidenceLevel": {
        "floorSettings": "LOW_AND_ABOVE",
        "template": "HIGH"
      }
    },
    "maliciousUriFilterSettings": {
      "floorSettings": "ENABLED",
      "template": "DISABLED"
    }
  }
}

Étapes suivantes