Configurações do Model Armor Floor

As configurações mínimas do Model Armor definem regras que determinam os requisitos mínimos para todos os modelos do Model Armor criados em um ponto específico da hierarquia de recursos do Google Cloud(ou seja, no nível da organização, da pasta ou do projeto). Se houver várias configurações de limite mínimo que entrem em conflito, as configurações mais baixas na hierarquia de recursos terão precedência. Por exemplo, se uma política de configuração de valor mínimo for criada no nível da pasta e do projeto, a política no nível do projeto será aplicada.

Confira um exemplo para mostrar como funciona uma política de configuração de limite mínimo do Model Armor. A política de restrição X é definida em uma pasta com o filtro de URL malicioso ativado. A política de restrição Y é definida em um projeto dentro dessa pasta para o filtro de detecção de injeção de comando e jailbreak com um limite de confiança médio. Como resultado, todos os modelos do Model Armor criados no projeto precisam ter pelo menos o filtro de detecção de injeção de comandos e jailbreak definido com um nível de confiança médio. Um modelo criado em uma pasta diferente da pasta principal deste projeto não exige o filtro de URI malicioso.

As configurações mínimas ajudam os CISOs e arquitetos de segurança a aplicar uma postura de segurança mínima em todos os modelos do Model Armor na organização, impedindo que desenvolvedores individuais reduzam acidentalmente ou intencionalmente os padrões de segurança abaixo dos níveis aceitáveis. Para clientes com um nível Premium ou Enterprise do Security Command Center, as violações de configuração de limite mínimo acionam descobertas. Isso significa que, se um modelo for criado antes de uma configuração mínima e tiver configurações menos restritivas, uma descoberta vai aparecer no Security Command Center para ajudar você a identificar e corrigir modelos do Model Armor menos seguros.

Ativar e desativar as configurações de limite do Model Armor

Para ativar as configurações mínimas do Model Armor, defina a flag enable_floor_setting_enforcement como true. Os exemplos a seguir mostram como fazer isso.

gcloud

  • Defina o endpoint do Model Armor como o endpoint global.

      gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.googleapis.com/"
    
  • Ative as configurações de valor mínimo do Model Armor para um determinado projeto.

      gcloud model-armor floorsettings update \
       --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
       --enable-floor-setting-enforcement=true
    
  • Ativa as configurações de valor mínimo do Model Armor para uma determinada organização.

      gcloud model-armor floorsettings update \
      --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting' \
      --enable-floor-setting-enforcement=true
    
  • Ative as configurações de limite do Model Armor para uma pasta específica.

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

    Substitua:

  • PROJECT_ID é o ID do projeto do modelo.

  • FOLDER_ID é o ID da pasta do modelo.

  • ORGANIZATION_ID é o ID da organização do modelo.

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"
  

Substitua PROJECT_ID pelo ID do projeto do modelo.

Se você não quiser usar as configurações de valor mínimo do Model Armor, defina a flag filter_config como empty ou a flag enable_floor_setting_enforcement como 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 = {}

Substitua PROJECT_ID pelo ID do projeto do modelo.

    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"

Substitua PROJECT_ID pelo ID do projeto do modelo.

Ver as configurações do Model Armor Floor

Execute o comando a seguir para conferir as configurações mínimas do Model Armor.

gcloud

  • Confira a configuração do Model Armor Floor para um determinado projeto.

      gcloud model-armor floorsettings describe \
      --full-uri='projects/PROJECT_ID/locations/global/floorSetting'
  • Confira a configuração mínima do Model Armor para uma determinada organização.

      gcloud model-armor floorsettings describe \
      --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting'
  • Confira a configuração mínima do Model Armor para uma determinada pasta.

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

    Substitua:

    • PROJECT_ID é o ID do projeto do modelo.
    • FOLDER_ID é o ID da pasta do modelo.
    • ORGANIZATION_ID é o ID da organização do modelo.

REST

  • Confira a configuração do Model Armor Floor para um determinado projeto.

    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"
  • Confira a configuração mínima do Model Armor para uma determinada pasta.

    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"
  • Confira a configuração mínima do Model Armor para uma determinada organização.

    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"

Substitua:

  • PROJECT_ID é o ID do projeto do modelo.
  • FOLDER_ID é o ID da pasta do modelo.
  • ORGANIZATION_ID é o ID da organização do modelo.

Python

Para executar esse comando, primeiro inicialize um cliente do Model Armor em Python.

  • Confira a configuração do Model Armor Floor para um determinado projeto.

    request = modelarmor_v1.GetFloorSettingRequest(
    floor_setting={
      "name": "projects/PROJECT_ID/locations/global/floorSetting",
    }
    )
    response = client.get_floor_setting(request=request)
  • Confira a configuração mínima do Model Armor para uma determinada pasta.

    request = modelarmor_v1.GetFloorSettingRequest(
    floor_setting={
      "name": "folders/FOLDER_ID/locations/global/floorSetting",
    }
    )
    response = client.get_floor_setting(request=request)
  • Confira a configuração mínima do Model Armor para uma determinada organização.

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

    Substitua:

    • PROJECT_ID é o ID do projeto a que o modelo pertence.
    • FOLDER_ID é o ID da pasta do modelo.
    • ORGANIZATION_ID é o ID da organização do modelo.

Atualizar as configurações do Model Armor Floor

Execute o comando a seguir para atualizar as configurações mínimas do Model Armor.

gcloud

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

Exemplo de comando:

       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

Substitua FOLDER_ID pelo ID da pasta do modelo.

REST

  • Atualiza a configuração de valor mínimo do Model Armor para um determinado projeto.

    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"
  • Atualiza a configuração mínima do Model Armor para uma determinada pasta.

    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"
  • Atualiza a configuração de limite mínimo do Model Armor para uma determinada organização.

    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"

    Substitua:

    • PROJECT_ID é o ID do projeto do modelo.
    • FOLDER_ID é o ID da pasta do modelo.
    • ORGANIZATION_ID é o ID da organização do modelo.

    O comando de atualização retorna a seguinte resposta:

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

Python

Para executar esse comando, primeiro inicialize um cliente do Model Armor em Python.

  • Atualiza a configuração de valor mínimo do Model Armor para um determinado projeto.

    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)
  • Atualiza a configuração mínima do Model Armor para uma determinada pasta.

    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)
  • Atualiza a configuração de limite mínimo do Model Armor para uma determinada organização.

    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)

    Substitua:

  • FILTER_CONFIG é a configuração de filtro do modelo.

  • PROJECT_ID é o ID do projeto a que o modelo pertence.

  • FOLDER_ID: é o ID da pasta do modelo.

  • ORGANIZATION_ID é o ID da organização do modelo.

Violação das configurações mínimas

Cada descoberta do serviço Model Armor identifica uma violação de configuração mínima que ocorre quando um modelo do Model Armor não atende aos padrões mínimos de segurança definidos pelas configurações mínimas da hierarquia de recursos. As configurações mínimas determinam o nível menos rigoroso permitido para cada filtro em um modelo. Uma violação de configuração mínima pode envolver um modelo que não inclui os filtros obrigatórios ou não atende ao nível de confiança mínimo para esses filtros. Quando uma violação é detectada, uma descoberta de alta gravidade é publicada no Security Command Center. A descoberta especifica a configuração mínima violada, o modelo em não conformidade e detalhes sobre a violação. Para mais informações, consulte Descobertas do serviço Model Armor.

Este é um exemplo do campo "source_properties" da descoberta na violação das configurações de limite mínimo.

{
  "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"
    }
  }
}

A seguir