华为云用户手册

  • 请求样例 { "mask_strategies": [ { "name": "col1", "algorithm": "PRESXY", "parameters": { "type": "CHAR", "x": 1, "y": 1, "method": "*" } } ], "data": [ { "col1": "test" } ] } 或: { "mask_strategies": [ { "name": "col1", "algorithm": "PRESXY", "parameters": { "type": "RAND", "x": 1, "y": 1, "method": "CHAR" } } ], "data": [ { "col1": "test" } ] }
  • 概述 欢迎使用 数据安全中心 服务(Data Security Center,DSC),数据安全中心服务(Data Security Center,DSC)是新一代的云化数据安全平台,提供数据分级分类、数据安全风险识别、数据水印溯源和数据静态脱敏等基础数据安全能力,通过资产地图整合数据安全生命周期各阶段状态,对外整体呈现云上数据安全态势。 您可以使用本文档提供的API对数据对进行相关操作,如数据库水印、图片水印、数据脱敏等。 在调用数据安全中心API之前,请确保已经充分了解数据安全中心相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务“获取用户Token接口”获取(响应消息头中X-Subject-Token的值) 表3 请求Body参数 参数 是否必选 参数类型 描述 region_id 是 String 项目所在region的id,如:xx-xx-1。 src_file 是 String 待提取文字暗水印的图片地址,当前只支持OBS,格式为 obs://bucket/object ,其中bucket为和当前项目处于同一区域的OBS桶名称,object为对象全路径名。例如:obs://hwbucket/hwinfo/hw.png,其中obs://表示OBS存储,hwbucket为桶名,hwinfo/hw.png为对象全路径名。 mark_len 否 Integer 指定待提取水印的长度,最小0,最大32.。设置后可以提升水印提取性能。
  • 状态码 状态码 编码 状态说明 200 OK 请求成功。 400 Bad Request 请求失败。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 请求认证失败。 表明服务端指出客户端所提供的认证信息不正确或非法。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 父主题: 附录
  • 请求示例 嵌入内容为test12345678test的水印,水印密钥是keyword,字段类型列表中数据的字段名称为item1,该字段为主键。 POST https://{endpoit}/v1/{project_id}/sdg/database/watermark/embed { "watermark_content" : "test12345678test", "watermark_key" : "keyword", "columns" : [ { "name" : "item1", "type" : "INTEGER", "primary_key" : true }, { "name" : "item2", "type" : "INTEGER", "primary_key" : false } ], "data" : [ { "item1" : 0, "item2" : 3 }, { "item1" : 1, "item2" : 4 } ] }
  • 响应示例 状态码: 200 请求成功 { "marked_data" : [ { "item2" : 3, "item1" : "test" }, { "item2" : 5, "item1" : "test" } ] } 状态码: 400 参数错误 { "error_code" : "DSC.00000004", "error_msg" : "Invalid parameter" }
  • 响应示例 状态码: 200 请求成功 { "id" : "xxxxxx", "default_topic_urn" : "xxxxxx", "topic_count" : 1, "topics" : [ { "name" : "xxxxxx", "topic_urn" : "xxxxxx" } ] } 状态码: 400 无效请求 { "error_code" : "dsc.40000011", "error_msg" : "Invalid parameter" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String DSC告警主题ID(非 消息通知 服务主题ID) default_topic_urn String 默认消息通知主题的唯一资源标识符 topic_count Integer 已确认的消息通知主题数量 topics Array of TopicBean objects 已确认的消息通知主题列表 表4 TopicBean 参数 参数类型 描述 name String 消息通知主题名称 topic_urn String 消息通知主题的唯一资源标识符 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 region_id String 当前项目所在region的id,如:xx-xx-1。 watermarked_file String 添加水印后的文档地址,当前只支持OBS对象,格式为 obs://bucket/object ,其中bucket为和当前项目处于同一区域的OBS桶名称,object为对象全路径名。例如:obs://bucket/info/hw.doc,其中obs://表示OBS存储,hwbucket为桶名,hwinfo/hw.doc为对象全路径名。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 请求示例 给obs://bucket/info/wm.doc路径下的WORD文档嵌入blind_watermark的明水印和visible_watermark的暗水印。 POST /v1/{project_id}/doc-address/watermark/embed { "region_id" : "xx-xx-1", "src_file" : "obs://bucket/info/wm.doc", "doc_type" : "WORD", "blind_watermark" : "blind_watermark", "visible_watermark" : "visible_watermark" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务“获取用户Token接口”获取(响应消息头中X-Subject-Token的值) 表3 请求Body参数 参数 是否必选 参数类型 描述 region_id 是 String 项目所在region的id,如:xx-xx-1。 src_file 是 String 待添加水印的文档地址,当前只支持OBS对象,格式为 obs://bucket/object ,其中bucket为和当前项目处于同一区域的OBS桶名称,object为对象全路径名。例如:obs://bucket/info/wm.png,其中obs://表示OBS存储,bucket为桶名,info/wm.png为对象全路径名。 doc_type 是 String 待嵌入水印的文档类型。 枚举值: WORD EXCEL PDF PPT dst_file 否 String 添加水印后的文档存放地址,格式和要求同src_file字段,不设置时,默认取src_file的值,即添加水印后覆盖原文件。 blind_watermark 否 String 暗文字水印内容,与“visible_watermark”字段至少有一个不为空 visible_watermark 否 String 明文字水印内容,与暗水印“blind_watermark”字段至少有一个不为空。 image_mark 否 String 待嵌入的图形明水印文件的地址, 字段格式要求同src_file字段,图形文件的格式必须为“png”或“jpg”,否则返回参数错误;图像文件大小不超过1MB visible_type 否 String 该字段控制明水印嵌入文字还是图片。默认为TEXT类型,需填写visible_watermark字段设置明文字水印; 当该字段为IMAGE时,需填写image_watermark字段设置水印图片地址此时 ,“visible_watermark”,“font_size”,“rotation”和“opacity”字段无效。 枚举值: TEXT IMAGE file_password 否 String 待加水印文件有密码时,读取文件的密码, 最大支持长度256。如果Office文档有读密码或域控的权限密码,请输入读密码,或者有读权限的域控密码。 marked_file_password 否 String 添加水印后给文件设置密码, 最大支持长度256。默认不加文档密码。 readonly_password 否 String 添加水印后给文件设置只读密码, 最大支持长度256。默认不加只读密码。 front 否 Integer 明水印字体大小,取值为[1,100],默认值50 rotation 否 Integer 明水印旋转角度,逆时针方向,取值为[0,90],默认值45。 opacity 否 Float 明水印的透明度,取值[0,1],默认值为0.3;
  • 请求参数 表1 请求参数 参数 是否必选 参数类型 描述 algorithm 是 String 算法类型,SYMBOL parameters 是 parameters Object 脱敏算法参数 表2 parameters 参数 是否必选 参数类型 描述 type 是 String 掩盖字符串的方式,取值为: CHAR:字符掩盖 RAND:随机掩盖 method 是 String 掩盖参数,若type字段为“RAND”时,method取值只能为: CHAR:替换为字母 DIGITAL:替换为数字 BOTH:数字与字母混合替换 direction 是 Int 掩盖的方向 0:特殊字符前掩盖 1:特殊字符后掩盖 symbol 是 String 指定的特殊字符
  • 请求样例 { "mask_strategies": [ { "name": "col1", "algorithm": "SYMBOL", "parameters": { "type": "CHAR", "direction": 1, "symbol": "@", "method": "x" } } ], "data": [ { "col1": "test" } ] } 或: { "mask_strategies": [ { "name": "col1", "algorithm": "SYMBOL", //脱敏算法参数 "parameters": { "type": "RAND", "direction": 0, "symbol": "@", "method": "CHAR" } } ], "data": [ { "col1": "test" } ] }
  • 请求示例 脱敏策略列表中对字段col使用KEYWORD脱敏算法,将指定关键字keyword替换为target。 POST https://{endpoint}/v1/{project_id}/data/mask { "mask_strategies" : { "name" : "col", "algorithm" : "KEYWORD", "parameters" : { "key" : "keyword", "target" : "target" } }, "data" : { "col" : "keyword" } }
  • 请求示例 修改xxxxxxxxxxxxxxxxxxx为通知主题,项目ID为xxxxxxxxxxxxxxxxxxx,告警通知状态为开启。 PUT /v1/{project_id}/sdg/smn/topic { "id" : "xxxxxxxxxxxxxxxxxxx", "project_id" : "xxxxxxxxxxxxxxxxxxx", "status" : 1, "topic_urn" : "xxxxxxxxxxxxxxxxxxx" }
  • 请求样例 { "mask_strategies": [ { "name": "col1", "algorithm": " NUMERIC", "parameters": { "value": 0.05 } } ], "data": [ { "col1": "test" } ] }
  • 请求示例 提取数据水印,水印密钥是key,字段类型列表中数据的字段名称为col,该字段为非主键。 POST https://{endpoint}/v1/{project_id}/sdg/database/watermark/extract { "watermark_key" : "key", "columns" : { "name" : "col", "type" : "INTEGER", "primary_key" : false }, "data" : { "col" : 0.1 } }
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用其进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 下面以华为云上的ROMA Connect举例说明。 登录访问ROMA Connect的管理控制台,例如https://console.huaweicloud.com/iam/?region=cn-north-4&locale=zh-cn#/iam/agencies。 选择左侧菜单里的“委托”。 单击界面右上角的“创建委托”。 填写委托相关信息。然后单击下一步。 委托名称请根据需要自行填写。委托类型请选“普通”,委托的账号就是运营管理员在运营管理台配置的“平台租户名”。持续时间根据需要选择。 委托的账号必须是主账号,不能是子账号。 资产发布者和资产订阅者创建ROMA Connect授权委托时,使用的委托账号必须与运营管理员配置的平台租户是同一个ROMA Connect上的同一个用户,运营管理员配置的平台租户会在资产发布者进行来源授权的界面上进行提示,请看"委托账号"对应的值。 资产发布者和资产订阅者创建ROMA Connect授权委托时指定的区域必须与运营管理员配置的区域是同一个区域,如果创建委托不清楚具体区域,请在“授权”里选择“所有资源(包括未来在所有区域下创建的项目)”。 选择作用范围和拥有的权限。 作用范围请根据实际需要填写,权限请选择“ROMA FullAccess”。
  • 获取ROMA Connect的授权地址和业务地址 ROMA Connect侧,授权地址也称租户面IAM 域名 ,业务地址也称ROMA外部API网关域名。相关的地址请联系ROMA Connect侧的技术工程师获取。 两个地址的获取方式示例如下,此处仅是参考,请联系ROMA Connect侧的技术工程师以实际环境获取为准。 租户面IAM域名:需要先知道绑定的账号所对应的Region,查看IAM页面的终端节点表,Region所对应的终端节点就是租户面IAM域名。 ROMA外部API网关域名:需要先知道绑定的账号所对应的Region,查看API页面的终端节点表,Region所对应的终端节点就是ROMA外部API网关域名。
  • 获取ROMA Connect委托授权 下面以华为云上的ROMA Connect举例说明。具体的项目请以实际环境为准进行获取。 登录访问ROMA Connect的管理控制台,例如https://console.huaweicloud.com/iam/?region=cn-north-4&locale=zh-cn#/iam/agencies。 单击界面右上角的“创建委托”。 填写委托相关信息。 委托名称请根据需要自行填写。委托类型请选“普通”,委托账号必须是与运营管理员在运营管理台配置的“平台租户名”一致。持续时间根据需要选择。 委托的账号必须是主账号,不能是子账号。
  • 前提条件 提前创建好管理员,要实现资产共享,非共享中心的ROMA Exchange运营管理台,需要两类管理员: 租户管理员A:部署作为非共享中心的ROMA Exchange的AstroZero用户。 直接从共享中心的租户管理员A获取连接共享中心的用户B对应的客户ID和客户密钥。 如果是与共享中心共用的ROMA Exchange,则租户管理员直接用共享中心连接配置(作为共享中心的ROMA Exchange配置)里的租户管理员A,即都用一个租户管理员。连接共享中心用的用户B从共享中心连接配置(作为共享中心的ROMA Exchange配置)里获取。
  • 注册用户时,提示“超出业务阈值限制” ROMA Exchange上的用户总数受AstroZero规格里显示的用户数限制,用户的说明请参见AstroZero配套文档的用户与权限的基本概念里的相关说明。 用户总数包括部署ROMA Exchange的租户、该租户下创建的用户以及自行在ROMA Exchange资产中心前台上注册的用户、通过第三方接入ROMA Exchange的用户。 当用户注册时,提示如下图,请运营管理员参考AstroZero的扩容实例的相关内容进行扩容。 父主题: 附录
  • min函数 用于查询x中最小值。 查询x中最小的值。 语法:min(x) 查询x中最小的n个值,结果返回为数组。 语法: min(x, n) 表24 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意数据 是 n 返回最小值的个数 正整数 否 返回值类型:与参数值的数据类型一致。 示例1:查询x中的最小值 表25 查询分析结果 类型 场景 查询语句 SELECT min(x) 返回结果 10.0 示例2:查询x中的最小的2个值 表26 查询分析结果 类型 场景 查询语句 SELECT min(x, 2) 返回结果 [10.0, 10.0]
  • max函数 用于查询x中最大的值。 查询x中最大的值。 语法:max(x) 查询x中最大的n个值,结果返回为数组。 语法: max(x, n) 表21 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意数据 是 n 返回最大值的个数 正整数 否 返回值类型:与参数值的数据类型一致。 示例1:查询x中的最大值 表22 查询分析结果 类型 场景 查询语句 SELECT max(x) 返回结果 99.0 示例2:查询x中的最大的2个值 表23 查询分析结果 类型 场景 查询语句 SELECT max(x, 2) 返回结果 [99.0, 99.0]
  • min_by函数 查询y为最小值时对应的x值,或查询最小的n个y值对应的x值。 查询y为最小值时对应的x值。 语法:max_by(x, y) 查询最小的n个y值对应的x值。 语法:max_by(x, y, n) 表16 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意数据类型 是 y 原始字段。 任意数据类型 是 n 大于0的整数。 int 否 返回值类型:与参数值的数据类型一致 示例1:统计请求时长最小时对应的请求方法。 表17 查询分析结果 类型 场景 查询语句 SELECT min_by(request_method, request_time) 返回结果 POST 示例2:统计请求时长最小的3个请求对应的请求方法。 表18 查询分析结果 类型 场景 查询语句 SELECT min_by(request_method, request_time, 3) 返回结果 ["POST","POST","POST"]
  • count函数 用于计数。 统计所有的日志条数。 语法:COUNT(*) 统计所有的日志条数。等同于count(*)。 语法:COUNT(1) 统计x中值不为NULL的日志条数。 语法:COUNT(x) 表19 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意 是 返回值类型:int 示例:select COUNT(*) 表20 查询分析结果 类型 场景 查询语句 COUNT(*) 返回结果 1
  • approx_percentile函数 用于对x进行正序排列,返回处于percentage位置的数值。 对于x进行正序排列,返回处于percentage位置的x,返回结果为double类型。 语法:approx_percentile(x, percentage) 对x进行正序排列,返回处于percentage01、percentage02位置的x,返回结果为array(double,double)类型。 语法:approx_percentile(x, array[percentage01, percentage02)] 对x和权重的乘积进行正序排列,返回大约处于percentage位置的x,返回结果为double类型。 语法:approx_percentile(x, weight, percentage) 对x和权重的乘积进行正序排列,返回处于percentage01、percentage02位置的x,返回结果为array(double,double)类型。 语法:approx_percentile(x, weight, array[percentage01, percentage02...]) 对x和权重的乘积进行正序排列,返回大约处于percentage位置的x,返回结果为double类型。支持设置返回结果的准确度。 语法:approx_percentile(x, weight, percentage, accuracy) 表5 参数说明 参数名称 描述 类型 是否必选 x 原始字段 double 是 percentage 百分比值,取值范围为[0,1]。 double 是 weight 权重,大于1的整数。 设置权重后,系统根据x与权重的乘积进行排序。 int 否 accuracy 准确度,取值范围为(0,1)。 double 否 返回值类型:double类型或array(double,...,double)类型 示例1:对request_time列进行排序后,返回大约处于50%位置的request_time字段的值。 表6 查询分析结果 类型 场景 查询语句 SELECT approx_percentile(request_time, 0.5) 返回结果 45.0 示例2:对request_time列进行排序后,返回处于10%、20%及70%位置的request_time字段的值。 表7 查询分析结果 类型 场景 查询语句 SELECT approx_percentile(request_time,array[0.1,0.2,0.7]) 返回结果 [17.0, 24.0, 59.0] 示例3:根据request_time与权重的乘积对request_time列进行排序后,返回大约处于50%位置的request_time字段的值, 权重值为60。 表8 查询分析结果 类型 场景 查询语句 SELECT approx_percentile(request_time, 60, 0.5) 返回结果 45.0 示例4:根据request_time与权重的乘积对request_time列进行排序后,返回大约处于80%和90%位置的request_time字段的值,权重值为60。 表9 查询分析结果 类型 场景 查询语句 SELECT approx_percentile(request_time, 60, array[0.8, 0.9]) 返回结果 [66.0,73.0] 示例5:根据request_time与权重的乘积对request_time列进行排序后,返回大约处于50%位置的request_time字段的值,权重值为60,准确度为0.2。 表10 查询分析结果 类型 场景 查询语句 SELECT approx_percentile(request_time, 60, 0.5, 0.2) 返回结果 45.0
  • max_by函数 查询y为最大值时对应的x值,或查询最大的n个y值对应的x值。 查询y为最大值时对应的x值。 语法:max_by(x, y) 查询最大的n个y值对应的x值。 语法:max_by(x, y, n) 表13 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意数据类型 是 y 原始字段。 任意数据类型 是 n 大于0的整数。 int 否 返回值类型:与参数值的数据类型一致。 示例1:统计请求时长最大时对应的请求方法。 表14 查询分析结果 类型 场景 查询语句 SELECT max_by(request_method, request_time) 返回结果 GET 示例2:统计请求时长最大的3个请求对应的请求方法。 表15 查询分析结果 类型 场景 查询语句 SELECT max_by(request_method, request_time, 3) 返回结果 ["GET","GET","GET"]
  • approx_distinct函数 用于估算x中不重复值的个数。 估算x中不重复值的个数,默认存在2.3%的标准误差 语法:approx_distinct(x) 估算x中不重复值的个数,支持自定义标准误差 语法:approx_distinct(x, e) 表2 参数说明 参数名称 描述 类型 是否必选 x 原始字段 任意 是 e 自定义标准误差 double类型,取值为[0.0115, 0.26] 否 返回值类型:bigint类型 示例1:使用approx_distinct函数估算不重复的clientIp字段值,标准误差为2.3%。 表3 查询分析结果 类型 场景 查询语句 SELECT approx_distinct(clientIp) 返回结果 1 示例2:使用approx_distinct函数估算不重复的clientIp字段值, 自定义标准误差为10%。 表4 查询分析结果 类型 场景 查询语句 SELECT approx_distinct(clientIp, 0.1) 返回结果 1
共100000条