创建自定义元数据标签检测器

本文档介绍了如何配置 Sensitive Data Protection,以检测内容中的特定元数据标签。

在此文档中,元数据标签是指嵌入在受支持的文件中或由客户端应用在检查请求中提供的元数据中的文件标签。如果 Sensitive Data Protection 发现的内容符合您的元数据条件,则会生成发现结果。

如需扫描元数据标签,请创建自定义元数据标签 infoType。然后,配置检查或发现服务扫描以搜索该 infoType。

优势和用例

借助此功能,您可以使用现有的分类分类法进行内容检查和政策执行。如果您使用可将元数据标签应用于文档的自定义或第三方分类系统,则可以配置 Sensitive Data Protection,使其在检查或发现操作期间检测这些元数据标签。

示例使用场景包括:

  • 扫描文件,查找包含特定元数据的 Google 云端硬盘标签Microsoft 敏感度标签
  • 将元数据标签检测与标准 infoType 检测相结合,实现多层检测。
  • 扫描客户端应用随内容一起传递的元数据,即使元数据未嵌入到文件中也是如此。在本文档中,这种类型的元数据称为客户端提供的元数据
  • 使用 Model Armor 根据特定元数据标签清理文档。如需将此功能与 Model Armor 或使用 Model Armor 的服务(例如 Gemini Enterprise)搭配使用,您必须在 Model Armor 中创建高级 Sensitive Data Protection 配置,以引用此自定义元数据标签检测器。

支持的元数据格式

此功能可以检测以下类型的元数据:

  • Google 云端硬盘标签
  • 以下文件类型中的 Microsoft 敏感度标签:

    • DOCX
    • PDF
    • PPTX
    • XLSX
  • 客户提供的元数据

不支持的配置

以下内容不支持自定义元数据标签检测器:

创建元数据标签检测器

如需创建元数据标签检测器,请在 InspectConfig 对象中定义 CustomInfoType。根据要扫描的元数据类型,定义以下内容之一:

创建元数据标签检测器以扫描文件标签

如需扫描 Google 云端硬盘标签或 Microsoft 敏感度标签,请定义具有 FileLabelInfoTypeCustomInfoType

{
  "inspectConfig": {
    "customInfoTypes": [
      {
        "infoType": {
          "name": "CUSTOM_METADATA_LABEL_NAME"
        },
        "likelihood": "LIKELIHOOD",
        "sensitivityScore": {
          "score": "SENSITIVITY_SCORE"
        },
        "fileLabelInfoType": {
          "googleDriveLabel": {
            "labelId": "LABEL_ID",
            "labelFieldsToMatch": [
              {
                "id": "FIELD_ID",
                "value": "FIELD_VALUE"
              }
            ]
          },
          "sensitivityLabel": {
            "guid": "GUID"
          }
        }
      }
    ]
  }
}

替换以下内容:

  • CUSTOM_METADATA_LABEL_NAME:要分配给自定义 infoType 检测器的名称。
  • LIKELIHOOD:可选。要分配给与此自定义 infoType 相匹配的所有发现结果的 Likelihood 值。如果省略此字段,则默认可能性级别为 VERY_LIKELY
  • SENSITIVITY_SCORE:可选。要分配给与此自定义 infoType 匹配的所有发现结果的 SensitivityScore。如果省略此字段,则默认敏感度得分是 HIGH

    敏感度得分用于数据分析结果。在分析数据时,Sensitive Data Protection 会使用 infoType 的敏感度得分来计算敏感度级别

  • LABEL_ID:可选。要匹配的 Google 云端硬盘标签的 ID。如果您仅指定 LABEL_ID,检测器会匹配应用了相应 Google 云端硬盘标签的任何文件,无论其字段值是什么。如需匹配标签中的特定字段值,请添加 labelFieldsToMatch 对象。

  • FIELD_ID:如果您指定了 labelFieldsToMatch 对象,则此参数为必需参数。要匹配的 Google 云端硬盘标签字段的 ID。

  • FIELD_VALUE:如果您指定了 labelFieldsToMatch 对象,则此参数为必需参数。要匹配的 Google 云端硬盘标签字段的值。

  • GUID:可选。要匹配的 Microsoft 敏感度标签的 GUID。

Google 云端硬盘标签的检测器示例

inspectConfig 示例定义了一个名为 CUSTOM_GOOGLE_DRIVE_LABEL_CONFIDENTIAL 的自定义 infoType。此自定义 infoType 可检测具有以下特征的 Google 云端硬盘标签:

  • 标签 ID mydrive-label-id
  • 相应标签内包含 ID 为 sensitivity-field-id 且值为 confidential 的字段。

如果您未在 labelFieldsToMatch 中指定字段 ID 和值,则此自定义 infoType 会检测具有 mydrive-label-id 标签的文件,无论是否存在任何标签字段。

