Google Cloud 数据丢失防护操作符¶
Google Cloud DLP 提供工具来对敏感元素进行分类、屏蔽、标记化和转换,帮助您更好地管理为业务或分析收集、存储或使用的那些数据。
先决任务¶
要使用这些操作符,您必须执行以下操作
使用 Cloud 控制台 选择或创建 Cloud Platform 项目。
为您的项目启用帐单,如 Google Cloud 文档 中所述。
启用 API,如 Cloud 控制台文档 中所述。
通过 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
。