华为云用户手册

  • 启动配置示例 以下是一个可运行的启动配置示例。 { "request": "launch", "console": "integratedTerminal", "jinja": true, "python": "${command:python.interpreterPath}", "stopOnEntry": false, "redirectOutput": true, "program": "${workspaceFolder}\\manage.py", "env": {}, "type": "python", "logToFile": false, "args": [ "runserver" ], "cwd": "${workspaceFolder}", "subProcess": false, "justMyCode": true, "django": true, "pythonArgs": [], "name": "Python: Django", "showReturnValue": true } 父主题: Django应用
  • 代码片段 代码片段是模板,可以简化如循环或条件语句等重复代码模式的输入。CodeArts IDE为Python语言提供了多个内置的代码片段,这些片段和其他建议一起出现在代码补全(“Ctrl+I” / “Ctrl+Space”/“Ctrl+Shift+Space”)中。 代码片段通常放置在代码补全建议列表底部。要快速访问它们,请触发代码补全(“Ctrl+I”/“Ctrl+Space” /“Ctrl+Shift+Space”),然后按“Ctrl+Up”/“Up”。 常规片段 后缀片段 父主题: 编辑代码
  • 折叠区域 折叠区域允许您折叠或展开代码片段,以便更好地查看源代码。在Python上下文中,使用以下字符来标记折叠区域: 开始区域:“#region” 或 “# region” 结束区域:“#endregion” 或 # endregion 然后就可以使用 “Ctrl+Shift+[” / “Ctrl+-”(IDEA快捷键)/ “Ctrl+Numpad-”(IDEA快捷键)来折叠光标处最内部的未折叠区域,以及 “Ctrl+Shift+]” / “Ctrl+=”(IDEA快捷键)/“Ctrl+Numpad+”(IDEA快捷键)来展开光标处的折叠区域。 有关代码折叠的更多详细信息,请参阅代码折叠。 父主题: 简介
  • 启动配置示例 以下是一个可运行的启动配置示例。 { "request": "launch", "console": "integratedTerminal", "jinja": true, "python": "${command:python.interpreterPath}", "stopOnEntry": false, "redirectOutput": true, "program": "example.py", "env": {}, "type": "python", "logToFile": false, "args": [], "cwd": "${workspaceFolder}", "subProcess": false, "justMyCode": true, "pythonArgs": [], "name": "Python: File", "showReturnValue": true } 父主题: 当前Python文件
  • 监视 “监视”部分允许您在程序运行时跟踪变量或任意表达式的求值结果。 要添加一个表达式,您可以执行以下操作之一: 在“监视”部分的任意位置双击,或者单击“添加表达式”按钮(),并在出现的输入框中输入您想要监视的表达式。 如要快速为某变量添加监视,请在“变量”部分中右键单击变量名,并在上下文菜单中选择“添加到监视”。 要删除一个表达式,只需选择它并按 “Delete” 键。若要一次性删除所有表达式,请单击“删除所有表达式”按钮()。 父主题: 检查暂停的程序
  • 条件断点 CodeArts IDE调试器允许您根据任意表达式或命中计数设置条件断点。 在代码编辑器中,右键单击所需行边缘,从上下文菜单里选择”添加条件断点”。 在打开的行内编辑器中,在列表里选择条件类型。 表达式:每次当表达式计算结果为“true”时命中断点。 命中次数:断点需要命中指定的次数才能暂停程序执行。 输入条件并按下Enter键。 您也可以向常规行断点添加条件或命中计数。右键单击编辑器边缘中的断点,然后从上下文菜单中选择所需的操作。 父主题: 设置断点
  • 启动配置示例 以下是一个可运行的启动配置示例。 { "request": "attach", "jinja": true, "justMyCode": true, "processId": "${command:pickProcess}", "redirectOutput": true, "name": "Python: Attach using Process Id", "type": "python", "logToFile": false, "showReturnValue": true } 父主题: 附加到进程
  • 启动配置示例 以下是一个可运行的启动配置示例。 { "request": "launch", "console": "integratedTerminal", "jinja": true, "python": "${command:python.interpreterPath}", "stopOnEntry": false, "redirectOutput": true, "module": "flask", "env": { "FLASK_APP": "app.py", "FLASK_ENV": "development" }, "type": "python", "logToFile": false, "args": [ "run", "--no-debugger" ], "cwd": "${workspaceFolder}", "subProcess": false, "justMyCode": true, "pythonArgs": [], "name": "Python: Flask", "showReturnValue": true } 父主题: Flask应用
  • 积分管理体系 为与广大商家共同提升用户体验,更好地服务华为云用户,云商店会通过“商家积分管理体系”对违规或服务不达标的商家进行相应的警告或处罚。 根据《华为云云商店服务商合作协议》成功入驻华为云云商店的商家,初始积分默认为100分,商家一次性扣分40分(含40分)以上,处罚立即执行;且在一个年度内违纪扣分累计达50分,云商店有权利与其终止合作。 具体违规情形处理如下: 违规类型 违规内容 扣分 处理措施 保证金扣除 商品违规 在商品详情页面中,所填写的客服电话错误,或拨打不接听、不处理,以及填写的客服邮箱异常 5 商品永久下架 - 商品接口拨测失败后,未处理,收到相关邮件未响应 5 商品永久下架 - 上架的商品标题、图片、属性、价格、服务描述等商品要素之间无法匹配对应,并且商品服务详情描述页面、案例等页面中嵌入非华为云网站的外部链接地址,故意抄袭其他已入驻平台的商家店铺及商品信息 40 商品永久下架,冻结其商品发布权限180天 商品未按平台运营要求修改更新内容或存在过期失效的内容 10 商品下架7天 - 上架的商品不得引导或要求在无云商店交易的情况下重新注册或录入用户信息 30 终止合作 扣除5000元 通过虚假、做假、侵犯、违法、或不正当的方式提高服务销量或信用的行为 40 终止合作 扣除5000元 上架的商品侵犯第三方知识产权或其他合法权利的 40 商品永久下架 扣除5000元 上架的商品内置未在云商店上架的商品/服务的售卖交易入口,对商品的续费未通过云商店平台进行交易 40 终止合作 扣除5000元 提供云商店禁止的服务或商品 40 商品永久下架 扣除5000元 发布和服务无关的垃圾广告 40 商品永久下架 扣除5000元 上架的商品含有木马、黑客程序等有损网络安全的 50 终止合作 全部扣除 上架的商品可能套取他人身份证、邮箱、手机号、银行账号、支付宝账号、华为云账密等个人或者企业隐私信息的 50 终止合作 全部扣除 发布法律法规规和华为云相关规定禁止的信息、发布色情低俗的信息或其他违反法律法规、违反国家政策或违反华为云各项规则的内容 50 终止合作 全部扣除 为用户提供针对华为云产品的服务的过程中,未经华为云事先同意,引导用户使用非华为云产品的行为 50 终止合作 全部扣除 其它违反华为云规范、政策以及相关协议约定,恶意抢占用户资源的行为 50 终止合作 全部扣除 商家从华为云获取用户信息,无论以何种形式引导线下交易的行为 50 终止合作 全部扣除 商品质量 该商品交付过程成熟度和规范性低,一年内发生2起(含)以上一线项目交付团队投诉 40 商品永久下架 扣除5000元 商品一年内出现1起以上重大运营故障,影响客户使用 40 商品永久下架 扣除5000元 商品一年内因质量、交付及售后等原因发生2起(含)以上用户投诉并造成严重后果的 40 商品永久下架 扣除5000元 服务违规 商家以恶意投诉、评价、诋毁、虚假订购等方式进行不正当竞争 20 终止合作 - 商家不按照商品承诺要求为在云商店平台上购买其商品(包括已停售商品)的客户提供对应服务(超出范围交付或未完全交付) 50 终止合作 - 商家在服务过程中擅自修改用户云产品安全配置引起用户投诉的 40 终止合作 扣除5000元 商家未按照商家保证金缴纳规则进行缴纳或补齐 40 终止合作 扣除5000元 在云商店上架的商品,未运行在华为云资源之上、或未与云产品打包销售 40 商品永久下架 扣除5000元 未经华为云或其关联公司授权,商家在其服务标识、服务标题、服务简介、服务详情、图片或其他页面服务中使用“华为”、“华为云”或关联公司的名称、或上述品牌的附属标志及图案的任何变体、缩写或错误拼写;以及其他利用华为云进行虚假宣传等行为 50 终止合作 全部扣除 商家向运营经理行贿等行为 50 终止合作 全部扣除 商家在或开发过程中出现账号提权、安装后门程序等危害系统安全的行为 50 终止合作 全部扣除 擅自修改云产品配置,包括但不限于安全配置 50 终止合作 全部扣除 服务过程中隐瞒其所发现的系统缺陷且恶意利用,并未立即告知华为云 50 终止合作 全部扣除 泄露信息行为 擅自出售、转让、向任何第三方泄露,或以其他方式违规使用华为云的经营信息和运营数据,或用户的个人信息和相关数据的 50 终止合作 全部扣除 商家将在平台上收集的信息用于服务之外的任何目的,将信息出售、转让或向任何第三方披露 50 终止合作 全部扣除 欺诈行为 商家以买家身份或委托他人以买家身份购买自己服务的行为或进行评价的行为,通过虚假或不正当的方式提高商家服务销量或信用的行为 10 商品永久下架 扣除5000元 当接到投诉时,假冒用户向华为云表示撤销投诉 20 终止合作 全部扣除 当接到投诉时,虚构事实,隐瞒实情,阻碍华为云正常调查 20 终止合作 全部扣除 商家引导用户通过其他平台进行交易,或增加其他平台访问量的行为 30 终止合作 全部扣除 对用户实施欺诈行为引起用户投诉,对用户造成严重损失的 40 终止合作 全部扣除 通过冒用名义、欺骗混淆的方式,使用户误以为商家是华为集团子公司或分公司、关联公司、代理或其他实质性关系的单位,或使用户误以为商家获得华为集团的推荐的行为 40 终止合作 扣除5000元 未按交易的实际情况履行服务监管流程,提前或虚假交付,或获取客户账号操作验收 40 终止合作 扣除5000元 使用虚假资质或虚假信息进行入驻云商店 50 终止合作 全部扣除 通过云商店实施任何虚假或不正当手段欺骗、误导他人,诱使他人充值、下单 50 终止合作 全部扣除 商家参与不正当竞争:如通过虚假或不正当的方式提高商家服务销量或信用的其它行为;商家伪造或篡改用户评论/留言;以客户身份购买同行服务后作出恶意评价;恶意举报其他商家,如提供伪证的举报行为;等违反《反不正当竞争法》等法律法规、破坏云商店公平竞争秩序的行为 50 终止合作 全部扣除 商家通过私自引导用户重新注册账号,关联为商家子账户等方式,达到逃避云商店平台服务费,或逃避其他云商店平台规则的适用 50 终止合作 全部扣除 商家态度问题 30分钟内未响应用户咨询,用户下单后,一个工作日内未与用户联系 5 商品下架 - 服务监管中,未及时联系客户处理订单、单月有超过3笔以上超180天未完成服务监管 10 商品下架7天 - 当接到投诉时,对用户的投诉置之不理,未在30分钟内跟进协商解决 10 商品永久下架 - 回避用户问题或推诿责任、敷衍用户等行为; 不友善、不礼貌的语言 10 商品永久下架 - 云商店在接到用户反映联系不上商家后,云商店平台通过电话、短信、邮件、站内信等方式,在48小时内仍无法与商家取得联系 20 商品下架15天 - 商家通过沟通工具对用户或平台进行诋毁、贬低,辱骂等行为 30 商品永久下架 扣除5000元 未经华为云同意向用户发送服务推广信息,或通过任何方式对用户造成骚扰 40 商品永久下架 扣除5000元 自身经营状况存在风险、企业存在税务问题、企业法人被限制高消费等情况 - 商品永久下架 - 最近更新:2023年9月15日 父主题: 商家权益
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 参数说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 encryptType O String 3 敏感信息加密算法 1:AES256_CBC_PKCS5Padding(默认值) 2:AES128_CBC_PKCS5Padding 说明: 敏感信息加密算法是AES256_CBC_PKCS5Padding时返回值为1,敏感信息加密算法是AES128_CBC_PKCS5Padding时返回值为2。 instanceId M String 64 实例ID,商家提供的唯一标识。 建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 说明: 云商店每次请求时的businessId皆不一致,如取businessId作为instanceId,取订单首次调用时的businessId即可。 若通过其他方式生成instanceId,请确保该参数的全局唯一性,例如使用UUID生成。避免生成的instanceId发生重复,导致用户开通SaaS实例失败。 appInfo O AppInfo N/A 应用实例信息。 客户购买商品后,商家需要返回登录服务地址(网站地址)或免登地址供客户后续操作。 说明: SaaS商品必须向客户提供应用使用信息,包括使用地址、账号、密码等。 如可实现通过短信、邮件等其他方式发送使用信息,则接口中允许不响应;否则,必须在接口中返回应用实例信息。 如使用信息不仅包含使用地址及账号密码,可通过如下memo参数灵活返回其他使用信息或使用说明等。 appInfo数据结构定义请参见下表。 AppInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 frontEndUrl M String 512 前台地址。 客户购买商品后,可以访问的网站地址。 adminUrl O String 512 管理地址。 客户购买商品后,可以访问的管理后台地址。 userName O String 128 加密后的管理员账号。 客户购买商品后,访问商家管理后台的账号(一般为邮箱和手机号)。该值由16位iv加密向量和base编码后的用户名密文组成。 iv+encryptAESCBCEncode(userName, accessKey, iv, keySize) 需要使用Key值对账号做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+encryptAESCBCEncode(password, accessKey, iv, keySize) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 获取accessKey,请参见获取Key值。 用户名密码所校验的长度是密文的长度(包括iv向量)。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一订单号,商家的服务器应当返回成功的响应及应用实例信息,不应该创建新的SaaS实例,返回之前成功创建的实例信息即可。 SaaS实例信息如果有变化,例如,adminUrl发生变化,在云商店服务重新调用此接口,传入相同的orderId时,商家的服务器需要返回更新后的SaaS实例信息。为保证安全,云商店不持久存储SaaS实例信息。 ISV生产接口响应中,除memo参数外,其他参数请不要返回中文。 响应消息示例: { "resultCode":"000000", "resultMsg":"success.", "instanceId":"03pf80c2bae96vc49b80b917bea776d7", "encryptType":"1", "appInfo":{ "frontEndUrl":"https://marketplace.huaweicloud.com/", "adminUrl":"https://marketplace.huaweicloud.com", "userName":"luQ***T***Rx***pwMRg==", "password":"7Bx***5***hC***atExg==" } }
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 参数说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 encryptType O String 3 敏感信息加密算法 1:AES256_CBC_PKCS5Padding(默认值) 2:AES128_CBC_PKCS5Padding 说明: 敏感信息加密算法是AES256_CBC_PKCS5Padding时返回值为1,敏感信息加密算法是AES128_CBC_PKCS5Padding时返回值为2。 instanceId M String 64 实例ID,商家提供的唯一标识。 建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 说明: 云商店每次请求时的businessId皆不一致,如取businessId作为instanceId,取订单首次调用时的businessId即可。 若通过其他方式生成instanceId,请确保该参数的全局唯一性,例如使用UUID生成。避免生成的instanceId发生重复,导致用户开通SaaS实例失败。 appInfo O AppInfo N/A 应用实例信息。 客户购买商品后,商家需要返回登录服务地址(网站地址)或免登地址供客户后续操作。 说明: SaaS商品必须向客户提供应用使用信息,包括使用地址、账号、密码等。 如可实现通过短信、邮件等其他方式发送使用信息,则接口中允许不响应;否则,必须在接口中返回应用实例信息。 如使用信息不仅包含使用地址及账号密码,可通过如下memo参数灵活返回其他使用信息或使用说明等。 appInfo数据结构定义请参见下表。 AppInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 frontEndUrl M String 512 前台地址。 客户购买商品后,可以访问的网站地址。 adminUrl O String 512 管理地址。 客户购买商品后,可以访问的管理后台地址。 userName O String 128 加密后的管理员账号。 客户购买商品后,访问商家管理后台的账号(一般为邮箱和手机号)。该值由16位iv加密向量和base编码后的用户名密文组成。 iv+encryptAESCBCEncode(userName, accessKey, iv, keySize) 需要使用Key值对账号做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+encryptAESCBCEncode(password, accessKey, iv, keySize) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 获取accessKey,请参见获取Key值。 用户名密码所校验的长度是密文的长度(包括iv向量)。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一订单号,商家的服务器应当返回成功的响应及应用实例信息,不应该创建新的SaaS实例,返回之前成功创建的实例信息即可。 SaaS实例信息如果有变化,例如,adminUrl发生变化,在云商店服务重新调用此接口,传入相同的orderId时,商家的服务器需要返回更新后的SaaS实例信息。为保证安全,云商店不持久存储SaaS实例信息。 ISV生产接口响应中,除memo参数外,其他参数请不要返回中文。 响应消息示例: { "resultCode":"000000", "resultMsg":"success.", "instanceId":"03pf80c2bae96vc49b80b917bea776d7", "encryptType":"1", "appInfo":{ "frontEndUrl":"https://marketplace.huaweicloud.com/", "adminUrl":"https://marketplace.huaweicloud.com", "userName":"luQ***TobyT***Rx***pwMRg==", "password":"7Bx***5***hC***atExg==" } }
  • 代码样例 取消冷热时间线。 public void testModifyTable() { LOG.info("Entering testModifyTable."); // Specify the column family name. byte[] familyName = Bytes.toBytes("info"); Admin admin = null; try { // Instantiate an Admin object. admin = conn.getAdmin(); // Obtain the table descriptor. HTableDescriptor htd = admin.getTableDescriptor(tableName); // Check whether the column family is specified before modification. if (!htd.hasFamily(familyName)) { // Create the column descriptor. HColumnDescriptor hcd = new HColumnDescriptor(familyName); //Disable hot and cold separation. hcd .setValue(HColumnDescriptor.COLD_BOUNDARY, null); htd.addFamily(hcd); // Disable the table to get the table offline before modifying // the table. admin.disableTable(tableName); // Submit a modifyTable request. admin.modifyTable(tableName, htd); //注[1] // Enable the table to get the table online after modifying the // table. admin.enableTable(tableName); } LOG.info("Modify table successfully."); } catch (IOException e) { LOG.error("Modify table failed " ,e); } finally { if (admin != null) { try { // Close the Admin object. admin.close(); } catch (IOException e) { LOG.error("Close admin failed " ,e); } } } LOG.info("Exiting testModifyTable."); } 注意事项。 注[1] 只有在调用disableTable接口后, 再调用modifyTable接口才能将表修改成功。之后,请调用enableTable接口重新启用表。 注[1] 指的是代码样例中的“admin.modifyTable(tableName, htd); //注[1]”。
  • parquet格式数据导入导出 parquet格式数据导入。 非安全集群 cat parquet_no_ssl.parquet | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --database test010 --query="INSERT INTO test145 FORMAT Parquet" 安全集群 cat parquet_no_ssl.parquet | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --config-file ./config.xml --database test010 --query="INSERT INTO test146 FORMAT Parquet" parquet_no_ssl.parquet:表示格式文件存放路径,路径自定义。 host:主机名/ClickHouse实例IP地址。 port:端口号(在集群详情页面查看)。 user:创建集群时创建的用户名。 database:数据库名。 password:创建集群时,创建的密码。 INSERT INTO:后面跟数据表。 config-file ./config.xml:指定配置文件,请参见ClickHouse安全通道章节。
  • JSON格式数据导入导出 JSON格式数据导入。 非安全集群 cat ./jsonnossl.json | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --database test010 --query="INSERT INTO test141 FORMAT JSON" 安全集群 cat ./jsonssl.json | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --config-file ./config.xml --database test010 --query="INSERT INTO test142 FORMAT JSON" cat 文件路径:导入文件路径,路径自定义。 host:主机名/ClickHouse实例IP地址。 port:端口号(在集群详情页面查看)。 user:创建集群时创建的用户名。 database:数据库名。 password:创建集群时,创建的密码。 INSERT INTO:后面跟数据表。 config-file ./config.xml:指定配置文件,请参见ClickHouse安全通道章节。
  • 初始化Cloud Map 使用NUWA框架,只要增加对应配置,框架即会完成Cloud Map的初始化。 这些配置需要写到nuwa框架可以读到的文件里,一般是nuwa-xxx.properties,nuwa-xxx.yaml文件。因为Cloud Map的Client全局单例,所以可以直接通过NuwaMapClientFactory.getNuwaMapClient()获取client对象,也可以在Spring上下文中获取NuwaMapClient的Bean。
  • 初始化STS 在启动类中增加注解@EnableStsAutoInitialization(value = "sts.properties"),注解的含义是启动STS自动初始化,其中value是指定STS的配置文件路径。 使用注解时,是通过加装Bean的方式初始化STS和解密敏感配置项,由于Bean的加载顺序不固定,有时会出现使用STS解密的代码被加载了,初始化STS的Bean还没有被加载。如果出现这种情况,可以在使用STS的类方法上添加如下方法解决此问题: @Import(value = {StsEncryptablePropertiesConfiguration.class})
  • 配置STS 在微服务的ClassPath下增加添加配置文件sts/sts.properties(该文件路径可以通过环境变量sts.properties进行修改),内容为: sts.server.domain=10.202.251.196:8080 #STS服务器的地址 sts.config.path=/opt/huawei/certs/xxxService/xxxMicroService/xxxMicroService.ini #STS微服务证书路径,基础设施即代码(Infrastructure as Code,简称IaC)会将证书放在固定路径下,格式为/opt/huawei/certs/服务名/微服务名/微服务名.ini
  • 常见问题 Domain not registered或Service not registered 领域或微服务没有进行注册,请根据STS 2.0业务接入指南的指导自行注册领域或微服务。 connect timed out或read timed out 它有两种原因,connect timed out或read timed out: 可以在sts.properties中添加超时配置,单位为毫秒: sts.connect.timeout=10000 //遇到 connect timed outsts.socket.timeout=10000 //遇到 read timed out Illegal key size 需要安装相应JDK版本对应的两个policy文件。最新的Huawei JDK在 jre/lib/security/policy/unlimited下自带了该policy文件,因此可以直接切换到Huawei JDK来启动应用。 自动部署时,请选择安装最新版本的jdk,如1.8.0_252,因为新版本是Huawei JDK,已经自带了policy文件 如果不能修改JDK版本,则替换JRE_HOME/lib/security目录下的US_export_policy.jar和local_policy.jar。 Encrypt Permission Denied 这是因为管理台上注册微服务时,默认将微服务注册成了NORMAL。只有角色为PLATFORM的微服务才有权限调用加密接口。 fail to init session key fail to init session key fail to get master key from sts 这是因为集成了STS 1.0,也就是集成了sts-cse-sdk,从STS 1.0的服务器获取master key失败。因为STS 1.0的服务器需要业务自己去搭建,在没有搭建的情况下,当然会获取失败。 如果已经搭建,检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 mac check in GCM failed 这个错误的原因就是密钥和密文不匹配导致无法解密。需要确认业务配置文件中的密文是从哪里来的? 通过IaC由配置中心下发: 检查IaC代码中配置的敏感配置项ID中的服务或微服务名是否属于该运行的微服务。 服务级:Service/{ServiceName}/{SensitiveName}/{tag} 微服务级:MicroService/{ServiceName}/{MicroServiceName}/{SensitiveName}/{tag} 通过StsAgent加密后,手工配置: 检查加密的时候使用的服务级别servicekek还是微服务级别kek,和密文中的级别是否一致,服务名和微服务名是否和该运行的微服务一致?加密得到密文的STS环境和运行的STS环境是否一致?例如测试环境加密的密文是不能在生产环境解密。 # 使用微服务kek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -x -h 10.33.102.162:8080 # 使用服务servicekek加密 # /opt/huawei/apps/wisesecurity/stsagent/stsagent encrypt -s ServiceName -m MicroServiceName -ts ServiceName -x -h 10.33.102.162:8080 中间件的口令解密 业务集成了Cloud Map对接中间件,业务不用关心口令解密的问题。 业务使用sts agent加密明文口令后配置到相应管理台。参考2,看加密用的密钥和代码中解密的密钥是否对应(服务级还是微服务级kek),以及加密时使用的微服务名和服务名是否一致。 不同微服务的证书不可混用,业务使用自己微服务的证书及配置文件进行SDK的初始化,解密自己微服务的配置。 Undefined provider local 当创建AESCryptor时,如果不用@指定KeyProvider,那么它会默认调用local KeyProvider。在使用kek或servicekek时,要指定KeyProvider为@sts。 //错误 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek").withAlg(CryptoAlg.AES_GCM).build(); //正确 AESCryptor cryptor = new AESCryptor.Builder().withKey("kek@sts").withAlg(CryptoAlg.AES_GCM).build(); 申请证书时Make sure haveged is running步骤或try active service步骤报错。 这是因为机器上没有启动haveged服务。haveged是一个随机数的熵的提供方,它可以解决在某些情况下,系统熵过低的问题。 规避办法:在部署步骤前面加上sudo步骤;或者,到机器上,手动执行service haveged start命令,启动haveged服务。 解决方案:在申请证书步骤前添加sudo和shell-exec步骤,确保haveged服务为启动状态。 sudo systemctl enable haveged.service && sudo systemctl start haveged.service非EulerOS可以使用sudo service haveged start命令。 service ini config file not exists 这是因为STS在初始化时,找不到初始化配置文件(ini 文件)或者微服务名称.sts.p12证书文件不存在。该文件是部署微服务是通过stsagent申请证书时生成的,默认路径在/opt/huawei/certs/{serviceName}/{microServiceName},业务也可以通过相应参数来修改。 解决办法: 首先确认配置的STS参数: 通过配置文件配置的,查看sts/sts.properties 文件,检查sts.config.path配置的文件是否存在。 通过NUWA配置文件,检查microservice.yaml文件中nuwa.security.sts.configPath配置的文件是否存在。 nuwa:security:sts:serverDomain: 10.33.102.109:8080configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 通过Java Bean方式配置的,也就是通过类似以下代码初始化,检查sts.config.path配置的文件是否存在 Properties properties = new Properties();properties.setProperty("sts.server.domain", "10.33.102.162:8080");properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini");StsKeyApi.initWith(properties); 如果配置的是相对路径,则必须是相对于resource目录的路径。如果是在IDEA中运行使用,则检查target下是否有该文件,如果没有则重新compiler,IDEA最终是从target下获取resource文件。 另外,请确认部署过程中证书申请的步骤在业务安装和启动流程之前,如果业务先启动,之后才进行证书的申请,配置文件还未生成,也会出现找不到配置文件的问题。 若不存在,则要参考STS 2.0业务接入指南申请证书。如果配置的文件路径不是stsagent生成的默认路径,则需要手工将** /opt/huawei/certs/{ServiceName}/{MicroServiceName}/**拷贝到相应的路径下。 Fail to derive key with master key 这是因为STS没有初始化,就去调用了获取认证凭据的接口。 解决办法:检查是否调用了StsKeyApi.init()或StsKeyApi.initWith(properties)。 如何解密微服务证书的口令 微服务证书的口令使用本地随机的根密钥和工作密钥加密,口令明文使用StsKeyStoreUtil.getKeyStoreValue()进行解密。 Access Permission Denied 微服务集成STS SDK,获取相应微服务的Credentials时报如下错误Reqeust sts server fail, Request Token form xxxx&yyyy failed, Access Permission Denied。 这是由于provider没有该微服务配置相应的ACL(Access Control List),导致没有权限获取访问该provider的credentials。 Invalid api name STS Agent执行的时候报Invalid api name,这是由于 IaC 中使用了STS Agent高版本能力,但主机上STS Agent版本过低并且IaC中没有强制升级STS Agent导致的。通过IaC或手动更新STS Agent,使用1.1.5.100及之前的部署包时请打开force_install开关。 微服务有测试,镜像,海外,灰度等不同的环境,STS管理台如何管理这些敏感配置项? STS管理台在不同站点是分开部署。同一站点下假如想区分不同的场景,例如生产和灰度,开发,测试和镜像,则可以使用敏感配置项标签区分。 STS管理台敏感配置项最大长度是多少? 5000个字符。 本地缓存的STS KEK,ServiceKEK以及认证凭据是如何保护? key.json由本地随机生成的rootkey和workkey加密保护,kek.json由STS KEK保护。 加密算法采用AES GCM。 部署过程report certificate to cms报错,提示"An unknown error occurred when report certificates!"。 首先检查/opt/huawei/certs/{service}/{microservice}下stscerttool.log中是否有错误信息。 若日志中出现异常提示[Errno -2] Name or service not known,请使用以下命令确认系统版本是否为欧拉OS 2.9 [EulerOS release 2.0 (SP9)]: lsb_release -a 检查主机hostname是否超过64个字符,如果是的话,修改主机名。 主机存在无法解析出主机IP的问题,参考如下步骤检查: 检查/etc/nsswitch.conf中是否包含hosts项,且对应配置包含files或myhostname。 若添加配置files,检查/etc/hosts,添加当前主机的IP映射[host_ip] [hostname],例如:10.33.100.100 host-10-33-100-100。 若添加配置myhostname,通常无需进行其他修改。 运行以下命令检查是否有其他异常。 hostname -i python -c "import socket; print(socket.gethostbyname(socket.getfqdn(socket.gethostname())))" 如何手工注册微服务 使用IaC部署在WiseDBA上创建数据库实例,报没有注册STS的错误,如果业务还没有接入STS,可以在STS管理台进行手工注册该微服务。 如何将服务器上生成的STS微服务证书信息迁移到window机器上调试。 将服务器上/opt/huawei/certs/{serviceName}/{microServiceName}目录下的所有问题打包下载到本机。修改{microServiceName}.ini 文件中 a_file,b_file ,c_file,d_file 的路径,该路径支持绝对路径或相对路径(相对于ini文件的路径,一般为{microServiceName}/apple/a)。修改sts.properties中 sts.config.path为实际的ini文件的路径。 missed = in sensitive string value / missed value in sensitive string 解密敏感配置项的时候报missed = in sensitive string value错误,这是由于敏感配置密文格式不正确。敏感配置项密文格式如下: kek加密密文格式: ENC(key=kek, value=xxxx) servicekek加密密文格式: ENC(key=servicekek, value=xxxx) Unable to execute refresh credentials function 微服务日志STS SDK抛出如下异常,这是由于对端开启了STS的微服务认证,MapConnectCoreService&MapConnectCoCreateService未给该微服务配置ACL。 解决方案:让对端给该微服务配置ACL。 com.huawei.wisesecurity.sts.sdk.exception.StsException: Unable to execute refresh credentials function for service.identity=MapConnectCoreService&MapConnectCoCreateService STS对JDK/JRE有什么要求? STS的kek/servicekek使用了256位密钥,该长度加密算法受到美国出口限制,需要安装相应JDK版本对应的两个policy文件(US_export_policy.jar 和 local_policy.jar )。 最新的Huawei JDK/JRE(1.8.0_252)在jre/lib/security/policy/unlimited下自带了该policy文件,因此可以直接切换到Huawei JDK来启动应用。 如果不能修改JDK/JRE版本,可以用Huawei JDK/JRE jre/lib/security/policy/unlimited下的policy文件(US_export_policy.jar和 local_policy.jar)替换到相应JDK/JRE的jre/lib/security目录下。 invalid common name STS SDK抛出如下异常: InvocationException: code=403;msg=errorCode=1002;errorMessage=invalid common name: AppGalleryPromotionUserService 这是由于CSE的yaml文件中配置的微服务名和使用的STS微服务证书中的微服务名不一致导致的,使用部署时采用STSAgent自动签发的证书,里面是标准的PBI服务名和微服务名。 STS管理台敏感配置修改后如何刷新到微服务的配置文件中? 敏感配置项是通过配置服务发布到微服务配置文件中。在STS管理台修改后,需要在部署服务上重新发布修改的配置项。 在配置中心找到该配置项 重新发布该配置项: fail to parser work key json file 检查work_key.json格式是否正确,文件中的description,mac字段需要删除。 Odd number of characters 业务加载工作密钥文件的时候报Odd number of characters异常,这是由于在STS管理台配置的hex编码的密钥明文的少或多了一个char。Hex编码字符串必须是偶数个字符。 fail to get master key from sts 业务集成了STS 1.0的认证能力,需要从STS 1.0 Server上获取主密钥失败。STS 1.0 Server是部署在业务集群中,注册到业务同一个注册中心: 在相应注册中心上检查WiseSecurity:SecurityTokenService微服务是否存在,如果不存在,则找到相应部署机器启动该微服务。 检查业务的yaml文件中配置的environment参数和STS 1.0微服务中的environment是否一致,如果不一致则修改成一致。 missed header x-sts-token / x-sts-session provider通过STS SDK认证请求时,从http消息中无法获取到相应的STS认证header信息。 直接用postman访问,会缺少相应的认证凭据而失败。因此如果测试需要,可以将微服务的STS认证放通开关打开。放通开关配置在sts.properties配置文件中的sts.bypass.enable参数:true表示放通,false表示不放通,默认是不放通。 consumer侧开启了放通,但provider侧没有放通。 sts.properties文件中未配置sts.config.path指定STS微服务证书加载路径(如果是IDEA中执行的,检查一下target下是否存在sts.properties)。STS SDK默认加载sts/sts.properties,业务也可以通过jvm启动参数sts.properties修改该文件的路径。 如果是通过NUWA初始化STS的,检查yaml文件中是否有配置nuwa.security.sts.configPath。 nuwa: security: sts: serverDomain: 10.33.102.109:8080 configPath: /opt/huawei/certs/{ServiceName}/{MicroServiceName}/{MicroServiceName}.ini 如果通过Java Bean方式初始化,检查是否有设置sts.config.path配置项。 Properties properties = new Properties(); properties.setProperty("sts.server.domain", "10.33.102.162:8080"); properties.setProperty("sts.config.path", "D:/Test/ConsumerService/ConsumerMicroService1/ConsumerMicroService1.ini"); StsKeyApi.initWith(properties); STS管理台录入敏感配置项使用什么加密算法加密。 敏感配置项采用STS给业务分配的KeK/ServiceKek(256位)使用AES/GCM加密。 Unable to resolve non-exist credentials StsCseClientFilter中发送请求时报如下异常和错误,这是由于无法获取到访问该微服务凭据抛出异常。检查服务初始化STS SDK时是否有异常(查看 logback或log4j中配置的com.huawei.wisesecurity.sts包路径的日志文件)。 invalid certificate 回答:确认服务名和证书名是一致的,证书是重新下发的,再判断业务连接的STS server1.0上的证书是否有修改。 注意:需要确定当前环境连接的STS服务器是正确的,可以看性能环境对应的注册中心是哪个,然后再这个注册中心上portal上看STS 1.0是那台服务器注册上去的。 get sts token --Timestamp out of range/Timestamp is more earlier or later 这是由于STS开启防重放攻击(和STS服务器之间时间差小于5分钟),检查业务服务器的时间是否正确。 configId can not be blank 部署服务或者NUWARutime获取敏感配置项时,请求要获取的敏感配置项的列表中有值为空。 管理台上服务下无法选到相应的微服务。 在安全管理台上配置敏感配置项、证书时,服务下只显示已经在相应环境下在STS上注册过的微服务。需要让站点的业务SRE在运维管理台上进行微服务注册。 KeyStoreException: empty private key or certificate 出现该提示,是因为主机上STS实例证书(位于/opt/huawei/certs/{服务}/{微服务}/下)并不完整,很可能是由于前一次部署过程中出错导致,请检查该证书是否有效,可使用以下命令对证书进行检查。 /opt/huawei/apps/wisesecurity/stsagent/stsagent check -s {服务} -m {微服务} 如果提示校验错误信息,请重新执行stsagent-install部署步骤进行证书的重新申请。 Unable to find SecretKey version=0 业务代码中使用STS密钥解密非STS加密的数据导致的错误。 Micro service xxx&yyy not registered 微服务没有在STS管理台进行注册。 Fail to read service info from keystore STS SDK初始化是需要从STS的身份证书jks文件中读取服务和微服务信息,加载jks文件的时候异常了。一般是该jks文件有异常。 SDK会根据service ini文件中的subject的CN项作为微服务名读取证书文件 {微服务名}.sts.p12 [cert] subject = C=CN,O=Huawei,OU=Huawei CBG Cloud MicroService,CN=SecurityTokenServiceDemoSelfConsumer ip = 127.0.0.1 invalid timestamp 检查业务主机的时间和标准时间差异是否超过5分钟。 timeout awaiting response headers sts-go-sdk内的 ResponseHeaderTimeout参数值设置过小,目前默认为100,在初始化时传入参数“sts.responseHeader.timeout”修改该值大小。 not an SSL/TLS record client和server两边SSL不一致:client通过HTTP访问,但Server是提供的HTTPS的服务。 如果是 tomcat + NUWA/CSE,tomcat最终对外提供是http还是https是由tomcat的配置文件决定的,NUWA/CSE的yaml文件中定义的只是注册到注册中心告诉对端提供的是 http还是https。 Some config items not found iac provider在plan阶段会去校验敏感配置项是否存在于STS管理台,如果没有录入敏感配置项,或者敏感配置项的坐标不正确,则报此错,需要业务自己检查坐标是否正确。 fail to get provider ** credentials consumer集成sts-go-sdk在获取provider端访问凭据的时候失败,需要在provider端配置ACL,管理台录入ACL后,需等十分钟才生效。 启动时如果发现类似错误: either 'jasypt.encryptor.password', one of ['jasypt.encryptor.private-key-string', 'jasypt.encryptor.private-key-location'] for asymmetric encryption, or one of ['jasypt.encryptor.gcm-secret-key-string', 'jasypt.encryptor.gcm-secret-key-location', 'jasypt.encryptor.gcm-secret-key-password'] for AES/GCM encryption must be provided for Password-based or Asymmetric encryption 那么可以按两个方向排查: 检查启动类是否添加@EnableStsEncryptableProperties ,需要添加该注解,才能初始化StsStringEncryptor对象。 如果已经添加,那可能是触发自动解密的地方距离启动太早,导致 spring context 初始化还未完成,不能获取到StsStringEncryptor对象。例如,Eureka应用的bootstrap.yml中如果包含敏感配置项,就会报这个错,需要将敏感配置项移到其他配置文件中,即可解决。 Unable to refresh credentials for service SecurityTokenService&SecurityTokenMicroService 该问题是STS初始化的时候,从kek.json或者keys.json获取本地密钥失败,导致无法从STS-Server获取凭据。 解决方法:找到密钥的缓存地址,/${HOME}/.sts/服务名/微服务名/kek.json,删除kek.json和keys.json文件,重新启动即可。 父主题: STS SDK
  • SDK功能介绍 表1 STS SDK功能矩阵 功能 Java 读取微服务身份证书 √ 连接STS-Server获取密钥、认证凭据等 √ 连接STS-Server获取敏感配置 √ 解密敏感数据 √ 微服务间通信认证 √ 微服务间通信敏感数据加密 √ 表2 Cloud Map SDK功能矩阵 功能 Java 微服务注册发现 √ 中间件注册发现 √ URL注册发现 √ 支持CSE平滑切换到Cloud Map,支持cse访问不同clusterName的微服务 √ 支持URL AZ内就近访问,指定灰度、Tag访问 √ 支持获取所有的服务实例以及实例变更通知 √ 提供restful调用的API √ Cloud Map支持Spring Cloud √ 支持多个ELB/SLB,避免单点故障 √ 表3 Gray SDK功能矩阵 功能 Java 高性能灰度规则执行 √ 兼容CSE的灰度规则能力 √ 支持订阅多个微服务灰度配置和执行 √ 支持多阶段灰度发布 √ 支持灰度生命周期管理 √ 支持灰度规则执行异常检测 √ 表4 Rainbow SDK功能矩阵 功能 Java 支持MySQL/Cassandra/GaussDB/DRDS √ 数据库主备动态切换 √ 读节点发生故障,单线程读重试 √ 基于集中式数据源信息管理和动态变更 √ 基于JDBC规范,很容易扩展支持实现JDBC规范的数据源 √ 应用直连数据库,无代理 √ 平滑加减数据库节点 √ 提供hint方式或者是编码式强制某条SQL读取从库或者主库等 √
  • 配置Rainbow 修改Rainbow SDK配置,切换SDK数据源,新增Cloud Map配置、STS配置,配置如下: nuwa: sts: serverDomain: 10.33.102.162:8080 configPath: certs/WiseCloudNuwaService/WiseCloudNuwaCloudMapAdminService/WiseCloudNuwaCloudMapAdminService.ini enable: true cloudmap: serverAddr: http://10.33.113.125:8080 namespaceName: cn_dev_default rainbow: db0: datasource: beanName: rainbowDs dataSourceName: xxxx //与运维中心WiseDBA服务SDK配置界面的值保持一致 appName: xxx //业务的服务名 dbGroupKey: xxx //实例名称 dbName: xxxxx //Schema名称 connectionProperties: characterEncoding=utf8;connectTimeout=10000;socketTimeout=10000;autoReconnect=true;useUnicode=true;serverTimezone=Asia/Shanghai useSts: true mybatis: base-package: com.huawei.nuwa.map.demo.consumer.middleware.dao mapper-locations: classpath:mapper/rainbow/*.xml
  • 初始化Cloud Map 在启动类中增加@EnableDiscoveryClient注解,同时在启动类中完成将RestTemplate放到spring容器中,后续微服务间调用就使用注册到spring容器中的RestTemplate,代码如下: package com.huawei.demo.servicea; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; import com.huawei.wisesecurity.sts.springboot.security.annotation.EnableStsAutoInitialization; @SpringBootApplication @EnableStsAutoInitialization(value = "application.properties") @EnableDiscoveryClient public class ServiceASpringbootApplication { public static void main(String[] args) { SpringApplication.run(ServiceASpringbootApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }
  • 配置Cloud Map 在微服务的application.yaml配置文件中添加以下配置项: nuwa: cloudmap: read: cloudmap #使用Cloud Map方式进行微服务间通信 clusterName: clusterName-example #微服务注册到Cloud Map的集群 provider: cluster: clusterName-example #提供服务的其他同样被注册到Cloud Map的微服务集群名 serverAddr: http://10.34.32.243:80 #Cloud Map访问地址 version: 1.0.0.100 #微服务版本号 namespaceName: cn_dev_default #Cloud Map访问命名空间
  • SDK列表 表1 SDK列表 SDK分类 说明 编程语言 下载地址 参考文档 ACMS的SDK:STS SDK STS SDK(Security Token Service,简称STS)服务软件开发工具包是对访问凭据管理服务(ACMS)提供的REST API进行的封装,以简化用户的开发工作。用户直接调用SecurityTokenService SDK提供的接口函数即可实现使用ACMS业务能力的目的。 使用STS SDK即可使用运维中心ACMS的敏感配置项托管和微服务之间请求认证功能。 Java nuwa-open-sdk-1.1.0-20240204093135.zip 完整性校验nuwa-open-sdk-1.1.0-20240204093135.zip.sha256 下载包nuwa-open-sdk-1.1.0-20240204093135.zip中的文件介绍请参见表2。 STS SDK Cloud Map的SDK:Cloud Map SDK Cloud Map SDK服务软件开发工具包是对服务发现(Cloud Map)服务提供的REST API进行的封装,以简化用户的开发工作。用户直接调用Cloud Map SDK提供的接口函数即可实现使用Cloud Map服务业务能力的目的。 Java Cloud Map SDK SLB的SDK:Gray SDK Gray SDK负责业务的负载均衡,Nginx组件通过反向代理实现了业务的负载均衡,通过丰富的扩展功能,可以对HTTP消息定制丰富的控制策略。 使用Gray SDK即可使用运维中心负载均衡(SLB)的灰度管理功能。 Java Gray SDK WiseDBA的SDK:Rainbow SDK Rainbow SDK构建云原生DevOps全流程可信build-in的数据库治理解决方案。使用Rainbow SDK即可使用运维中心的数据库治理(WiseDBA)功能。 提供MySQL/Cassandra/GaussDB/DRDS全流程设计、开发、发布、运维(管理、治理、诊断)方案。 可信build-in:过程可信,结果可信,接入安全(无人工接入密码),操作(资源高危操作)安全。 Java Rainbow SDK 表2 SDK jar包介绍 文件夹 SDK分类 对应的jar包 nuwa-cse-sdk:适用于基于NUWA框架且不使用spring boot的项目 STS SDK sts-key-sdk-1.1.17.109.jar sts-sdk-base-1.1.17.109.jar cloudsoa-security-1.1.13.100.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.1.5.100.jar Rainbow SDK rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.1.5.100.jar nuwa-core-3.1.5.100.jar nuwa-cse-foundation-3.1.5.100.jar nuwa-share-libs-3.1.5.100.jar nuwa-tenant-sdk-3.1.5.100.jar spring-cloud-sdk:适用于基于Spring Cloud框架的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-1.0.12.100.jar spring-cloud-starter-cloudmap-discovery-1.0.12.100.jar Gray SDK 不支持 Rainbow SDK gpaas-jetcd-api-2.0.0.106.jar gpaas-jetcd-v2-2.0.0.106.jar gpaas-middleware-common-2.2.6.100.jar nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-api-1.2.18.201.jar rainbow-core-1.2.18.201.jar rainbow-core-drds-1.2.18.201.jar rainbow-core-gaussdb-1.2.18.201.jar rainbow-proxy-1.2.18.201.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar spring-cse-sdk:适用于基于NUWA框架且使用spring boot的项目 STS SDK sts-key-sdk-1.1.19.100.jar sts-sdk-base-1.1.19.100.jar sts-spring-boot-1.1.19.100.jar cloudsoa-security-1.1.14.101.jar Cloud Map SDK nuwa-cloudmap-config-servicecomb-1.0.12.100.jar nuwa-cloudmap-core-1.0.12.100.jar nuwa-cloudmap-registry-cse3-1.0.12.100.jar nuwa-cloudmap-registry-servicecomb-common-1.0.12.100.jar nuwa-cloudmap-spring-boot-starter-3.2.2.100.jar nuwa-gpaas-cloudmap-3.2.2.100.jar Gray SDK graysdk-core-1.4.14.500.jar graysdk-cse3-1.4.14.500.jar nuwa-apaas-graysdk-3.2.2.100.jar nuwa-graysdk-spring-boot-starter-3.2.2.100.jar Rainbow SDK nuwa-gpaas-rainbowproxy-3.2.2.100.jar nuwa-rainbowproxy-spring-boot-starter-3.2.2.100.jar rainbow-proxy-1.2.18.102.jar gpaas-middleware-common-2.2.6.100.jar NUWA基础SDK nuwa-boot-container-3.2.2.100.jar nuwa-core-3.2.2.100.jar nuwa-core-spring-boot-starter-3.2.2.100.jar nuwa-cse-foundation-3.2.2.100.jar nuwa-cse-foundation-spring-boot-starter-3.2.2.100.jar nuwa-tenant-sdk-3.2.2.100.jar tools:configparser为自定义参数解析工具,通过NUWA部署时,解析参数模板,将模板中的参数变量,替换为实际的配置项值,具体使用方式请参见使用configparser工具优化代码。 -
  • 一个主体最多可以备案几个网站 一个华为云账号只能备案一个主体(公司或个人)信息,但是一个主体下可以备案多个网站。 网站备案的域名个数限制优先以管局规定为准,部分管局(如:上海、广东和陕西等)要求域名超过一定数量时需要到管局现场核验或邮寄域名证书等。 具体需要以当地管局要求为准,您也可咨询备案热线4000955988转5。 若为企业备案,建议您一个备案订单提交3-5个域名/网站。(部分管局要求每次只能备案1个网站/域名(如湖南、湖北),需要等该域名备案通过后,可继续提交其他域名的备案申请。) 若为个人备案,一个备案订单提交1个域名/网站。 更多备案限制条件请参见:备案限制。 父主题: 备案基础
  • 电子版证件问题 通常是提供的证件不符合规范要求;如:证件内容不清晰、边角不完整、失真或造假、过期等,电子版证件具体要求如下: 拍照/彩色扫描证件原件,不可为复印件或打印件。 证件不可隔屏拍摄,拍照/扫描的证件需边角完整,内容清晰(国徽不得遮挡)。 色调背景一致,证件内容无反光 可以添加一行描述准确的水印,但需文字简洁且不遮挡证件上的重要信息。 系统支持上传的电子版格式有:jpg、png。 以下场景不符合电子版证件资料要求,无法通过备案申请: 使用图像处理软件对证件扫描件编辑、修改。 隔屏拍摄的证件。 电子营业执照,如图1所示。 图1 电子营业执照 父主题: 管局退回
  • 电子版证件资料要求 ICP备案不收证件原件,只需上传证件原件的彩色扫描件或者原件拍照电子版。电子版证件要求如下: 拍照/彩色扫描证件原件,不可为复印件或打印件。 证件不可隔屏拍摄,拍照/扫描的证件需边角完整,内容清晰(国徽不得遮挡)。 色调背景一致,证件内容无反光 可以添加一行描述准确的水印,但需文字简洁且不遮挡证件上的重要信息。 系统支持上传的电子版格式有:jpg、png。 以下场景不符合电子版证件资料要求,无法通过备案申请: 使用图像处理软件对证件扫描件编辑、修改。 隔屏拍摄的证件。 电子营业执照,如图1所示。 图1 电子营业执照 父主题: 上传资料与真实性核验
  • 常见问题 问:一台弹性云服务器已经享受过“备案多久送多久”奖励,使用该服务器再次提交备案时,还能再次享受吗? 答:不能,同一台弹性云服务器只能享受一次赠送时长,不能重复享受。 问:在备案成功前,弹性云服务器已到期,备案成功后还能享受“备案多久送多久”吗? 答:弹性云服务器到期,您将无法享受赠送时长,请及时续费,确保您的服务器在有效期内。 问:若备案过程中退订更换了新的弹性云服务器,还能享受“备案多久送多久”吗? 答:不能,退订属于办理备案的弹性云服务器服务提前终止,不能享受赠送时长。 问:享受了备案赠送时长的弹性云服务器,申请退订,赠送时长是否能折抵费用退到华为云账户? 答:不能,赠送时长是华为云为您备案成功的弹性云服务器免费延长的服务时长,不能折抵服务费用。 关于备案多久送多久奖励规则,如有疑问请提交备案类工单咨询,我们将竭诚为您服务。
  • 奖励对象 您办理备案的须为包年/包月计费的华为云弹性云服务器,且每台弹性云服务器仅限享受本规则规定的赠送时长一次。 您提交备案的资源须通过管局审核备案完成,并且是该弹性云服务器提供服务的第一个通过管局审核的资源,备案类型须为新增备案、新增互联网信息服务和新增接入。 资源不备案、中途放弃备案等未备案完成的不能参与该备案奖励。 在备案过程中,您的弹性云服务器如服务提前终止(包括但不限于提前退订服务等),或服务期届满到期不续费,无法享受该备案奖励。 云市场产品、含有云市场产品或非自营产品的任何套餐、免费领取服务器、按需计费的云服务器、软件开发套餐产品、专属云等,均不参与该备案奖励。 存在违法违规行为,或违反《华为云用户协议》、《可接受的使用政策》等的华为云账号或服务器,无法享受该备案奖励。
  • 奖励规则 使用包年包月弹性云服务器的客户,华为云将根据客户提交ICP备案初审的时间至网站或APP通过管局审核备案完成的时间,相应的免费延长对应相同时长的用于办理备案的弹性云服务器的服务期限(延长的该服务期限,以下简称“赠送时长”),该赠送时长不能转移给其他弹性云服务器。 赠送时长不超过 30 天。 在任何情况下,赠送时长不能折抵服务费用。 备案成功后系统自动延长对应弹性云服务器的赠送时长(不包含云服务器绑定的云硬盘、带宽、弹性公网IP等资源)。
  • 操作步骤 在APP端登录华为云备案小程序。 下载华为云APP。 您可在各大应用市场或扫描下方二维码下载华为云APP,如果已下载华为云APP请将APP升级至最新版本。 图1 下载华为云APP 登录华为云APP,在“控制台”中或者在搜索“ICP备案”,单击“ICP备案”,进入备案操作入口。 图2 登录控制台 填写ICP备案申请。 打开“ICP备案”,在“备案主体信息”页签,单击“变更备案”。 如果未找到“变更备案”按钮,请检查当前账号下是否有正在备案中的订单。如果有,请先完成正在备案中的订单或者放弃正在备案中的订单,系统将自动显示“变更备案”按钮。 图3 变更备案 修改主体信息中需变更的项,然后单击“保存”。 不需变更的项请不要修改。例如:您要变更实际通信地址或主体负责人联系电话,只需在系统对应项修改变更后的信息,其他项无需做任何改动。 表2 主体信息参数说明 类别 参数 要求 主办单位信息 单位名称:个人备案请填写个人身份有效证件上的姓名。 即主体信息,备案的主体信息应与域名持有者信息保持一致。 个人备案:备案负责人信息与域名注册人实名认证信息需保持一致,包括姓名、证件类型、证件号码。 单位备案:备案主体信息(主办单位名称或主体负责人)与域名注册人(域名持有者)实名认证信息需保持一致,包括主办单位名称、证件类型、证件号码。 说明: 如果域名注册人(域名持有者)实名认证信息与备案主体信息(主办单位名称或主体负责人)不一致时,即域名注册者为公司股东、单位主要负责人或高级管理人员,可提供相关证明材料上传至备案系统。 相关链接: 个人备案与单位备案FAQ 修改域名所有者 域名已备案,证件未备案 证件住址:个人备案请填写个人身份有效证件上的地址。 通讯地址:请按实际的办公地址填写,该地址需要与证件签发地、备案地所属同一地域。 主办单位负责人信息 证件类型:请选择主体负责人个人有效证件。 选择对应的证件上传彩色扫描件,扫描件要求请参见电子版证件资料要求。 即主体负责人信息,一般情况下必须填写法定代表人。 同一个法定代表人有多家公司需要备案时,法定代表人的联系方式需保持一致。 部分省市的管局要求,主体负责人的手机号码归属地需要与备案选择的地域保持一致。如果不一致,请更换其他号码使用,并确保:手机号码真实、有效,为本人所有;手机号码的归属地可查询。 相关链接: 主体负责人必须为法人吗? 办公电话问题 备案联系方式填写要求 负责人姓名:请填写个人身份有效证件上的姓名。 证件号码:系统会根据上传的证件自动识别证件号码,请检查号码的正确性。 证件是否长期有效:请按实际情况选择。 证件有效期起始日期:如果证件类型选择身份证,请填写主体负责人的个人身份证上的起始日期。 手机号:请填写真实联系电话,并确保电话畅通。主体负责人手机号码将用于接收工信部备案结果的通知,请准确填写。 应急电话:必须真实、有效,且是备案主体长期使用的号码,不能填写其他公司的电话。 请确保填写的应急电话唯一,没有重复给其他单位备案使用过。 电子邮件地址:请填写主体负责人真实、有效的邮箱地址。主体负责人邮箱将用于接收工信部备案结果的通知以及备案密码的发放,请准确填写。 请确保填写的邮箱地址唯一,没有重复给其他单位备案使用过。 图4 变更主体信息 变更互联网信息:根据实际情况选择对应网站或APP,单击“编辑”,修改变更项,然后单击“保存”。 不需变更的项请不要修改。例如:您需要修改网站名称,只需在“网站名称”栏录入新名称,其他无变动的信息不做任何修改。 网站信息 网站名称:个人网站、企业网站名称的具体要求,请参见网站名称要求。 网站IP:备案服务器的公网IP地址。 您可以登录华为云控制台,查询备案资源的公网IP地址。如果是使用备案授权码备案,需填写生成备案授权码的弹性云服务器公网IP地址。 如果只有一个IP地址,请参见单个IP怎么填写IP地址段起始。 网站服务内容:网站内容必须与主办单位性质相符。 服务类型:默认展示“网站”。 网站语言:指网站内容使用的主要语言。请根据实际情况进行选择,不建议多选。 示例:网站内容的主要语言为中文,部分插件为英文,此时“语言”选择“中文”。 前置审批内容:若包含“前置或专项审批内容类型”中的项目,请上传相关许可证件或咨询备案所在省主管部门。若不包含相关类型内容,前置审批项不填。 备注:请填写备案审核通过后,网站实际开办的内容。 网站负责人信息:指备案系统网站信息中的负责人,也是网站的主要负责人,单位备案必须为单位内员工,可填法定代表人或单位内其他网站建设管理者;个人备案必须为备案主体本人。 如果网站负责人和主体负责人是同一个人,请勾选“复用**信息”。反之,请勾选“填写新负责人”,并填写网站负责人信息,此时网站负责人和主体负责人的电话、邮箱不能相同。详情请参见备案联系方式填写要求。 网站负责人可以不是公司法定代表人。具体请参见网站负责人必须为法人吗? 如需添加多个网站,在一个网站信息填写完后,单击“继续添加网站”。更多请参见多域名如何提交备案。 APP信息 APP名称:同一主体下APP名称唯一(同一主体下不同APP名称不可重复),即要求APP备案名称为下载安装APP后显示在图标下面的名称。不同主体下的APP名称可以相同。不同运行平台下的同一款APP名称应保持一致。 首页地址:指APP首页地址,非必填项。 APP服务内容:选择APP实际服务内容,APP内容必须与主办单位性质相符。APP服务内容分类具体请参考APP服务内容分类目录。 服务类型:默认展示“APP应用”。 语言:指APP内容使用的主要语言。请根据实际情况进行选择,不建议多选。 示例:APP内容的主要语言为中文,部分插件为英文,此时“语言”选择“中文”。 前置审批内容:若包含“前置或专项审批内容类型”中的项目,请上传相关许可证件或咨询备案所在省主管部门。若不包含相关类型内容,前置审批项不填。 备注:请填写备案审核通过后,APP实际开办的内容。 APP特征信息 APP图标文件:上传APP图标,支持png、jpg、jpeg。图标大小推荐在100K以内。 是否提供和应用SDK服务:如果使用SDK服务,需要填写SDK服务厂商和类型等。可以添加多个SDK服务信息。 接入及平台信息填写方式 导入方式:选择手动输入或批量导入。域名最大导入数量为20个。批量导入模板请下载APP备案批量导入数据表模板。 域名信息 :域名不能为空,可以添加多个域名。 APP支持二到四级域名备案,可填写二级域名(即主域名,如huaweicloud.com)、三级域名(如a.huaweicloud.com)、四级域名(如b.a.huaweicloud.com)。域名实名认证信息必须与备案主体一致。 IP和和域名信息:填写域名解析到服务器上的所有IP地址。 支持填写ipv4、ipv6。 ipv4格式:XXX.XXX.XXX.XXX ipv6格式:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX 如果使用IP段,按照分配IP段填写“起始IP-终止IP”。 平台信息 选择平台:请按照实际APP上架平台选择平台类型。 域名:根据APP在平台上运行时访问后台服务器使用的域名进行选择。 APP包名、公钥、MD5签名值:填写每个运行平台的APP包名、公钥、MD5签名值。APP包名、公钥、MD5签名值具体请参考APP特征信息及其获取方式。 负责人信息:指备案系统APP信息中的负责人,也是APP的主要负责人,单位备案必须为单位内员工,可填法定代表人或单位内其他APP建设管理者;个人备案必须为备案主体本人。 如果APP负责人和主体负责人是同一个人,请勾选“选择**负责人”。反之,请勾选“填写新负责人”,并填写负责人信息,具体请参考表 主体信息参数说明填写。此时APP负责人和主体负责人的电话、邮箱不能相同。详情请参见备案联系方式填写要求。 如需添加多个APP,在一个APP信息填写完后,单击“继续添加互联网信息”。 上传资料。 根据页面提示上传证件照片或证件彩色扫描件。 主体信息资料、互联网信息资料的详细介绍,请参见准备备案材料。 前置审批文件:需要提供前置审批文件的行业,请参见前置审批。 域名实名认证截图:请参见域名实名认证的信息如何获取。 域名证书:请参见域名证书如何获取。 APP涉诈风险自评估报告:部分省份管局要求,APP备案需上传APP涉诈风险自评估报告。 广东管局《互联网信息服务备案承诺书》:根据广东省通信管理局要求,自2021年6月21日起,所有提交至广东省管局的ICP备案申请(非经营性互联网信息服务备案),均需要签署《互联网信息服务备案承诺书》。详情请参见互联网信息服务备案承诺书。 其他证件:指专项审批类的资料或批文。如金融类企业的金融业务许可证、保险业务许可证,医药类企业的医药备案文件等。请根据企业经营范围判断网站是否涉及其他证件的上传,如不涉及,不需要上传。 图5 上传资料 更多关于上传资料的常见问题,请参见上传资料与真实性核验。 真实性核验。 单击“去核验”,网站或APP负责人根据APP页面提示完成人脸识别。其中: 背景必须为白色背景,面部无遮挡,请确保网站或APP负责人本人操作。 如核验后页面提示“您的真实性核验未通过”需要单击页面下方“重新核验”按钮重新进行视频核验。 如核验后页面提示“恭喜您已通过真实性核验”单击页面下方“确认使用该核验照”后继续提交初审即可。 更多关于真实性核验的常见问题,请参见上传资料与真实性核验。 自2021年6月1日起,在江苏省进行ICP备案(非经营性互联网信息服务备案)的客户,需按照“江苏省ICP备案真实性核验工作新要求”进行真实性核验。 图6 真实性核验 提交接入商初审。 确保填写信息准确无误,且真实性核验通过后,勾选“我已阅读并同意《信息安全承诺书》、《协助修改备案在线服务条款》和《互联网信息服务备案承诺书》”,单击“提交初审”。 备案信息提交后,备案专员将在1-2个工作日内进行初审,并以短信及邮件形式通知审核结果。 审核期间我们会拨打您备案信息中的联系电话进行沟通,请保持电话畅通。 如涉及备案信息修改,系统将以邮件形式发送至您在备案系统注册的邮箱,邮件内容可能包含:问题点修改建议、备案申请期间注意事项,以及需要补充哪些资料等重要信息,请注意查收并按指导安排处理。 初审通过后,华为云备案审核专员会将备案申请转交至对应管局处做最终的管局审核。 备案进度查询,请参见怎么了解备案进度。 图7 提交接入商初审 ICP备案密码:2020年8月17日起,用户新增接入不再要求输入备案密码。管局备案成功后,工信部也不再发送备案密码。 审核结果包括:通过、驳回、待完善资料。 表3 初审结果说明 审核结果 对应的订单状态 状态说明 需要执行的操作 通过 待提交管局 表示您提交的备案订单已通过初审,等待华为云备案专员提交备案资料至当地管局进行审核,如图8所示。 - 驳回 初审驳回 表示华为云备案专员已审核订单,发现提交的备案申请信息不正确(如真实性核验不通过、网站内容存在违规),不满足网站备案相关要求,如图9所示。 请单击“审核历史”栏的“审核意见”,查看初审不通过的原因,并单击右下角的“继续备案”修改备案申请,然后重新提交初审。 初审驳回的常见原因与解决方法:请参见初审驳回。 待完善资料 接入商审核为待修改 表示华为云备案专员已审核订单,发现提交的备案申请缺失材料、或填写的信息不完整,不完全满足网站备案相关要求。如图 接入商审核为待修改所示。 请单击“审核历史”栏的“审核意见”,查看具体审核意见,并单击右下角的“去修改”进一步完善备案申请,然后重新提交接入商审核。 提交后,订单状态更新为“已修改待审核”。 图8 待提交管局 图9 初审驳回 图10 接入商审核为待修改 短信核验:2020年8月17日起,所有省份的用户在提交备案申请(“取消接入”备案类型除外)后,还需要完成工信部短信核验,备案申请才能进入管局审核。 如果仅变更主体,验证码将发送至备案信息中填写的主体负责人手机号码。请在24小时内完成主体负责人手机号码的短信核验,避免备案申请被工信部系统自动退回。 如果仅变更互联网信息,验证码将发送至备案信息中填写的网站或APP负责人手机号码。请在24小时内完成网站或APP负责人手机号码的短信核验,避免备案申请被工信部系统自动退回。 如果主体和互联网信息均变更,验证码将发送至备案信息中填写的主体负责人、网站或APP负责人手机号码。请在24小时内完成这两个手机号码的短信核验,避免备案申请被工信部系统自动退回。 具体短信核验操作请参见备案短信核验。 管局审核。 备案申请提交管局后,管局审核时间为3-20个工作日,请耐心等待管局审核结果。 备案短信核验通过后,备案申请进入管局审核。审核通过后您的备案即已完成,审核结果会发送至您的短信、邮箱。 2020年8月17日起,管局备案成功后,工信部不再发送备案密码。
共100000条