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
- Saiba mais sobre a visão geral do Model Armor.
- Saiba mais sobre os modelos do Model Armor.
- Higienize comandos e respostas.
- Resolver problemas do Model Armor.