创建内容政策

内容政策是一种可重复使用的资源,包含检查配置和一组规则。每条规则都会根据检查发现结果指定条件。如果满足相应条件,政策会返回 ALLOWBLOCK 判定结果。

与其他 Sensitive Data Protection 检查操作(例如 content.inspect 调用或检查作业)不同,内容政策不会返回发现结果列表。

优势和用例

内容政策可让您根据检查结果立即采取行动,生成判决结果,而不是生成发现列表。示例使用场景包括:

  • 自动屏蔽包含敏感信息(例如信用卡号或个人身份信息 [PII])的聊天机器人回答或上传内容。
  • 将 Sensitive Data Protection 内容政策与 Gemini Enterprise 集成,以防止 Gemini Enterprise 使用包含敏感数据的内容。
  • 获取有关内容的即时同步判定结果,以强制执行组织数据政策。
  • 获取有关是否允许在 AI 模型训练数据集中使用某些类型的数据的判决。

准备工作

  1. 安装 Google Cloud CLI。

  2. 配置 gcloud CLI 以使用您的联合身份。

    如需了解详情,请参阅使用联合身份登录 gcloud CLI

  3. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  4. 启用 Data Loss Prevention API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色

    gcloud services enable dlp.googleapis.com
  5. 向您的用户账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/dlp.user

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • USER_IDENTIFIER:您的用户 账号。如需查看示例,请参阅 在 IAM 政策中表示员工池用户
    • ROLE:您向用户账号授予的 IAM 角色。

创建内容政策

