内容政策是一种可重复使用的资源,包含检查配置和一组规则。每条规则都会根据检查发现结果指定条件。如果满足相应条件,政策会返回 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权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (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:您的用户 账号的标识符。例如,myemail@example.com。ROLE:您向用户账号授予的 IAM 角色。
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init 启用 Data Loss Prevention API:
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (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:您的用户 账号的标识符。例如,myemail@example.com。ROLE:您向用户账号授予的 IAM 角色。
创建内容政策
控制台
在 Google Cloud 控制台中,前往 Sensitive Data Protection 的内容政策页面。
选择您的项目。
点击创建。
在基本信息中,执行以下操作:
- 输入内容政策的名称。
- 可选。输入唯一的内容政策 ID。如果您未输入内容政策 ID,Sensitive Data Protection 会自动设置一个。
- 选择要存储内容政策的区域或多区域。
- 点击继续。
在检查配置中,执行以下操作:
选择要检测的内置或自定义 infoType。如需了解详情,请参阅通过Google Cloud 控制台管理 infoType。
如需使用现有的检查模板配置检测,请点击从模板导入,然后输入模板的完整资源名称。
可选。添加检查规则集。
点击即可显示说明
借助检查规则集,您可以使用上下文规则自定义内置和自定义的 infoType 检测器。检查规则的类型包括:
- 排除规则:有助于排除误报或不需要的结果。
- 热词规则:有助于检测其他发现结果。
- 调整规则:根据发现结果出现的上下文调整发现结果的可能性。
如需添加新规则集,请先在 InfoTypes 部分中指定一个或多个内置或自定义 infoType 检测器。选择规则集修改(目标 infoType)或用于评估(上下文 infoType)的所有 infoType 检测器。然后,执行以下操作:
- 点击添加规则集。
- 在选择目标 infoType 字段中,选择规则集在满足规则时修改的 infoType。
- 点击添加规则,打开包含多个选项的菜单,其中包括热词规则、排除规则和调整规则。
如需创建热词规则,请选择热词规则。然后,执行以下操作:
- 在热词字段中,输入 Sensitive Data Protection 要查找的正则表达式。
- 在热词邻近度菜单中,选择您输入的热词是在所选 infoType 之前还是之后找到的。
- 在热词与 infoType 的距离中,输入热词与所选 infoType 之间的大致字符数。
- 在置信度调整中,选择是为匹配项分配固定的可能性级别,还是将默认可能性级别提高或降低一定量。
如需创建排除规则,请选择排除规则和要创建的排除规则类型,例如正则表达式。然后,执行以下操作:
- 根据您选择的排除规则类型,输入必须找到的正则表达式、短语、启动指令或上下文 infoType,规则才能生效。
- 根据您选择的排除规则类型,设置匹配类型或图片包含类型:
- 如果您选择了基于文本的排除规则,请选择以下匹配类型之一:
- 完全匹配:发现结果必须与您提供的文本或上下文 infoType 完全匹配。
- Partial match(部分匹配):发现结果的子字符串必须与您提供的文本或上下文 infoType 相匹配。
- 反向匹配:发现结果不得与您提供的文本或上下文 infoType 相匹配。
- 如果您选择了基于图片的排除规则,请选择目标 infoType 与上下文 infoType 之间所需的空间关系。例如,如果您选择 Encloses,则上下文发现结果必须包含目标发现结果,规则才能适用。
如需创建调整规则,请选择调整规则和调整规则类型,例如根据图片检测结果进行调整。然后,执行以下操作:
- 在上下文 infoType 字段中,选择为目标发现结果提供上下文的 infoType 检测器。Sensitive Data Protection 使用上下文 infoType 来评估是否必须调整目标 infoType。
- 在最低可能性字段中,选择上下文 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 必须将结果记录到该表中。
点击创建。
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 检测结果。如果发现信用卡号,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"
}
],
"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": {}
}
}展开的示例
以下示例创建了一项政策,用于识别可能性为 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"
}
}
}
]
}
}