数据动态脱敏
引导式阅读
Java
数据动态脱敏
作者
C***
上架时间
2024-01-26 11:24:02

版本说明

本示例配套的SDK版本为:3.0.60

数据安全中心服务中数据动态脱敏相关示例

本示例展示如何通过java版本的DSC SDK方式进行数据动态脱敏。

功能介绍

数据安全中心服务 是新一代的云原生数据安全平台,提供数据分级分类,数据安全风险识别,数据水印溯源,数据脱敏等基础数据安全能力,通过数据安全总览整合数据安全生命周期各阶段状态,对外整体呈现云上数据安全态势。

前置条件

1.已 注册 华为云,并完成 实名认证

2.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。

3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥

4.已具备开发环境 ,支持Java JDK 1.8及其以上版本。

5.已购买DSC服务专业版,购买链接数据安全中心

代码示例

以下代码展示如何使用DSC SDK对数据进行动态脱敏:

package com.huawei.dsc.demo; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.core.region.Region; import com.huaweicloud.sdk.dsc.v1.DscClient; import com.huaweicloud.sdk.dsc.v1.model.BatchAddDataMaskRequest; import com.huaweicloud.sdk.dsc.v1.model.BatchAddDataMaskResponse; import com.huaweicloud.sdk.dsc.v1.model.DynamicDataMask; import com.huaweicloud.sdk.dsc.v1.model.MaskStrategies; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 对数据进行动态脱敏 */ public class BatchAddDataMaskTest { /** * 基础认证信息: * 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; * 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 * - IAM_ENDPOINT: 华为云IAM服务访问终端地址 详情见https://support.huaweicloud.com/api-iam/iam_01_0004.html, * eg: https://iam.myhuaweicloud.com * - DSC_ENDPOINT: 华为云DSC服务访问终端地址 详情见https://support.huaweicloud.com/api-dsc/dsc_02_0004.html, * eg: https://sdg.cn-south-1.myhuaweicloud.com * - REGION_ID: 华为云DSC服务访问RegionID, 详情见https://support.huaweicloud.com/api-dsc/dsc_02_0004.html, * eg: cn-south-1 */ private static final String AK = System.getenv("HUAWEICLOUD_SDK_AK"); private static final String SK = System.getenv("HUAWEICLOUD_SDK_SK"); private static final String IAM_ENDPOINT = "<IamEndpoint>"; private static final String DSC_ENDPOINT = "<DscEndpoint>"; private static final String REGION_ID = "<RegionId>"; private static final ICredential AUTH = new BasicCredentials() .withIamEndpoint(IAM_ENDPOINT) .withAk(AK) .withSk(SK); private static final DscClient CLIENT = DscClient.newBuilder() .withCredential(AUTH) .withRegion(new Region(REGION_ID, DSC_ENDPOINT)) .build(); private static final Logger LOGGER = LoggerFactory.getLogger(BatchAddDataMaskTest.class.getName()); public static void main(String[] args) { List<Map<String,Object>> listBodyData = new ArrayList<>(); // 1.设置需要脱敏的数据 Map<String,Object> map = new HashMap<>(); map.put("name", "Bob"); map.put("address", "chengdu"); listBodyData.add(map); // 2.设置脱敏策略 List<MaskStrategies> listBodyMaskStrategies = new ArrayList<>(); listBodyMaskStrategies.add( new MaskStrategies() .withName("name") .withAlgorithm(MaskStrategies.AlgorithmEnum.fromValue("SHA256")) ); listBodyMaskStrategies.add( new MaskStrategies() .withName("address") .withAlgorithm(MaskStrategies.AlgorithmEnum.fromValue("SHA256")) ); BatchAddDataMaskRequest request = new BatchAddDataMaskRequest(); DynamicDataMask body = new DynamicDataMask(); body.withData(listBodyData); body.withMaskStrategies(listBodyMaskStrategies); request.withBody(body); try { BatchAddDataMaskResponse response = CLIENT.batchAddDataMask(request); System.out.println(response.toString()); } catch (ConnectionException | RequestTimeoutException e) { LOGGER.error(e.toString()); } catch (ServiceResponseException e) { LOGGER.error(String.valueOf(e.getHttpStatusCode())); LOGGER.error(e.getErrorCode()); LOGGER.error(e.getErrorMsg()); } } }

您可以在 API Explorer 调试该接口

修订记录

发布日期 文档版本 修订说明
2021-09-22 1.0 文档首次发布