Model Armor 下限设置可定义规则,以规定在 Google Cloud 资源层次结构的特定点(即在组织、文件夹或项目级)创建的所有 Model Armor 模板的最低要求。如果存在多个相互冲突的下限设置,则资源层次结构中较低级别的设置优先。例如,如果在文件夹和项目级都创建了下限设置政策,则会应用项目级政策。
以下示例展示了 Model Armor 下限设置政策的工作原理。下限政策 X 设置在文件夹级别,并启用了恶意网址过滤条件。下限政策 Y 设置在该文件夹中的一个项目上,针对提示注入和越狱检测过滤条件设置了中等置信度阈值。最终结果是,在该项目中创建的每个 Model Armor 模板都必须至少将提示注入和越狱检测过滤条件的置信度阈值设置为“中等”,但不需要设置恶意网址过滤条件。
下限设置可帮助 CISO 和安全架构师在其组织的所有 Model Armor 模板中强制执行最低安全状况,防止个别开发者无意或有意地将安全标准降低到可接受的水平以下。对于订阅了 Security Command Center 高级方案或 Enterprise 方案的客户,违反下限设置会触发发现结果。这意味着,如果模板在下限设置之前创建,并且该模板的任何设置限制性都较低,则 Security Command Center 中会显示一个发现结果,以帮助您识别和修复安全性较低的 Model Armor 模板。
与 Vertex AI 相集成
Model Armor 与 Vertex AI 相集成,可根据您定义的下限设置来过滤 Gemini 模型请求和回答。您需要启用 Cloud Logging 才能查看提示和回答。如需了解详情,请参阅 Model Armor 与 Vertex AI 相集成。
配置下限设置
您可以使用下限设置来配置 Model Armor 模板的最低检测阈值。这些设置用于验证所有新模板和修改后的模板是否符合特定要求。如需配置下限设置,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Model Armor 页面。
- 选择一个项目。
- 在 Model Armor 页面上,前往下限设置标签页,然后点击配置下限设置。
在配置下限设置页面上,选择配置选项。
继承父级的下限设置:继承资源层次结构中更高级别的下限设置。点击保存下限设置,然后跳过后续步骤。如需查看继承的设置,请前往下限设置标签页。
自定义:为此项目定义下限设置。如果存在任何继承的下限设置,则这些设置会被自定义设置覆盖。
停用:停用所有继承的下限设置,这意味着不会将任何检测规则应用于 Model Armor 模板以及您的 Gemini 工作负载所用的 Vertex AI。点击保存下限设置,然后跳过后续步骤。在下限设置标签页中查看停用状态。
在检测部分,配置以下检测设置:
恶意网址检测:识别旨在危害用户或系统的网址 (URL)。这些网址可能会导致您访问钓鱼式攻击网站、下载恶意软件或遭受其他网络攻击。如需了解详情,请参阅恶意网址检测。
提示注入和越狱检测:检测提示中的恶意内容和越狱尝试。若要更严格地执行,请将置信度设置为“低”及以上,以便能够检测到大部分可能属于提示注入和越狱尝试的内容。如需了解详情,请参阅提示注入和越狱检测。
Sensitive Data Protection:检测敏感数据,并帮助防止其因提示注入等攻击而意外泄露。如需了解详情,请参阅 Sensitive Data Protection。
您可以设置基本或高级 Sensitive Data Protection。
基本:使用预定义的 infoType 检测敏感数据类型。如需详细了解预定义的 infoType,请参阅基本 Sensitive Data Protection 配置。
高级:使用 Sensitive Data Protection 服务中定义的检查模板作为敏感数据 infoType 的单一来源。
如果您选择高级 Sensitive Data Protection,则需要指定以下参数:
在 Responsible AI 部分中,您可以为每种内容过滤器设置置信度。置信度表示发现结果与内容过滤条件类型匹配的可能性。可能的值包括:
- 无:不检测任何内容过滤条件类型。
- “低”及以上:检测置信度为低、中或高的内容。
- “中等”及以上:检测置信度为中或高的内容。
- 高:检测置信度为“高”的内容。
若要更严格地执行,请将置信度设置为“低”及以上,以检测大部分属于某种内容过滤器类型的内容。您还可以一次性为所有内容过滤条件类型选择置信度。
在服务部分,选择要应用这些下限设置的服务。
- Model Armor - 模板创建和更新:系统将检查此项目中的每个新 Model Armor 模板和修改后的 Model Armor 模板,确保它们具有根据下限设置指定的最低设置。
- Vertex AI:过滤发送给 Gemini 模型的请求,并记录或屏蔽符合下限设置阈值的请求。如果您选择 Vertex AI,系统会显示 Vertex AI 部分,您可以在其中选择应如何执行下限设置。
- 仅检查:检测不符合下限设置的请求,但不屏蔽这些请求。
- 检查并屏蔽违规请求:检测并屏蔽不符合下限设置的请求。
在日志部分,选择启用 Cloud Logging 以记录所有用户提示和模型回答,并提供下限设置检测器结果。
点击保存下限设置。系统会保存所配置的下限设置,并将其显示在下限设置标签页上。
查看下限设置
控制台
在 Google Cloud 控制台中,前往 Model Armor 页面。
确认您正在查看的是已启用 Model Armor 的项目。
在 Model Armor 页面上,前往下限设置标签页。如果在组织级设置了下限设置,则可以在该标签页查看这些设置。如果未定义任何下限设置,则必须先进行配置。如需了解详情,请参阅配置下限设置。
gcloud
查看给定项目的 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="projects/PROJECT_ID/locations/global/floorSetting"
查看给定组织的 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="organizations/ORGANIZATION_ID/locations/global/floorSetting"
查看给定文件夹的 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="folders/FOLDER_ID/locations/global/floorSetting"
替换以下内容:
PROJECT_ID
是模板的项目 ID。FOLDER_ID
是模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
REST
查看给定项目的 Model Armor 下限设置:
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"
查看给定文件夹的 Model Armor 下限设置:
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"
查看给定组织的 Model Armor 下限设置:
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"
替换以下内容:
PROJECT_ID
是模板的项目 ID。FOLDER_ID
是模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
Python
如需运行此命令,请先在 Python 中初始化 Model Armor 客户端。
查看给定项目的 Model Armor 下限设置:
request = modelarmor_v1.GetFloorSettingRequest( floor_setting={ "name": "projects/PROJECT_ID/locations/global/floorSetting", } ) response = client.get_floor_setting(request=request)
查看给定文件夹的 Model Armor 下限设置:
request = modelarmor_v1.GetFloorSettingRequest( floor_setting={ "name": "folders/FOLDER_ID/locations/global/floorSetting", } ) response = client.get_floor_setting(request=request)
查看给定组织的 Model Armor 下限设置:
request = modelarmor_v1.GetFloorSettingRequest( floor_setting={ "name": "organizations/ORGANIZATION_ID/locations/global/floorSetting", } ) response = client.get_floor_setting(request=request)
替换以下内容:
PROJECT_ID
是模板所属项目的 ID。FOLDER_ID
是模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
更新下限设置
控制台
在 Google Cloud 控制台中,前往 Model Armor 页面。
确认您正在查看的是已启用 Model Armor 的项目。
在 Model Armor 页面上,前往下限设置标签页,然后点击配置下限设置。
更新必填字段,然后点击保存下限设置。
gcloud
gcloud model-armor floorsettings update --full-uri=<full-uri-of-the-floorsetting>
示例命令:
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
将 FOLDER_ID
替换为模板的文件夹 ID。
REST
更新给定项目的 Model Armor 下限设置:
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"
更新给定文件夹的 Model Armor 下限设置:
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"
更新给定组织的 Model Armor 下限设置:
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"
替换以下内容:
PROJECT_ID
是模板的项目 ID。FOLDER_ID
是模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
该更新命令会返回以下响应:
{ "name": "projects/PROJECT_ID/locations/global/floorSetting", "updateTime": "2024-12-19T15:36:21.318191Z", "filterConfig": { "piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED" }, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" } } }
Python
如需运行此命令,请先在 Python 中初始化 Model Armor 客户端。
更新给定项目的 Model Armor 下限设置:
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)
更新给定文件夹的 Model Armor 下限设置:
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)
更新给定组织的 Model Armor 下限设置:
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)
替换以下内容:
FILTER_CONFIG
是模板的过滤条件配置。PROJECT_ID
是模板所属项目的 ID。FOLDER_ID
:模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
停用下限设置
如果您不想使用 Model Armor 下限设置,请将 filter_config
标志设置为 empty
或将 enable_floor_setting_enforcement
标志设置为 false
。
控制台
在 Google Cloud 控制台中,前往 Model Armor 页面。
确认您正在查看的是已启用 Model Armor 的项目。
在 Model Armor 页面上,前往下限设置标签页,然后点击配置下限设置。
在配置下限设置页面上,选择停用配置选项。
gcloud
为给定项目停用 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="projects/PROJECT_ID/locations/global/floorSetting"
为给定组织停用 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="organizations/ORGANIZATION_ID/locations/global/floorSetting"
为给定文件夹停用 Model Armor 下限设置:
gcloud model-armor floorsettings describe \ --full-uri="folders/FOLDER_ID/locations/global/floorSetting"
替换以下内容:
PROJECT_ID
是模板的项目 ID。FOLDER_ID
是模板文件夹的 ID。ORGANIZATION_ID
是模板的组织 ID。
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"
将 PROJECT_ID
替换为模板的项目 ID。
违反下限设置
每项 Model Armor 服务发现结果都会识别一次违反下限设置的情况,这种情况在 Model Armor 模板未能满足资源层次结构下限设置所定义的最低安全标准时发生。下限设置规定了模板中每个过滤条件所允许的最低严格级别。违反下限设置可能是由于模板未包含所需的过滤条件,或未达到这些过滤条件所要求的最低置信度级别。检测到违规行为后,系统会在 Security Command Center 中发布高严重性发现结果。该发现结果会指明所违反的下限设置、不合规的模板以及违规详情。如需了解详情,请参阅 Model Armor 服务发现结果。
以下示例展示了违反下限设置发现结果的 source_properties 字段。
{ "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" } } }