本頁面說明如何使用「組織政策服務」自訂限制條件,限制對下列 Google Cloud 資源執行的特定作業:
modelarmor.googleapis.com/Template
如要進一步瞭解組織政策,請參閱「自訂組織政策」。
關於組織政策和限制
Google Cloud 組織政策服務可讓您透過程式輔助,集中控管組織的資源。組織政策管理員可以定義組織政策,也就是一組稱為「限制」的限制條件,適用於Google Cloud 資源和這些資源在Google Cloud 資源階層中的子系。您可以在組織、資料夾或專案層級,強制執行組織政策。
組織政策提供各種 Google Cloud 服務的內建代管限制。不過,如要更精細地自訂組織政策中受限的特定欄位,您也可以建立「自訂限制」,並用於組織政策。
政策繼承
根據預設,您強制執行政策的資源子系會繼承組織政策。舉例來說,如果您對資料夾強制執行政策, Google Cloud 會對該資料夾中的所有專案強制執行政策。如要進一步瞭解這項行為及變更方式,請參閱「階層評估規則」。
優點
- 安全性、法規遵循與管理:您可以按照下列方式使用自訂組織政策:
- 如要在整個組織中強制執行負責任的 AI 規定,您可以要求所有新範本或更新後的範本啟用特定篩選器,例如仇恨言論或騷擾偵測。
- 為保護機密資料,您可以要求範本強制執行 Sensitive Data Protection 設定或去識別化範本。
- 如要建立提示詞注入防護措施,可以要求範本啟用提示詞注入和越獄篩選器。
事前準備
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init - 請確認您知道組織 ID。
必要的角色
如要取得管理組織政策所需的權限,請要求管理員授予您下列 IAM 角色:
-
如要管理組織政策:組織資源的組織政策管理員 (
roles/orgpolicy.policyAdmin) -
如要建立或更新 Model Armor 範本:專案資源的 Model Armor 管理員 (
roles/modelarmor.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備管理組織政策所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能管理組織政策:。
-
如要管理組織政策:
orgpolicy.*組織資源 -
如要建立或更新 Model Armor 範本,請按照下列步驟操作:
-
專案資源的
modelarmor.templates.create -
專案資源的
modelarmor.templates.update
-
專案資源的
Model Armor 支援的資源
下表列出可在自訂限制中參照的 Model Armor 資源。| 資源 | 欄位 |
|---|---|
| modelarmor.googleapis.com/Template |
resource.filterConfig.maliciousUriFilterSettings.filterEnforcement
|
resource.filterConfig.piAndJailbreakFilterSettings.confidenceLevel
| |
resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement
| |
resource.filterConfig.raiSettings.raiFilters.confidenceLevel
| |
resource.filterConfig.raiSettings.raiFilters.filterType
| |
resource.filterConfig.sdpSettings.advancedConfig.deidentifyTemplate
| |
resource.filterConfig.sdpSettings.advancedConfig.inspectTemplate
| |
resource.filterConfig.sdpSettings.basicConfig.filterEnforcement
| |
resource.name
| |
resource.templateMetadata.customLlmResponseSafetyErrorCode
| |
resource.templateMetadata.customLlmResponseSafetyErrorMessage
| |
resource.templateMetadata.customPromptSafetyErrorCode
| |
resource.templateMetadata.customPromptSafetyErrorMessage
| |
resource.templateMetadata.dataResidencyCompliant
| |
resource.templateMetadata.enforcementType
| |
resource.templateMetadata.filterVersionSelector.alias
| |
resource.templateMetadata.filterVersionSelector.version
| |
resource.templateMetadata.ignorePartialInvocationFailures
| |
resource.templateMetadata.logSanitizeOperations
| |
resource.templateMetadata.logTemplateOperations
| |
resource.templateMetadata.modalities
| |
resource.templateMetadata.multiLanguageDetection.enableMultiLanguageDetection
|
設定自訂限制
自訂限制是在 YAML 檔案中定義,其中包含您要強制執行組織政策的服務所支援的資源、方法、條件和動作。自訂限制的條件是使用一般運算語言 (CEL) 來定義。如要進一步瞭解如何使用 CEL 在自訂限制中建構條件,請參閱「建立及管理自訂限制」的 CEL 相關章節。
控制台
如要建立自訂限制,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。
- 在專案挑選器中,選取要設定組織政策的專案。
- 按一下「 Custom constraint」(自訂限制)。
- 在「Display name」(顯示名稱) 方塊中,輸入人類可讀的限制名稱。這個名稱會用於錯誤訊息,可用於識別和偵錯。請勿在顯示名稱中使用個人識別資訊 (PII) 或機密資料,因為這類名稱可能會在錯誤訊息中曝光。這個欄位最多可包含 200 個字元。
-
在「Constraint ID」(限制 ID) 方塊中,輸入新自訂限制的 ID。自訂限制只能包含英文字母 (包括大小寫) 或數字,例如
custom.requirePiAndJailbreakFilter。這個欄位最多可包含 70 個字元,不含前置字元 (custom.),例如organizations/123456789/customConstraints/custom。請勿在限制 ID 中輸入 PII 或機密資料,因為錯誤訊息可能會顯示上述資訊。 - 在「Description」(說明) 方塊中,輸入人類可讀的限制說明。違反政策時,系統會將這段說明做為錯誤訊息顯示。請詳細說明違反政策的原因,以及如何解決違規問題。請勿在說明中輸入 PII 或機密資料,因為錯誤訊息可能會顯示上述資訊。這個欄位最多可輸入 2000 個字元。
-
在「Resource type」(資源類型) 方塊中,選取包含要限制的物件和欄位的 Google Cloud REST 資源名稱,例如
container.googleapis.com/NodePool。大多數資源類型最多支援 20 項自訂限制。如果嘗試建立更多自訂限制,作業會失敗。 -
在「Enforcement method」(強制執行方法) 下方,選取要對 REST
CREATE方法強制執行限制,還是同時對CREATE和UPDATE方法強制執行限制。如果您使用UPDATE方法對違反限制的資源強制執行限制,組織政策會禁止對該資源進行變更,除非變更可解決違規問題。 - 如要定義條件,請按一下「編輯條件」圖示 。
-
在「Add condition」(新增條件) 面板中,建立參照支援服務資源的 CEL 條件,例如
resource.management.autoUpgrade == false。這個欄位最多可輸入 1000 個字元。如要進一步瞭解 CEL 的用法,請參閱「 一般運算語言」。如要進一步瞭解可在自訂限制中使用的服務資源,請參閱「 支援自訂限制的服務」。 - 按一下 [儲存]。
- 在「Action」下方,選取是否要在符合條件時允許或拒絕評估的方法。
- 按一下「Create constraint」(建立限制)。
如要查看各項服務支援的方法,請在「 支援自訂限制的服務」中找到該服務。
「拒絕」動作表示如果條件評估為 true,系統會禁止建立或更新資源。
「允許」動作表示只有在條件評估為 true 時,才允許建立或更新資源。除了條件中明確列出的情況外,其他所有情況都會遭到封鎖。
在每個欄位中輸入值後,右側會顯示這項自訂限制的對等 YAML 設定。
gcloud
- 如要建立自訂限制,請使用下列格式建立 YAML 檔案:
-
ORGANIZATION_ID:組織 ID,例如123456789。 -
CONSTRAINT_NAME:新自訂限制的名稱。自訂限制只能包含英文字母 (包括大小寫) 或數字,例如custom.requirePiAndJailbreakFilter。這個欄位最多可包含 70 個字元,不含前置字元 (custom.),例如organizations/123456789/customConstraints/custom。請勿在限制 ID 中輸入 PII 或機密資料,因為錯誤訊息可能會顯示上述資訊。 -
RESOURCE_NAME:內含要限制的物件和欄位的 Google Cloud資源完整名稱,例如:modelarmor.googleapis.com/Template。大多數資源類型最多支援 20 項自訂限制。如果嘗試建立更多自訂限制,作業會失敗。 -
methodTypes:強制執行限制的 REST 方法。可以是CREATE,或同時為CREATE和UPDATE。如果您使用UPDATE方法對違反限制的資源強制執行限制,組織政策會禁止對該資源進行變更,除非變更可解決違規問題。 -
CONDITION:針對支援服務資源表示法所撰寫的 CEL 條件。這個欄位最多可輸入 1000 個字元。例如:"has(resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement) && resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement == 'ENABLED'"。 -
ACTION:符合condition時採取動作。可能的值為ALLOW和DENY。 -
DISPLAY_NAME:人類可讀的限制名稱。這個名稱會用於錯誤訊息,可用於識別和偵錯。請勿在顯示名稱中使用 PII 或機密資料,因為錯誤訊息可能會顯示這類資訊。這個欄位最多可包含 200 個字元。 -
DESCRIPTION:違反政策時,會以錯誤訊息形式顯示且易於理解的限制說明。這個欄位最多可包含 2000 個字元。 -
為新的自訂限制建立 YAML 檔案後,您必須加以設定,才能用於組織的組織政策。如要設定自訂限制,請使用
gcloud org-policies set-custom-constraint指令: -
如要確認是否存在自訂限制,請使用
gcloud org-policies list-custom-constraints指令:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: RESOURCE_NAME methodTypes: - CREATE
- UPDATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
更改下列內容:
如要查看各項服務支援的方法,請在「 支援自訂限制的服務」中找到該服務。
如要進一步瞭解可編寫條件的資源,請參閱「支援的資源」。
「允許」動作表示如果條件評估為 true,則允許建立或更新資源。這也表示除了條件中明確列出的情況外,其他所有情況都會遭到封鎖。
「拒絕」動作是指如果條件評估結果為 true,系統就會禁止建立或更新資源。
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
請將 CONSTRAINT_PATH 替換成自訂限制檔案的完整路徑,例如:/home/user/customconstraint.yaml。
這項作業完成後,自訂限制會顯示在 Google Cloud 組織政策清單中,供組織政策使用。
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
將 ORGANIZATION_ID 替換為組織資源的 ID。
詳情請參閱「 查看組織政策」。
強制執行自訂組織政策
如要強制執行限制,請建立參照該限制的組織政策,然後將組織政策套用至 Google Cloud 資源。控制台
- 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。
- 在專案挑選器中,選取要設定組織政策的專案。
- 在「Organization policies」(組織政策) 頁面的清單中選取限制,即可查看該限制的「Policy details」(政策詳細資料) 頁面。
- 如要為這項資源設定組織政策,請按一下「Manage policy」(管理政策)。
- 在「Edit policy」(編輯政策) 頁面,選取「Override parent's policy」(覆寫上層政策)。
- 按一下「Add a rule」(新增規則)。
- 在「Enforcement」(強制執行) 部分,選取是否要強制執行這項組織政策。
- 選用:如要根據標記設定組織政策的條件,請按一下「Add condition」(新增條件)。請注意,如果為組織政策新增條件式規則,您必須至少新增一項無條件規則,否則無法儲存政策。詳情請參閱「 使用標記設定組織政策範圍」。
- 按一下「Test changes」(測試變更),模擬組織政策的影響。詳情請參閱「 使用 Policy Simulator 測試組織政策變更」。
- 如要在模擬測試模式下強制執行組織政策,請按一下「Set dry run policy」(設定模擬測試政策)。詳情請參閱「 測試組織政策」。
- 確認組織政策在模擬測試模式下運作正常後,請按一下「Set policy」(設定政策),設定正式政策。
gcloud
- 如要建立含有布林值規則的組織政策,請建立參照限制的政策 YAML 檔案:
-
PROJECT_ID:要強制執行限制的專案。 -
CONSTRAINT_NAME:要為自訂限制定義的名稱,例如:custom.requirePiAndJailbreakFilter。 -
如要在模擬測試模式中強制執行組織政策,請執行下列指令並加上
dryRunSpec旗標: -
確認模擬測試模式中的組織政策運作正常後,請使用
org-policies set-policy指令和spec旗標設定正式政策:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
更改下列內容:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
請將 POLICY_PATH 替換為組織政策 YAML 檔案的完整路徑。政策最多需要 15 分鐘才會生效。
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
請將 POLICY_PATH 替換為組織政策 YAML 檔案的完整路徑。政策最多需要 15 分鐘才會生效。
測試自訂組織政策
下列範例會建立自訂限制和政策,要求特定專案中所有新的或更新的範本,都必須啟用提示詞注入和越獄篩選器。
開始之前,請先確認您知曉下列資訊:
- 組織 ID
- 專案 ID
建立限制
將下列檔案儲存為
constraint-require-pi-filter.yaml:name: organizations/ORGANIZATION_ID/customConstraints/custom.requirePiAndJailbreakFilter resourceTypes: - modelarmor.googleapis.com/Template methodTypes: - CREATE - UPDATE condition: "has(resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement) && resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement == 'ENABLED'" actionType: ALLOW displayName: Require prompt injection and jailbreak filter description: All templates must have the prompt injection and jailbreak filter enabled.請將
ORGANIZATION_ID替換成組織 ID。這個檔案定義了一項限制,規定只有在啟用提示詞注入和越獄篩選器時,才能對
modelarmor.googleapis.com/Template資源執行建立或更新作業。套用限制:
gcloud org-policies set-custom-constraint ~/constraint-require-pi-filter.yaml確認限制是否存在:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID輸出結果會與下列內容相似:
CUSTOM_CONSTRAINT ACTION_TYPE METHOD_TYPES RESOURCE_TYPES DISPLAY_NAME custom.requirePiAndJailbreakFilter ALLOW CREATE,UPDATE modelarmor.googleapis.com/Template Require prompt injection and jailbreak filter ...
建立政策
將下列檔案儲存為
policy-require-pi-filter.yaml:name: projects/PROJECT_ID/policies/custom.requirePiAndJailbreakFilter spec: rules: - enforce: true將
PROJECT_ID替換為專案 ID。套用政策:
gcloud org-policies set-policy ~/policy-require-pi-filter.yaml確認政策是否存在:
gcloud org-policies list --project=PROJECT_ID輸出結果會與下列內容相似:
CONSTRAINT LIST_POLICY BOOLEAN_POLICY ETAG custom.requirePiAndJailbreakFilter - SET COCsm5QGENiXi2E=
套用政策後,請等待約兩分鐘, Google Cloud 就會開始強制執行政策。
測試政策
嘗試建立範本,並停用提示詞注入和越獄篩選器:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"filterConfig": {
"piAndJailbreakFilterSettings": {
"filterEnforcement": "DISABLED"
}
}
}' \
"https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?templateId=TEMPLATE_ID"
更改下列內容:
LOCATION:範本的位置。TEMPLATE_ID:範本 ID。PROJECT_ID:範本所屬專案的 ID。
作業會遭到拒絕,輸出內容大致如下:
{
"error": {
"code": 412,
"message": "Operation denied by custom org policies: [\"customConstraints/custom.requirePiAndJailbreakFilter\": \"All templates must have the prompt injection and jailbreak filter enabled.\"]",
"status": "FAILED_PRECONDITION"
}
}
常見用途的自訂組織政策範例
下表提供常見用途的一些自訂限制語法。
以下部分範例使用 CEL 巨集 exists。如要進一步瞭解 CEL 巨集,請參閱「巨集」。
| 說明 | 限制語法 |
|---|---|
| 要求對範本啟用提示詞注入和越獄防護功能 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.requirePiAndJailbreakFilter resourceTypes: - modelarmor.googleapis.com/Template methodTypes: - CREATE - UPDATE condition: "has(resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement) && resource.filterConfig.piAndJailbreakFilterSettings.filterEnforcement == 'ENABLED'" actionType: ALLOW displayName: Require prompt injection and jailbreak filter description: Requires that all templates have the prompt injection and jailbreak filter enabled. |
| 範本必須啟用仇恨言論篩選器 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.requireRaiHateSpeechFilter resourceTypes: - modelarmor.googleapis.com/Template methodTypes: - CREATE - UPDATE condition: "has(resource.filterConfig.raiSettings.raiFilters) && resource.filterConfig.raiSettings.raiFilters.exists(f, f.filterType == 'HATE_SPEECH')" actionType: ALLOW displayName: Require hate speech filter description: Requires that all templates include a responsible AI filter for hate speech detection. |
| 範本必須使用 Sensitive Data Protection 基本篩選器 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.requireSdpBasicFilter resourceTypes: - modelarmor.googleapis.com/Template methodTypes: - CREATE - UPDATE condition: "has(resource.filterConfig.sdpSettings.basicConfig.filterEnforcement) && resource.filterConfig.sdpSettings.basicConfig.filterEnforcement == 'ENABLED'" actionType: ALLOW displayName: Require Sensitive Data Protection basic filter description: Requires that all templates have the Sensitive Data Protection basic filter enabled. |
後續步驟
- 瞭解如何建立及管理 Model Armor 範本。
- 進一步瞭解組織政策服務。
- 進一步瞭解如何建立及管理組織政策。
- 查看代管組織政策限制的完整清單。