Model Armor 층 설정

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

다음 단계