{
  "inspectConfig": {
    "customInfoTypes": [
      {
        "infoType": {
          "name": "CUSTOM_GOOGLE_DRIVE_LABEL_CONFIDENTIAL"
        },
        "likelihood": "VERY_LIKELY",
        "fileLabelInfoType": {
          "googleDriveLabel": {
            "labelId": "mydrive-label-id",
            "labelFieldsToMatch": [
              {
                "id": "sensitivity-field-id",
                "value": "confidential"
              }
            ]
          }
        }
      }
    ],
    "minLikelihood": "POSSIBLE"
  }
}

如果您在检查作业中使用此配置,Sensitive Data Protection 会在找到匹配项时生成CUSTOM_GOOGLE_DRIVE_LABEL_CONFIDENTIAL发现结果。

Microsoft 敏感度标签的检测器示例

inspectConfig 示例定义了一个名为 CUSTOM_SENSITIVITY_LABEL_CONFIDENTIAL 的自定义 infoType。此自定义 infoType 可检测包含 GUID 12345678-9012-3456-7890-123456789012 的 Microsoft 敏感度标签:

{
  "inspectConfig": {
    "customInfoTypes": [
      {
        "infoType": {
          "name": "CUSTOM_SENSITIVITY_LABEL_CONFIDENTIAL"
        },
        "likelihood": "VERY_LIKELY",
        "fileLabelInfoType": {
          "sensitivityLabel": {
            "guid": "12345678-9012-3456-7890-123456789012"
          }
        }
      }
    ],
    "minLikelihood": "POSSIBLE"
  }
}

如果您在检查作业中使用此配置,Sensitive Data Protection 会在找到匹配项时生成CUSTOM_SENSITIVITY_LABEL_CONFIDENTIAL发现结果。

创建元数据标签检测器以扫描自定义键值对

如需使用正则表达式扫描客户提供的元数据中的自定义键值对,请按以下步骤操作:

  1. 定义一个具有 MetadataKeyValueExpressionCustomInfoType

    {
      "inspectConfig": {
        "customInfoTypes": [
          {
            "infoType": {
              "name": "CUSTOM_METADATA_LABEL_NAME"
            },
            "likelihood": "LIKELIHOOD",
            "sensitivityScore": {
              "score": "SENSITIVITY_SCORE"
            },
            "metadataKeyValueExpression": {
              "keyRegex": "KEY_REGULAR_EXPRESSION",
              "valueRegex": "VALUE_REGULAR_EXPRESSION"
            }
          }
        ]
      }
    }
    

    替换以下内容:

    • CUSTOM_METADATA_LABEL_NAME:要分配给自定义 infoType 检测器的名称。
    • LIKELIHOOD:可选。要分配给与此自定义 infoType 相匹配的所有发现结果的 Likelihood 值。如果省略此字段,则默认可能性级别为 VERY_LIKELY
    • SENSITIVITY_SCORE:可选。要分配给与此自定义 infoType 匹配的所有发现结果的 SensitivityScore。如果省略此字段,则默认敏感度得分是 HIGH

      敏感度得分用于数据分析结果。在分析数据时,Sensitive Data Protection 会使用 infoType 的敏感度得分来计算敏感度级别

    • KEY_REGULAR_EXPRESSION:用于在元数据标签的键中进行搜索的正则表达式。

    • VALUE_REGULAR_EXPRESSION:用于在元数据标签的值中进行搜索的正则表达式。

  2. content.inspect 请求中,在 ContentItemContentMetadata 字段中指定客户端提供的元数据。

扫描客户端提供的元数据的请求示例

以下示例展示了一个 content.inspect 请求,其中包含 PDF 文件和客户提供的元数据。该请求使用名为 CUSTOM_METADATA_CLASSIFICATION 的自定义 infoType 扫描标记为“机密”或“内部使用”的文件。

{
  "inspectConfig": {
    "customInfoTypes": [
      {
        "infoType": {
          "name": "CUSTOM_METADATA_CLASSIFICATION"
        },
        "likelihood": "VERY_LIKELY",
        "metadataKeyValueExpression": {
          "keyRegex": "classification",
          "valueRegex": "Confidential|Internal Use"
        }
      }
    ]
  },
  "item": {
    "byteItem": {
      "type": "PDF",
      "data": "BASE64_ENCODED_PDF"
    },
    "contentMetadata": {
      "properties": [
        {
          "key": "classification",
          "value": "Confidential"
        }
      ]
    }
  }
}

BASE64_ENCODED_PDF 替换为要扫描的 base64 编码文件。

如果 Sensitive Data Protection 在内容中找到匹配项,就会生成发现结果。根据匹配项是嵌入在文件中 (CONTENT_METADATA) 还是由客户端提供 (CLIENT_PROVIDED_METADATA),填充 MetadataLocation 的发现结果的 MetadataType

后续步骤