Google Cloud 数据丢失防护操作符

Google Cloud DLP 提供工具来对敏感元素进行分类、屏蔽、标记化和转换,帮助您更好地管理为业务或分析收集、存储或使用的那些数据。

先决任务

要使用这些操作符,您必须执行以下操作

信息类型

Google Cloud DLP 使用信息类型来定义扫描内容。

创建存储的信息类型

要创建自定义信息类型,您可以使用 CloudDLPCreateStoredInfoTypeOperator

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_info_types.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_info_types.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_info_types.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_inspect_template.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_inspect_template.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_inspect_template.py[源代码]

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

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_job_trigger.py[源代码]

create_trigger = CloudDLPCreateJobTriggerOperator(
    project_id=PROJECT_ID,
    job_trigger=JOB_TRIGGER,
    trigger_id=TRIGGER_ID,
    task_id="create_trigger",
)

检索作业触发器

要检索作业触发器列表,可以使用 CloudDLPListJobTriggersOperator。要检索单个作业触发器,可以使用 CloudDLPGetDLPJobTriggerOperator

更新作业触发器

要更新作业触发器,可以使用 CloudDLPUpdateJobTriggerOperator

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_job_trigger.py[源代码]

update_trigger = CloudDLPUpdateJobTriggerOperator(
    project_id=PROJECT_ID,
    job_trigger_id=TRIGGER_ID,
    job_trigger=JOB_TRIGGER,
    task_id="update_info_type",
)

删除作业触发器

要删除作业触发器,可以使用 CloudDLPDeleteJobTriggerOperator

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_job_trigger.py[源代码]

delete_trigger = CloudDLPDeleteJobTriggerOperator(
    project_id=PROJECT_ID, job_trigger_id=TRIGGER_ID, task_id="delete_info_type"
)

内容方法

与存储方法(作业)不同,内容方法是同步无状态方法。

对内容进行匿名化

匿名化是将识别信息从数据中删除的过程。配置信息定义了您希望如何对敏感数据进行匿名化。

此配置可以保存在匿名化模板中并持续存在,也可以在 DeidentifyConfig 对象中定义

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_deidentify_content.py[源代码]

DEIDENTIFY_CONFIG = {
    "info_type_transformations": {
        "transformations": [
            {
                "primitive_transformation": {
                    "replace_config": {"new_value": {"string_value": "[deidentified_number]"}}
                }
            }
        ]
    }
}

要对内容项中潜在的敏感信息进行匿名化,可以使用 CloudDLPDeidentifyContentOperator

tests/system/providers/google/cloud/data_loss_prevention/example_dlp_deidentify_content.py[源代码]

deidentify_content = CloudDLPDeidentifyContentOperator(
    project_id=PROJECT_ID,
    item=ITEM,
    deidentify_config=DEIDENTIFY_CONFIG,
    inspect_config=INSPECT_CONFIG,
    task_id="deidentify_content",
)

对内容进行重新识别

要对已匿名化的内容进行重新识别,可以使用 CloudDLPReidentifyContentOperator

涂抹图像

要从内容图像中涂抹潜在的敏感信息,可以使用 CloudDLPRedactImageOperator

参考

有关更多信息,请查看

此条目是否有用?