数据安全中心服务中数据动态脱敏相关示例
本示例展示如何通过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对数据进行动态脱敏:
Copied!
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 {
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<>();
Map<String,Object> map = new HashMap<>();
map.put("name", "Bob");
map.put("address", "chengdu");
listBodyData.add(map);
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 |
文档首次发布 |
版本说明
本示例配套的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 调试该接口
修订记录