控制台

  1. 在 Google Cloud 控制台中,前往 Sensitive Data Protection 的内容政策页面。

    前往“内容政策”

  2. 选择您的项目。

  3. 点击创建

  4. 基本信息中,执行以下操作:

    1. 输入内容政策的名称。
    2. 可选。输入唯一的内容政策 ID。如果您未输入内容政策 ID,Sensitive Data Protection 会自动设置一个。
    3. 选择要存储内容政策的区域或多区域。
    4. 点击继续
  5. 检查配置中,执行以下操作:

    1. 选择要检测的内置自定义 infoType。如需了解详情,请参阅通过Google Cloud 控制台管理 infoType

      如需使用现有的检查模板配置检测,请点击从模板导入,然后输入模板的完整资源名称。

    2. 可选。添加检查规则集。

      点击即可显示说明

      借助检查规则集,您可以使用上下文规则自定义内置和自定义的 infoType 检测器。检查规则的类型包括:

      • 排除规则:有助于排除误报或不需要的结果。
      • 热词规则:有助于检测其他发现结果。
      • 调整规则:根据发现结果出现的上下文调整发现结果的可能性。

      如需添加新规则集,请先在 InfoTypes 部分中指定一个或多个内置或自定义 infoType 检测器。选择规则集修改(目标 infoType)或用于评估(上下文 infoType)的所有 infoType 检测器。然后,执行以下操作:

      1. 点击添加规则集
      2. 选择目标 infoType 字段中,选择规则集在满足规则时修改的 infoType。
      3. 点击添加规则,打开包含多个选项的菜单,其中包括热词规则排除规则调整规则

      如需创建热词规则,请选择热词规则。然后,执行以下操作:

      1. 热词字段中,输入 Sensitive Data Protection 要查找的正则表达式。
      2. 热词邻近度菜单中,选择您输入的热词是在所选 infoType 之前还是之后找到的。
      3. 热词与 infoType 的距离中,输入热词与所选 infoType 之间的大致字符数。
      4. 置信度调整中,选择是为匹配项分配固定的可能性级别,还是将默认可能性级别提高或降低一定量。

      如需创建排除规则,请选择排除规则和要创建的排除规则类型,例如正则表达式。然后,执行以下操作:

      1. 根据您选择的排除规则类型,输入必须找到的正则表达式、短语、启动指令或上下文 infoType,规则才能生效。
      2. 根据您选择的排除规则类型,设置匹配类型或图片包含类型:
        • 如果您选择了基于文本的排除规则,请选择以下匹配类型之一:
          • 完全匹配:发现结果必须与您提供的文本或上下文 infoType 完全匹配。
          • Partial match(部分匹配):发现结果的子字符串必须与您提供的文本或上下文 infoType 相匹配。
          • 反向匹配:发现结果不得与您提供的文本或上下文 infoType 相匹配。
        • 如果您选择了基于图片的排除规则,请选择目标 infoType 与上下文 infoType 之间所需的空间关系。例如,如果您选择 Encloses,则上下文发现结果必须包含目标发现结果,规则才能适用。

      如需创建调整规则,请选择调整规则和调整规则类型,例如根据图片检测结果进行调整。然后,执行以下操作:

      1. 上下文 infoType 字段中,选择为目标发现结果提供上下文的 infoType 检测器。Sensitive Data Protection 使用上下文 infoType 来评估是否必须调整目标 infoType。
      2. 最低可能性字段中,选择上下文 infoType 可以具有的最低可能性级别,以便仍能触发调整规则。如果任何检测到的上下文发现结果的可能性值低于此值,Sensitive Data Protection 不会调整目标发现结果的可能性。
      3. 对于图片发现,请在图片包含类型字段中,选择目标信息类型与上下文信息类型之间所需的空间关系。例如,如果您选择 Encloses,则上下文发现结果必须包含目标发现结果,规则才能适用。
      4. 可能性字段中,选择要分配给目标发现结果的新可能性级别。

      您可以添加更多规则集,以进一步优化扫描结果。

    3. 可选。设置要检测的发现结果的置信度阈值。如需了解详情,请参阅匹配可能性

    4. 点击继续

  6. 政策规则中,添加政策规则以指定 Sensitive Data Protection 在检测到您在检查配置中指定的 infoType 时返回的判定结果(允许禁止)。您可以添加单个政策规则,以便针对任何 infoType 返回相同的判定结果;也可以添加多个政策规则,以便针对不同的 infoType 返回不同的判定结果。 您必须为添加的每条政策规则设置条件。

    如需添加政策规则,请执行以下操作:

    1. 点击添加政策规则
    2. 选择要分配给 infoType 发现结果的判定:允许禁止
    3. 点击添加条件。根据您是否要为不同的 infoType 设置不同的判定结果,将条件类型设置为任何 infoType特定 infoType
    4. 如果您选择了特定 infoType,请输入必须检测到的 infoType,以便 Sensitive Data Protection 返回您选择的判定结果。
    5. 如有需要,请添加更多政策规则及其相应条件。
    6. 点击继续
  7. 可选。在默认操作中,指定在以下情况下要应用的判决:

    • 要分配给不受支持的文件的判定。如需了解详情,请参阅支持的文件类型和扫描模式
    • 要分配给过大而无法扫描的支持文件的判决。
    • 要分配给无法扫描的文件(例如损坏或加密的文件)的判定。
    • 如果扫描的内容与任何规则都不匹配,则要分配的判决。

    点击继续

  8. 可选。在日志记录配置中,启用日志记录功能,以记录内容政策针对您扫描的数据做出的判决。执行以下操作:

    1. 选择将政策执行情况记录到 BigQuery
    2. 输入现有 BigQuery 表的详细信息,Sensitive Data Protection 必须将结果记录到该表中。
  9. 点击创建

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 发现结果的判定:ALLOWBLOCK
  • UNSUPPORTED_FILE_TYPE_VERDICT:可选。要分配给不受支持的文件的判决:ALLOWBLOCK。如需了解详情,请参阅支持的文件类型和扫描模式
  • INPUT_TOO_LARGE_VERDICT:可选。要分配给过大而无法扫描的支持文件的判决:ALLOWBLOCK
  • FAILED_TO_SCAN_VERDICT:可选。要分配给无法扫描的文件(例如已损坏或加密的文件)的判定结果:ALLOWBLOCK
  • DEFAULT_ACTION_VERDICT:可选。如果没有任何规则与扫描的内容匹配,则要分配的判决:ALLOWBLOCK
  • CONTENT_POLICY_ID:内容政策的唯一 ID。

获取内容政策的详细信息

控制台

  1. 在 Google Cloud 控制台中,前往 Sensitive Data Protection 的内容政策页面。

    前往“内容政策”

  2. 选择您的项目。

  3. 点击要查看的内容政策的资源名称。

  4. 详情标签页中,查看内容政策的详细信息。

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

更新内容政策

控制台

  1. 在 Google Cloud 控制台中,前往 Sensitive Data Protection 的内容政策页面。

    前往“内容政策”

  2. 选择您的项目。

  3. 点击内容政策的资源名称以进行修改。

  4. 点击修改

  5. 修改内容政策的详细信息。

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