Model Armor 하한선 설정은 Google Cloud리소스 계층 구조의 특정 지점 (조직, 폴더 또는 프로젝트 수준)에서 생성된 모든 Model Armor 템플릿의 최소 요구사항을 지정하는 규칙을 정의합니다. 서로 충돌하는 하한 설정이 여러 개 있는 경우 리소스 계층에서 더 낮은 설정이 우선 적용됩니다. 예를 들어 하한선 설정 정책이 폴더 수준과 프로젝트 수준에서 생성된 경우 프로젝트 수준 정책이 적용됩니다.
다음은 모델 아머 하한선 설정 정책이 작동하는 방식을 보여주는 예입니다. 악성 URL 필터가 사용 설정된 폴더에 바닥 정책 X가 설정되어 있습니다. 해당 폴더 내 프로젝트에 프롬프트 삽입 및 탈옥 감지 필터의 하한선 정책 Y가 중간 신뢰도 임계값으로 설정되어 있습니다. 따라서 프로젝트에서 생성된 모든 Model Armor 템플릿에는 중간 신뢰도 기준점으로 설정된 프롬프트 삽입 및 탈옥 감지 필터가 하나 이상 있어야 합니다. 이 프로젝트의 상위 폴더가 아닌 폴더에 만든 템플릿에는 악성 URI 필터가 필요하지 않습니다.
최소 기준 설정을 사용하면 CISO와 보안 아키텍트가 조직 내 모든 Model Armor 템플릿에 최소 보안 상태를 적용하여 개별 개발자가 실수로 또는 의도적으로 보안 표준을 허용 수준 미만으로 낮추는 것을 방지할 수 있습니다. Security Command Center의 프리미엄 등급 또는 Enterprise 등급을 사용하는 고객의 경우 하한 설정 위반이 발견을 트리거합니다. 즉, 템플릿이 최소 기준 설정 전에 만들어졌고 템플릿에 제한이 덜한 설정이 있는 경우, Security Command Center에 발견 항목이 표시되어 보안 수준이 낮은 Model Armor 템플릿을 식별하고 해결하는 데 도움이 됩니다.
모델 아머 하한선 설정 사용 설정 및 중지
Model Armor 층 설정을 사용 설정하려면 enable_floor_setting_enforcement
플래그를 true
로 설정합니다.
다음 예는 이 작업을 수행하는 방법을 보여줍니다.
gcloud
지정된 프로젝트에 Model Armor 층 설정을 사용 설정합니다.
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=true
특정 조직에 Model Armor 층 설정을 사용 설정합니다.
gcloud model-armor floorsettings update \ --full-uri='organizations/ORGANIZATION_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=true
지정된 폴더에 Model Armor 층 설정을 사용 설정합니다.
gcloud model-armor floorsettings update \ --full-uri='folders/FOLDER_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=true
다음을 바꿉니다.
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로 바꿉니다.
모델 아머 하한선 설정을 사용하지 않으려면 filter_config
플래그를 empty
로 설정하거나 enable_floor_setting_enforcement
플래그를 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 = {}
PROJECT_ID
를 템플릿의 프로젝트 ID로 바꿉니다.
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"
PROJECT_ID
를 템플릿의 프로젝트 ID로 바꿉니다.
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 층 설정을 확인합니다.
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입니다.
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
지정된 프로젝트의 모델 아머 하한선 설정을 업데이트합니다.
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"
지정된 폴더의 모델 아머 하한 설정을 업데이트합니다.
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"
지정된 조직의 모델 아머 하한선 설정을 업데이트합니다.
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입니다.
update 명령어는 다음 응답을 반환합니다.
{ "name": "projects/PROJECT_ID/locations/global/floorSetting", "updateTime": "2024-12-19T15:36:21.318191Z", "filterConfig": { "piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED" }, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" } } }
Python
이 명령어를 실행하려면 먼저 Python에서 모델 아머 클라이언트를 초기화합니다.
지정된 프로젝트의 모델 아머 하한선 설정을 업데이트합니다.
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)
지정된 폴더의 모델 아머 하한 설정을 업데이트합니다.
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)
지정된 조직의 모델 아머 하한선 설정을 업데이트합니다.
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 서비스 발견 항목은 Model Armor 템플릿이 리소스 계층 구조 기준 설정에 정의된 최소 보안 표준을 충족하지 못할 때 발생하는 기준 설정 위반을 식별합니다. 하한 설정은 템플릿 내 각 필터에 허용되는 가장 느슨한 수준을 지정합니다. 최소 기준 설정 위반에는 필수 필터가 포함되지 않거나 이러한 필터의 최소 신뢰 수준을 충족하지 않는 템플릿이 포함될 수 있습니다. 위반이 감지되면 심각도가 높은 발견 항목이 Security Command Center에 게시됩니다. 이 발견사항에는 위반된 하한선 설정, 규정을 준수하지 않는 템플릿, 위반에 관한 세부정보가 지정됩니다. 자세한 내용은 모델 아머 서비스 결과를 참고하세요.
다음은 바닥 설정 위반 내에서 발견 항목의 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" } } }
다음 단계
- Model Armor 개요에 대해 알아보세요.
- 모델 아머 템플릿에 대해 알아봅니다.
- 프롬프트 및 응답 정리
- Model Armor 문제 해결하기