云服务器内容精选

  • 应用示例 连接数据库。 具体步骤参见使用命令行工具连接 GaussDB (DWS)集群。 创建表student,有id、name和score三个字段。使用哈希函数加密保存name,使用对称密码算法保存score。 1 2 3 4 5 CREATE TABLE student (id int, name text, score text, subject text); INSERT INTO student VALUES (1, gs_hash('alice', 'sha256'), gs_encrypt('95', '12345', 'aes128', 'cbc', 'sha256'),gs_encrypt_aes128('math', '1234')); INSERT INTO student VALUES (2, gs_hash('bob', 'sha256'), gs_encrypt('92', '12345', 'aes128', 'cbc', 'sha256'),gs_encrypt_aes128('english', '1234')); INSERT INTO student VALUES (3, gs_hash('peter', 'sha256'), gs_encrypt('98', '12345', 'aes128', 'cbc', 'sha256'),gs_encrypt_aes128('science', '1234')); 不使用密钥查询表student,通过查询结果可知:没有密钥的用户即使拥有了SELECT权限也无法看到name和score这两列加密数据。 1 2 3 4 5 6 7 8 9 10 11 12 SELECT * FROM student; id | name | score | subject ----+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+----------- ----------------------------------------------------------------------------------- 1 | 2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db186d6e90 | AAAAAAAAAABAuUC3VQ+MvPCDAaTUySl1e2gGLr4/ATdCUjTEvova3cb/Ba3ZKqIn1yNVGEFBvJnTq/3sLF4//Gm8qG7AyfNbbqdW3aYErLVpbE/QWFX9Ig== | aFEWQR2gkj iu6sfsAad+dHzfFDHePZ6xd44zyekh+qVFlh9FODZ0DoaFAJXctwUsiqaiitTxW8c CS EaNjS/E7Ke1ruY= 2 | 81b637d8fcd2c6da6359e6963113a1170de795e4b725b84d1e0b4cfd9ec58ce9 | AAAAAAAAAABAuUC3VQ+MvPCDAaTUySl1taXxAoDqE793hgyCJvC0ESdAX5Mtgdq2LXI1f5ZxraQ73WIJVtIBX8oe3gTDxoXGlHbHht4kzM4U8dOwr5rjgg== | aFEWQR2gkj iu6sfsAad+dM8tPTDo/Pds6ZmqdmjGiKxf39+Wzx5NoQ6c8FrzihnRzgc0fycWSu5YGWNOKYWhRsE84Ac= 3 | 026ad9b14a7453b7488daa0c6acbc258b1506f52c441c7c465474c1a564394ff | AAAAAAAAAACnyusORPeApqMUgh56ucQu3uso/Llw5MbPFMkOXuspEzhhnc9vErwOFe6cuGtx8muEyHCX7V5yXs+8FxhNh3n5L3419LDWJJLY2O4merHpSg== | zomphRfHV4 H32hTtgkio1PyrobVO8N+hN7kAKwtygKP2E7Aaf1vsjmtLHcL88jyeJNe1lxe0fAvodzPJAxAuV3UJN4M= (3 rows) 使用密钥查询表student,通过查询结果可知:拥有密钥的用户通过使用gs_encrypt对应的解密函数gs_decrypt解密后,可以查看加密数据。 1 2 3 4 5 6 7 SELECT id, gs_decrypt(score, '12345', 'aes128', 'cbc', 'sha256'),gs_decrypt_aes128(subject, '1234') FROM student; id | gs_decrypt | gs_decrypt_aes128 ----+------------+------------------- 1 | 95 | math 2 | 92 | english 3 | 98 | science (3 rows)
  • 技术背景 哈希函数 哈希函数又称为摘要算法,对于数据data,Hash函数会生成固定长度的数据,即Hash(data)=result。这个过程是不可逆的,即Hash函数不存在反函数,无法由result得到data。在不应保存明文场景(比如口令password属于敏感信息),系统管理员用户也不应该知道用户的明文口令,就应该使用哈希算法存储口令的单向哈希值。 实际使用中会加入盐值和迭代次数,避免相同口令生成相同的哈希值,以防止彩虹表攻击。 对称密码算法 对称密码算法使用相同的密钥来加密和解密数据。对称密码算法分为分组密码算法和流密码算法。 分组密码算法将明文分成固定长度的分组,用密钥对每个分组加密。由于分组长度固定,当明文长度不是分组长度的整数倍时,会对明文做填充处理。由于填充的存在,分组密码算法得到的密文长度会大于明文长度。 流加密算法是指加密和解密双方使用相同伪随机加密数据流作为密钥,明文数据依次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。流密码算法不需要填充,得到的密文长度等于明文长度。 图1 对称密码算法
  • 技术实现 GaussDB(DWS)主要提供了哈希函数和对称密码算法来实现对数据列的加解密。哈希函数支持sha256,sha384,sha512和国密sm3。对称密码算法支持aes128,aes192,aes256和国密sm4。 哈希函数 md5(string) 将string使用MD5加密,并以16进制数作为返回值。MD5的安全性较低,不建议使用。 gs_hash(hashstr, hashmethod) 以hashmethod算法对hashstr字符串进行信息摘要,返回信息摘要字符串。支持的hashmethod:sha256,sha384,sha512,sm3。 对称密码算法 gs_encrypt(encryptstr, keystr, cryptotype, cryptomode, hashmethod) 采用cryptotype和cryptomode组成的加密算法以及hashmethod指定的HMAC算法,以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。 gs_decrypt(decryptstr, keystr, cryptotype, cryptomode, hashmethod) 采用cryptotype和cryptomode组成的加密算法以及hashmethod指定的HMAC算法,以keystr为密钥对decryptstr字符串进行解密,返回解密后的字符串。解密使用的keystr必须保证与加密时使用的keystr一致才能正常解密。 gs_encrypt_aes128(encryptstr, keystr) 以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。keystr的长度范围为1~16字节。 gs_decrypt_aes128(decryptstr, keystr) 以keystr为密钥对decryptstr字符串进行解密,返回解密后的字符串。解密使用的keystr必须保证与加密时使用的keystr一致才能正常解密。keystr不得为空。 有关函数的更多内容,请参见使用函数加解密。
  • 数据合规处理说明 UGO在完成其功能的过程中需要接触您的数据,包括数据库连接相关信息和源数据库结构信息,具体包括: 数据库连接相关信息:数据库IP、端口、数据库用户名、密码、SSL认证证书及证书密码等。 源数据库结构信息:UGO仅会访问和获取您的源库结构信息,不会获取源库表数据,这些结构信息会如实地反映到操作界面中。 这些信息是完成业务功能所必须的信息,UGO会对上述信息采取认证鉴权、加密存储、内部数据隔离等安全措施,保障数据安全。另外,请依据您所在组织的数据安全策略,完成迁移后及时删除相关项目,UGO会在您触发项目删除后删除和该项目相关的数据。
  • 响应参数 表2 响应参数 参数名称 类型 说明 security_group_rules Array of Security Group Rule objects security group rule对象列表。请参见表3。 security_group_rules_links Array of SecurityGroupRulesLink objects 分页信息。 只有在使用limit过滤,并且资源个数超过limit或者资源个数超过2000时(limit默认值),该参数的rel和href取值才会显示为next和其对应的link。 表3 Security Group Rule对象 属性 类型 说明 id String 安全组规则id 使用说明:查询安全组规则非必选 description String 安全组规则描述 security_group_id String 所属安全组id remote_group_id String 所属安全组的对端id direction String 规则方向 remote_ip_prefix String 对端ip网段 protocol String 协议类型或直接指定IP协议号 port_range_max Integer 最大端口,当协议类型为ICMP时,该值表示ICMP的code port_range_min Integer 最小端口,当协议类型为ICMP时,该值表示ICMP的type。 protocol为tcp和udp时,port_range_max和port_range_min必须同时输入,且port_range_max应大于等于port_range_min。 protocol为icmp时,指定ICMP code(port_range_max)时,必须同时指定ICMP type(port_range_min)。 ethertype String 网络类型 支持IPv4,IPv6 tenant_id String 项目ID remote_address_group_id String 功能说明:远端IP地址组ID。 约束:和remote_ip_prefix,remote_group_id互斥。 project_id String 项目ID,请参见获取项目ID。 created_at String 资源创建时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss updated_at String 资源更新时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss 表4 SecurityGroupRulesLink对象 参数名称 类型 说明 href String API链接 rel String API链接与该API版本的关系
  • 响应示例 { "security_group_rules": [ { "remote_group_id": "1d8b19c7-7c56-48f7-a99b-4b40eb390967", "direction": "ingress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "1d8b19c7-7c56-48f7-a99b-4b40eb390967", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "07adc044-3f21-4eeb-bd57-5e5eb6024b7f", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null }, { "remote_group_id": null, "direction": "egress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "328fb454-a2ee-4a11-bdb1-ee19bbdfde43", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "09358f83-f4a5-4386-9563-a1e3c373d655", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null }, { "remote_group_id": "4c763030-366e-428c-be2b-d48f6baf5297", "direction": "ingress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "4c763030-366e-428c-be2b-d48f6baf5297", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "219a6f56-1069-458b-bec0-df9270e7a074", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null } ], "security_group_rules_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ security-group-rules?marker=07adc044-3f21-4eeb-bd57-5e5eb6024b7f&page_reverse=True" } ] }
  • URI GET /v2.0/security-group-rules 样例: GET https://{Endpoint}/v2.0/security-group-rules?security_group_id={security_group_id}&remote_group_id={remote_group_id}&direction={direction}&remote_ip_prefix={remote_ip_prefix}&protocol={protocol}&port_range_max={port_range_max}&port_range_min={port_range_min}ðertype={ethertype}&tenant_id ={tenant_id} 分页查询样例: GET https://{Endpoint}/v2.0/networks?limit=2&marker=07adc044-3f21-4eeb-bd57-5e5eb6024b7f&page_reverse=False 参数说明请参见表1 表1 参数说明 名称 是否必选 参数类型 说明 id 否 String 按照安全组规则对应的id过滤查询结果 description 否 String 按照description过滤查询结果 remote_group_id 否 String 按照与此安全组规则关联的远端安全组ID过滤查询结果 security_group_id 否 String 按照与此安全组规则所属的安全组ID过滤查询结果 direction 否 String 按照安全组规则的方向过滤查询结果,支持ingress和egress进行过滤 protocol 否 String 按照安全组规则的IP协议过滤查询结果 remote_ip_prefix 否 String 按照与此安全组规则匹配的远端IP网段过滤查询结果 ethertype 否 String 按照网络类型过滤查询结果 port_range_max 否 Integer 按照最大端口过滤查询结果 port_range_min 否 Integer 按照最小端口过滤查询结果 tenant_id 否 String 按照项目ID过滤查询结果 marker 否 String 分页查询的起始资源ID,表示从指定资源的下一条记录开始查询。 marker需要和limit配合使用: 若不传入marker和limit参数,查询结果返回第一页全部资源记录。 若不传入marker参数,limit为10,查询结果返回第1~10条资源记录。 若marker为第10条记录的资源ID,limit为10,查询结果返回第11~20条资源记录。 若marker为第10条记录的资源ID,不传入limit参数,查询结果返回第11条及之后的所有资源记录。 limit 否 Integer 分页查询每页返回的记录个数,取值范围为0~intmax(2^31-1),默认值2000。 limit需要和marker配合使用,详细规则请见marker的参数说明。
  • 响应示例 状态码: 201 POST操作正常返回,更多状态码请参见状态码。 { "security_group_rules" : [ { "id" : "abef369b-d646-4b8a-9f44-fcd248a6c421", "project_id" : "5f6387106c2048b589b369d96c2f23a2", "security_group_id" : "15457509-18f9-4387-bae6-d4ed1898b301", "direction" : "ingress", "protocol" : "tcp", "description" : "", "created_at" : "2023-04-28T04:08:52.000+00:00", "updated_at" : "2023-04-28T04:08:52.000+00:00", "ethertype" : "IPv4", "remote_ip_prefix" : "117.78.12.122/32", "multiport" : 22, "action" : "allow", "priority" : 1, "remote_group_id" : null, "remote_address_group_id" : null } ], "request_id" : "f1ae2c6f9e94babf077cd3b3e1570c81" }
  • 请求示例 在安全组15457509-18f9-4387-bae6-d4ed1898b301中创建入方向规则,忽略重复规则,两条规则相同。 POST https://{Endpoint}/v3/{project_id}/vpc/security-groups/15457509-18f9-4387-bae6-d4ed1898b301/security-group-rules/batch-create { "ignore_duplicate" : true, "security_group_rules" : [ { "direction" : "ingress", "description" : "", "protocol" : "tcp", "action" : "allow", "priority" : 1, "ethertype" : "IPv4", "multiport" : "22", "remote_ip_prefix" : "117.78.12.122/32" }, { "direction" : "ingress", "description" : "", "protocol" : "tcp", "action" : "allow", "priority" : 1, "ethertype" : "IPv4", "multiport" : "22", "remote_ip_prefix" : "117.78.12.122/32" } ] }
  • URI GET /v3/{project_id}/vpc/security-groups 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方式请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 功能说明:每页返回的个数。 取值范围:0-2000。 marker 否 String 分页查询起始的资源ID,为空时查询第一页。 id 否 Array of strings 功能说明:安全组资源ID。可以使用该字段精确过滤安全组,支持多个ID。 name 否 Array of strings 功能说明:安全组名称。可以使用该字段精确过滤满足条件的安全组,支持传入多个name过滤。 description 否 Array of strings 功能说明:安全组描述新增。可以使用该字段精确过滤安全组,支持传入多个描述进行过滤。 enterprise_project_id 否 String 功能说明:企业项目ID。可以使用该字段过滤某个企业项目下的安全组。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 约束:若需要查询当前用户所有有权限查看企业项目绑定的安全组,请传参all_granted_eps。
  • 响应示例 状态码: 200 GET操作正常返回,更多状态码请参见状态码。 { "request_id" : "d31cb32ca06f3c1a294fa24e6cbc5a56", "security_groups" : [ { "id" : "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "name" : "sg-test", "project_id" : "060576782980d5762f9ec014dd2f1148", "description" : "test", "enterprise_project_id" : 0, "created_at" : "2019-10-16T11:11:14.000+00:00", "updated_at" : "2020-03-25T10:53:46.000+00:00", "tags" : [ ] }, { "id" : "0b8cb773-197c-4c91-94f1-e051f0563e5a", "name" : "test-sg", "project_id" : "060576782980d5762f9ec014dd2f1148", "description" : "通用Web服务器,默认放通22、3389、80、443端口和ICMP协议。适用于需要远程登录、公网ping及用于网站服务的云服务器场景。", "enterprise_project_id" : 0, "created_at" : "2019-12-03T09:02:11.000+00:00", "updated_at" : "2019-12-03T09:02:11.000+00:00", "tags" : [ ] } ], "page_info" : { "previous_marker" : "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "current_count" : 2 } }
  • 关于通用漏洞披露(CVE) CVE(Common Vulnerabilities and Exposures)是已公开披露的各种计算机安全漏洞,所发现的每个漏洞都有一个专属的CVE编号。Huawei Cloud EulerOS为保障系统安全性,紧密关注业界发布的CVE信息,并会及时修复系统内各类软件漏洞,增强系统的安全性。您可在Huawei Cloud EulerOS的安全公告中查看安全更新记录。 Huawei Cloud EulerOS 1.1安全公告 Huawei Cloud EulerOS 2.0安全公告 根据CVSS(Common Vulnerability Scoring System)评分,Huawei Cloud EulerOS将安全更新分为四个等级: Critical(高风险,必须安装) Important(较高风险,强烈建议安装) Moderate(中等风险,推荐安装) Low(低风险,可选安装) 若您目前已安装Huawei Cloud EulerOS 1.1及以上版本,您可以根据以下操作查询并安装安全更新,修复系统漏洞。本章节以Huawei Cloud EulerOS 2.0为例举例说明。 Huawei Cloud EulerOS系统版本不同,部分显示可能与本文档存在差异,以实际显示为准。 父主题: 对HCE进行安全更新
  • 更多操作 隔离域规划创建后,您还可以对隔离域规划进行以下操作。 表2 相关操作 操作名称 操作步骤 导出全量隔离域规划信息 在隔离域规划列表,单击“导出”,导出隔离域规划信息。 导出指定隔离域规划信息 在“隔离域规划”页签,输入筛选条件,并单击“查询”。 单击“导出”,导出隔离域规划信息。 删除隔离域规划 在隔离域规划列表,单击待删除隔离域规划所在行“操作”列的“删除”。 批量删除隔离域规划 在隔离域规划列表,勾选待删除隔离域规划,然后单击列表左上方的“删除”。
  • 约束与限制 对于DWS数据源,数据访问审计需要手动开启DWS集群的审计功能开关和审计项。另外当未开启三权分立时,默认拥有SYSADMIN属性的用户可以查看审计记录;如果开启了三权分立,则只有拥有AUDITADMIN属性的用户才可以查看审计记录,因此需要保证数据连接中的账号或当前用户账号拥有上述权限(未开启细粒度认证前,使用数据连接上的账号查看审计记录;如果开启了细粒度认证,则使用当前 IAM 用户身份查看审计记录)。 对于 MRS 数据源,查看审计数据依赖于数据连接中Agent的版本,请确保 CDM 集群为2.10.0.300及以上版本。且MRS Hive数据连接中的用户账号需要同时满足如下条件: 需要配置至少具备Cluster资源管理权限的角色(可直接配置为默认的Manager_operator角色)。 需要配置hive用户组。
  • 查看数据访问日志 在 DataArts Studio 控制台首页,选择对应工作空间的“数据安全”模块,进入数据安全页面。 单击左侧导航树中的“数据访问审计”,进入审计日志页面。 图1 数据访问审计 您可以通过切换页签,查看不同数据源的审计日志。日志范围默认1小时,支持自定义时段查询,自定义时段时的最大查询时间间隔为一个月。 DWS审计日志:日志列表默认使用最新DWS数据连接。单击查看日志详情,可查看当前日志的全量信息。 DWS审计日志支持导出,单击“导出”后,会下载当前页的json数据。 图2 DWS审计日志列表 MRS Hive审计日志:MRS Hive日志列表默认不展示日志内容,而是支持根据配置条件进行检索,检索结果按照页签呈现,支持展示最多5个检索结果页签。 图3 MRS Hive审计日志列表 DLI 审计日志:DLI日志列表默认展示日志信息。点击日志名查看日志详情,可查看当前日志的全量信息。 图4 DLI审计日志列表