內容政策是可重複使用的資源,內含檢查設定和一組規則。每項規則都會根據檢查結果指定條件。如果符合條件,政策會傳回 ALLOW 或 BLOCK 判定結果。
與其他 Sensitive Data Protection 檢查作業 (例如 content.inspect 呼叫或檢查工作) 不同,內容政策不會傳回發現項目清單。
優點及用途
內容政策會根據檢查結果立即做出判決,而非提供發現項目清單,應用實例如下:
- 自動封鎖含有信用卡號或個人識別資訊 (PII) 等私密資訊的聊天機器人回覆或上傳內容。
- 將 Sensitive Data Protection 內容政策與 Gemini Enterprise 整合,防止 Gemini Enterprise 使用含有機密資料的內容。
- 即時取得內容的同步判決結果,以強制執行機構資料政策。
- 判斷是否允許在 AI 模型訓練資料集中使用特定類型的資料。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init 啟用 Data Loss Prevention API:
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dlp.googleapis.com
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/dlp.usergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者 帳戶的 ID。例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init 啟用 Data Loss Prevention API:
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dlp.googleapis.com
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/dlp.usergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者 帳戶的 ID。例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
建立內容政策
控制台
前往 Google Cloud 控制台的「Sensitive Data Protection」(敏感資料保護) 頁面。
選取專案。
點選「建立」。
在「基本資訊」中,執行下列操作:
- 輸入內容政策名稱。
- 選用。輸入專屬內容政策 ID。如果您未輸入內容政策 ID,Sensitive Data Protection 會自動設定。
- 選取要儲存內容政策的區域或多區域。
- 按一下「繼續」。
在「檢查設定」中,執行下列操作:
選取要偵測的內建或自訂 infoType。詳情請參閱透過Google Cloud 控制台管理 infoType。
如要使用現有的檢查範本設定偵測功能,請按一下「從範本匯入」,然後輸入範本的完整資源名稱。
選用。新增檢查規則集。
按一下即可顯示操作說明
檢查規則集可讓您使用內容規則,自訂內建和自訂的 infoType 偵測工具。檢查規則類型包括:
如要新增規則集,請先在「InfoTypes」InfoTypes部分指定一或多個內建或自訂 infoType 偵測工具。選取規則集修改的所有 infoType 偵測工具 (target infoType),或用於評估的偵測工具 (context infoType)。然後執行下列步驟:
- 按一下「新增規則集」。
- 在「選擇目標 infoType」欄位中,選取規則集在符合規則時要修改的 infoType。
- 按一下「新增規則」,開啟含有選項的選單,包括「啟動字詞規則」、「排除規則」和「調整規則」。
如要建立啟動字詞規則,請選取「啟動字詞規則」。然後執行下列步驟:
- 在「Hotword」(熱字) 欄位中,輸入 Sensitive Data Protection 要搜尋的規則運算式。
- 在「啟動字詞鄰近程度」選單中,選取輸入的啟動字詞是在所選 infoType 之前或之後。
- 在「啟動字詞與 infoType 的距離」中,輸入啟動字詞和所選 infoType 之間的約略字元數。
- 在「信賴水準調整」中,選取要為相符項目指派固定可能性等級,還是要將預設可能性等級調高或調低特定幅度。
如要建立排除規則,請選取「排除規則」和要建立的排除規則類型,例如「規則運算式」。然後執行下列步驟:
- 根據您選取的排除規則類型,輸入規則運算式、詞組、啟動字詞或結構定義 infoType,系統必須找到這些項目才能套用規則。
- 視您選取的排除規則類型而定,設定相符類型或圖片包含類型:
- 如果您選取以文字為準的排除規則,請選取下列其中一種比對類型:
- 完全比對:發現項目必須與您提供的文字或脈絡資訊 infoType 完全相符。
- 部分相符:發現項目的子字串必須與您提供的文字或脈絡資訊 infoType 相符。
- 反向比對:發現項目不得與您提供的文字或脈絡資訊 infoType 相符。
- 如果您選取以圖片為準的排除規則,請選取目標和內容 infoType 之間所需的空間關係。舉例來說,如果您選取「Encloses」(封閉),則情境發現項目必須封閉目標發現項目,規則才會套用。
如要建立調整規則,請選取「調整規則」和調整規則類型,例如「依圖片結果調整」。然後執行下列步驟:
- 在「Context infoTypes」欄位中,選取可為目標發現項目提供脈絡的 infoType 偵測工具。Sensitive Data Protection 會使用背景資訊類型,評估是否需要調整目標資訊類型。
- 在「最低可能性」欄位中,選取內容 infoType 的最低可能性等級,只要達到這個等級,就會觸發調整規則。如果偵測到的任何內容發現項目的可能性值低於這個值,Sensitive Data Protection 就不會調整目標發現項目的可能性。
- 如果是圖片結果,請在「圖片包含類型」欄位中,選取目標和內容資訊類型之間所需的空間關係。舉例來說,如果您選取「Encloses」(封閉),則情境發現項目必須封閉目標發現項目,規則才會套用。
- 在「可能性」欄位中,選取要指派給目標發現項目的新可能性等級。
您可以新增更多規則集,進一步縮小掃描結果範圍。
選用。設定要偵測的發現項目可信度門檻。詳情請參閱「比對可能性」。
按一下「繼續」。
在「政策規則」中新增政策規則,指定 Sensitive Data Protection 在偵測到您在檢查設定中指定的 infoType 時,應傳回的判定結果 (「允許」或「封鎖」)。您可以新增單一政策規則,針對任何 infoType 傳回相同判定結果,也可以新增多項政策規則,針對不同 infoType 傳回不同判定結果。您必須為新增的每項政策規則設定條件。
如要新增政策規則,請按照下列步驟操作:
- 按一下「新增政策規則」。
- 選取要指派給 infoType 發現項目的判決:選取「允許」或「封鎖」。
- 按一下「新增條件」。如要為不同 infoType 設定不同判決,請將「條件類型」設為「任何 infoType」或「特定 infoType」。
- 如果您選取「特定 infoType」,請輸入必須偵測到的 infoType,Sensitive Data Protection 功能才會傳回您選取的判定結果。
- 視需要新增更多政策規則和對應條件。
- 按一下「繼續」。
選用。在「預設動作」中,指定要在下列情況套用的判決:
- 要指派給不支援檔案的判決。詳情請參閱「支援的檔案類型和掃描模式」。
- 要指派給支援檔案的判決,這些檔案過大而無法掃描。
- 無法掃描的檔案 (例如損毀或加密的檔案) 適用的判定。
- 如果掃描內容不符合任何規則,要指派的判決。
按一下「繼續」。
選用。在「記錄設定」中啟用記錄功能,記錄內容政策對掃描資料發布的判定結果。請執行下列步驟:
- 選取「將政策執行記錄寫入 BigQuery」。
- 輸入現有 BigQuery 資料表的詳細資料,Sensitive Data Protection 必須將結果記錄在該資料表中。
按一下「Create」(建立)。
REST
如要建立內容政策,請對projects.locations.contentPolicies.create 方法發出 POST 要求。要求會定義 content_policy 物件,其中包含檢查設定和規則,可根據檢查結果判斷判定結果。
content_policy 物件具有下列屬性:
{
"contentPolicy": {
"displayName": "DISPLAY_NAME",
"inspectConfig": {
"infoTypes": [
{
"name": "INFOTYPE_DETECTOR"
}
],
"ruleSet": "LIST_OF_RULES"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "INFOTYPE_CONDITION_VERDICT"
}
}
],
"unsupportedFileType": {
"returnVerdict": "UNSUPPORTED_FILE_TYPE_VERDICT"
},
"inputTooLarge": {
"returnVerdict": "INPUT_TOO_LARGE_VERDICT"
},
"failedToScanSupportedFileType": {
"returnVerdict": "FAILED_TO_SCAN_VERDICT"
},
"defaultAction": {
"returnVerdict": "DEFAULT_ACTION_VERDICT"
}
},
"contentPolicyId": "CONTENT_POLICY_ID"
}
更改下列內容:
DISPLAY_NAME:選用。使用者可解讀的內容政策名稱。INFOTYPE_DETECTOR:內建或自訂 infoType。LIST_OF_RULES:選用。檢查規則清單,如「修改 infoType 偵測工具以修正掃描結果」一文所述。為求簡潔,這段程式碼已截斷。如要查看內容政策中的規則集定義範例,請參閱擴充範例。INFOTYPE_CONDITION_VERDICT:要指派給 infoType 發現項目的判定:ALLOW或BLOCK。UNSUPPORTED_FILE_TYPE_VERDICT:選用。要指派給不支援檔案的判決:ALLOW或BLOCK。詳情請參閱「支援的檔案類型和掃描模式」。INPUT_TOO_LARGE_VERDICT:選用。要指派給過大而無法掃描的支援檔案的判定結果:ALLOW或BLOCK。FAILED_TO_SCAN_VERDICT:選用。要指派給無法掃描的檔案 (例如損毀或加密的檔案) 的判定結果:ALLOW或BLOCK。DEFAULT_ACTION_VERDICT:選用。如果沒有任何規則符合掃描內容,要指派的判定結果:ALLOW或BLOCK。CONTENT_POLICY_ID:內容政策的專屬 ID。
取得內容政策的詳細資料
控制台
前往 Google Cloud 控制台的「Sensitive Data Protection」(敏感資料保護) 頁面。
選取專案。
按一下要查看的內容政策資源名稱。
在「詳細資料」分頁中,查看內容政策的詳細資料。
REST
如要取得內容政策,請向projects.locations.contentPolicies.get 方法傳送 GET 要求。
使用任何要求資料之前,請先修改下列項目的值:
-
REGION:提供 Sensitive Data Protection 區域端點的區域,例如us-west2。如需完整地區清單,請參閱「Sensitive Data Protection 地區」。 -
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如example-project。 -
CONTENT_POLICY_ID:要取得詳細資料的內容政策 ID。
HTTP 方法和網址:
GET https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies/CONTENT_POLICY_ID
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY",
"limits": {}
}
}更新內容政策
控制台
前往 Google Cloud 控制台的「Sensitive Data Protection」(敏感資料保護) 頁面。
選取專案。
按一下要編輯的內容政策資源名稱。
按一下 [編輯]。
編輯內容政策的詳細資料。
REST
如要更新內容政策,請對projects.locations.contentPolicies.update 方法傳送 PATCH 要求。要求會定義更新後的 content_policy 物件。
使用任何要求資料之前,請先修改下列項目的值:
-
REGION:提供 Sensitive Data Protection 區域端點的區域,例如us-west2。如需完整地區清單,請參閱「Sensitive Data Protection 地區」。 -
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如example-project。 -
CONTENT_POLICY_ID:要更新的內容政策 ID。
HTTP 方法和網址:
PATCH https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies/CONTENT_POLICY_ID
JSON 要求主體:
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY",
"limits": {}
}
}REST 範例
下列 REST 範例說明如何使用 REST API 建立內容政策。
簡單範例
以下範例會建立政策,找出可能性為 POSSIBLE 以上的 CREDIT_CARD_NUMBER 發現項目。如果系統找到信用卡號碼,機密資料保護功能會傳回 BLOCK 判定結果。
使用任何要求資料之前,請先修改下列項目的值:
-
REGION:提供 Sensitive Data Protection 區域端點的區域,例如us-west2。如需完整地區清單,請參閱「Sensitive Data Protection 地區」。 -
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如example-project。
HTTP 方法和網址:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
JSON 要求主體:
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
},
"contentPolicyId": "block-credit-cards-policy"
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE",
"limits": {}
}
}Expanded example
以下範例會建立政策,找出可能性為 POSSIBLE 以上的 CREDIT_CARD_NUMBER 發現項目。其中包含啟動字詞規則,如果系統在發現項目附近偵測到「credit card」一詞,就會將發現項目的可能性值提高至 VERY_LIKELY。
- 如果 Sensitive Data Protection 偵測到可能的信用卡號碼,就會傳回
BLOCK判決。 - 如果掃描的檔案不支援、過大、已損毀、經過加密或無法掃描,Sensitive Data Protection 會傳回
BLOCK判定結果。 - 如果掃描內容不符合任何規則,Sensitive Data Protection 會傳回
ALLOW判定結果。
使用任何要求資料之前,請先修改下列項目的值:
-
REGION:提供 Sensitive Data Protection 區域端點的區域,例如us-west2。如需完整地區清單,請參閱「Sensitive Data Protection 地區」。 -
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如example-project。
HTTP 方法和網址:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
JSON 要求主體:
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "credit\\scard"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"unsupportedFileType": {
"returnVerdict": "BLOCK"
},
"inputTooLarge": {
"returnVerdict": "BLOCK"
},
"failedToScanSupportedFileType": {
"returnVerdict": "BLOCK"
},
"defaultAction": {
"returnVerdict": "ALLOW"
}
},
"contentPolicyId": "block-credit-cards-policy"
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/example-project/locations/us-west2/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"limits": {},
"ruleSet": [
{
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "credit\\scard"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"unsupportedFileType": {
"returnVerdict": "BLOCK"
},
"inputTooLarge": {
"returnVerdict": "BLOCK"
},
"failedToScanSupportedFileType": {
"returnVerdict": "BLOCK"
},
"defaultAction": {
"returnVerdict": "ALLOW"
}
}掃描中繼資料標籤的範例
以下範例會指示 Sensitive Data Protection 掃描信用卡號碼和含有 MSIP_Label_12345-12345-1234-12345_Enabled 鍵的中繼資料標籤。如果發現任何敏感資料,Sensitive Data Protection 會傳回 BLOCK 判定結果。
如要進一步瞭解中繼資料標籤掃描,請參閱「建立自訂中繼資料標籤偵測工具」一文。
使用任何要求資料之前,請先修改下列項目的值:
-
REGION:提供 Sensitive Data Protection 區域端點的區域,例如us-west2。如需完整地區清單,請參閱「Sensitive Data Protection 地區」。 -
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如example-project。
HTTP 方法和網址:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
JSON 要求主體:
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"customInfoTypes": [
{
"infoType": {
"name": "CUSTOM_MSIP1"
},
"likelihood": "VERY_LIKELY",
"fileLabelInfoType": {
"sensitivityLabel": {
"guid": "12345678-1234-1234-1234-123456789012"
}
}
}
],
"minLikelihood": "POSSIBLE"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
},
"contentPolicyId": "block-credit-cards-policy-metadata-scanning"
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy-metadata-scanning",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE",
"limits": {},
"customInfoTypes": [
{
"infoType": {
"name": "CUSTOM_MSIP1"
},
"likelihood": "VERY_LIKELY",
"fileLabelInfoType": {
"sensitivityLabel": {
"guid": "12345678-1234-1234-1234-123456789012"
}
}
}
]
}
}