Google Cloud 数据丢失防护运算符¶
Google Cloud DLP 提供工具来分类、屏蔽、标记化和转换敏感元素,以帮助您更好地管理您收集、存储或用于业务或分析的数据。
先决条件任务¶
要使用这些运算符,您必须执行以下几项操作
使用 Cloud Console 选择或创建 Cloud Platform 项目。
按照 Google Cloud 文档中的说明,为您的项目启用结算功能。
按照 Cloud Console 文档中的说明,启用 API。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'有关详细信息,请参阅 安装。
信息类型¶
Google Cloud DLP 使用信息类型来定义扫描内容。
创建存储的信息类型¶
要创建自定义信息类型,您可以使用 CloudDLPCreateStoredInfoTypeOperator
。
create_info_type = CloudDLPCreateStoredInfoTypeOperator(
project_id=PROJECT_ID,
config=CUSTOM_INFO_TYPES,
stored_info_type_id=CUSTOM_INFO_TYPE_ID,
task_id="create_info_type",
)
检索存储的信息类型¶
要检索 DLP-API 支持的敏感信息类型的列表以供参考,您可以使用 CloudDLPListInfoTypesOperator
。
同样,要检索自定义信息类型的列表,您可以使用 CloudDLPListStoredInfoTypesOperator
。
要检索单个信息类型,请使用 CloudDLPGetStoredInfoTypeOperator
更新存储的信息类型¶
要更新信息类型,您可以使用 CloudDLPUpdateStoredInfoTypeOperator
。
update_info_type = CloudDLPUpdateStoredInfoTypeOperator(
project_id=PROJECT_ID,
stored_info_type_id=CUSTOM_INFO_TYPE_ID,
config=UPDATE_CUSTOM_INFO_TYPE,
task_id="update_info_type",
)
删除存储的信息类型¶
要删除信息类型,您可以使用 CloudDLPDeleteStoredInfoTypeOperator
。
delete_info_type = CloudDLPDeleteStoredInfoTypeOperator(
project_id=PROJECT_ID,
stored_info_type_id=CUSTOM_INFO_TYPE_ID,
task_id="delete_info_type",
)
模板¶
模板可用于创建和持久化配置信息,以与 Cloud Data Loss Prevention 一起使用。Airflow 支持两种类型的 DLP 模板
检查模板
去标识化模板
在这里,我们将使用标识模板进行示例
创建模板¶
要创建检查模板,您可以使用 CloudDLPCreateInspectTemplateOperator
。
create_template = CloudDLPCreateInspectTemplateOperator(
task_id="create_template",
project_id=PROJECT_ID,
inspect_template=INSPECT_TEMPLATE,
template_id=TEMPLATE_ID,
do_xcom_push=True,
)
检索模板¶
如果您已经有现有的检查模板,您可以使用 CloudDLPGetInspectTemplateOperator
检索它。可以通过 CloudDLPListInspectTemplatesOperator
检索现有检查模板的列表
使用模板¶
要使用我们刚刚创建的检查模板查找潜在敏感信息,我们可以使用 CloudDLPInspectContentOperator
inspect_content = CloudDLPInspectContentOperator(
task_id="inspect_content",
project_id=PROJECT_ID,
item=ITEM,
inspect_template_name="{{ task_instance.xcom_pull('create_template', key='return_value')['name'] }}",
)
更新模板¶
要更新模板,您可以使用 CloudDLPUpdateInspectTemplateOperator
。
删除模板¶
要删除模板,您可以使用 CloudDLPDeleteInspectTemplateOperator
。
delete_template = CloudDLPDeleteInspectTemplateOperator(
task_id="delete_template",
template_id=TEMPLATE_ID,
project_id=PROJECT_ID,
)
去标识化模板¶
与检查模板类似,去标识化模板也有 CRUD 运算符
CloudDLPCreateDeidentifyTemplateOperator
CloudDLPDeleteDeidentifyTemplateOperator
CloudDLPUpdateDeidentifyTemplateOperator
CloudDLPGetDeidentifyTemplateOperator
CloudDLPListDeidentifyTemplatesOperator
作业和作业触发器¶
Cloud Data Loss Protection 使用作业来运行操作,以扫描内容中的敏感数据或计算重新标识的风险。您可以使用作业触发器来安排这些作业。
创建作业¶
要创建作业,您可以使用 CloudDLPCreateDLPJobOperator
。
检索作业¶
要检索作业列表,您可以使用 CloudDLPListDLPJobsOperator
。要检索单个作业,请使用 CloudDLPGetDLPJobOperator
。
删除作业¶
要删除作业,您可以使用 CloudDLPDeleteDLPJobOperator
。
取消作业¶
要开始异步取消长时间运行的 DLP 作业,您可以使用 CloudDLPCancelDLPJobOperator
。
创建作业触发器¶
要创建作业触发器,您可以使用 CloudDLPCreateJobTriggerOperator
。
create_trigger = CloudDLPCreateJobTriggerOperator(
project_id=PROJECT_ID,
job_trigger=JOB_TRIGGER,
trigger_id=TRIGGER_ID,
task_id="create_trigger",
)
检索作业触发器¶
要检索作业触发器列表,您可以使用 CloudDLPListJobTriggersOperator
。要检索单个作业触发器,您可以使用 CloudDLPGetDLPJobTriggerOperator
。
更新作业触发器¶
要更新作业触发器,您可以使用 CloudDLPUpdateJobTriggerOperator
。
update_trigger = CloudDLPUpdateJobTriggerOperator(
project_id=PROJECT_ID,
job_trigger_id=TRIGGER_ID,
job_trigger=JOB_TRIGGER,
task_id="update_info_type",
)
删除作业触发器¶
要删除作业触发器,您可以使用 CloudDLPDeleteJobTriggerOperator
。
delete_trigger = CloudDLPDeleteJobTriggerOperator(
project_id=PROJECT_ID, job_trigger_id=TRIGGER_ID, task_id="delete_info_type"
)
内容方法¶
与存储方法(作业)不同,内容方法是同步的、无状态的方法。
去标识化内容¶
去标识化是从数据中删除标识信息的过程。配置信息定义您希望如何对敏感数据进行去标识化。
此配置可以保存在去标识化模板中并持久化,也可以在 DeidentifyConfig
对象中定义
DEIDENTIFY_CONFIG = {
"info_type_transformations": {
"transformations": [
{
"primitive_transformation": {
"replace_config": {"new_value": {"string_value": "[deidentified_number]"}}
}
}
]
}
}
要从内容项中去标识化潜在敏感信息,您可以使用 CloudDLPDeidentifyContentOperator
。
deidentify_content = CloudDLPDeidentifyContentOperator(
project_id=PROJECT_ID,
item=ITEM,
deidentify_config=DEIDENTIFY_CONFIG,
inspect_config=INSPECT_CONFIG,
task_id="deidentify_content",
)
重新标识内容¶
要重新标识已去标识化的内容,您可以使用 CloudDLPReidentifyContentOperator
。
编辑图像¶
要从内容图像中编辑潜在敏感信息,您可以使用 CloudDLPRedactImageOperator
。