云服务器内容精选

  • 与华为云服务配合使用 华为云服务基于信封加密技术,通过调用KMS的接口来加密云服务资源。由用户管理自己的自定义密钥,华为云服务在拥有用户授权的情况下,使用用户指定的自定义密钥对数据进行加密。 图1 华为云服务使用KMS加密原理 加密流程说明如下: 用户需要在KMS中创建一个自定义密钥。 华为云服务调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。 密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。 华为云服务使用明文的数据加密密钥来加密明文文件,得到密文文件。 华为云服务将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 用户通过华为云服务下载数据时,华为云服务通过KMS指定的自定义密钥对密文的数据加密密钥进行解密,并使用解密得到的明文的数据加密密钥来解密密文数据,然后将解密后的明文数据提供给用户下载。 表1 使用KMS加密的云服务列表 服务名称 如何使用 对象存储服务 对象存储服务支持普通方式和服务端加密方式上传和下载对象。当用户使用服务端加密方式上传对象时,数据会在服务端加密成密文后安全地存储在对象存储服务中;用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。对象存储服务支持KMS托管密钥的服务端加密方式(即SSE-KMS加密方式),该加密方式是通过KMS提供密钥的方式进行服务端加密。 用户如何使用对象存储服务的SSE-KMS加密方式上传对象,具体操作请参见《对象存储服务控制台指南》。 云硬盘 在创建云硬盘时,用户启用云硬盘的加密功能,系统将使用用户主密钥产生的数据密钥对磁盘进行加密,则在使用该云硬盘时,存储到云硬盘的数据将会自动加密。 用户如何使用云硬盘加密功能,具体操作请参见《云硬盘用户指南》 。 镜像服务 用户通过外部镜像文件创建私有镜像时,可启用私有镜像加密功能,选择KMS提供的用户主密钥对镜像进行加密。 用户如何使用镜像服务的私有镜像加密功能,具体操作请参见《镜像服务用户指南》 。 弹性文件服务 用户通过弹性文件服务创建文件系统时,选择KMS提供的用户主密钥对文件系统进行加密,当使用该文件系统时,存储到文件系统的文件将会自动加密。 用户如何使用弹性文件服务的文件系统加密功能,具体操作请参见《弹性文件服务用户指南》。 云数据库RDS 在购买数据库实例时,用户启用数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 用户如何使用云数据库RDS的磁盘加密功能,具体操作请参见《云数据库RDS用户指南》。 文档数据库服务 在购买文档数据库实例时,用户启用文档数据库实例的磁盘加密功能,选择KMS提供的用户主密钥对文档数据库实例的磁盘进行加密,选择磁盘加密后会提高数据的安全性。 用户如何使用文档数据库的磁盘加密功能,具体操作请参见《文档数据库服务快速入门》。
  • 与用户的应用程序配合使用 当您的应用程序需要对明文数据进行加密时,可通过调用KMS的接口来创建数据加密密钥,再使用数据加密密钥将明文数据进行加密,得到密文数据并进行存储。同时,用户的应用程序调用KMS的接口创建对应用户主密钥,对数据加密密钥进行加密,得到密文的数据加密密钥并进行存储。 基于信封加密技术,用户主密钥存储在KMS中,用户的应用程序只存储密文的数据加密密钥,仅在需要使用时调用KMS解密数据加密密钥。 加密流程说明如下: 应用程序调用KMS的“create-key”接口创建一个自定义密钥。 应用程序调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。 密文的数据加密密钥是由1创建的用户主密钥加密明文的数据加密密钥生成的。 应用程序使用明文的数据加密密钥来加密明文文件,生成密文文件。 应用程序将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 具体操作请参见《数据加密服务API参考》。
  • 约束条件 用户最多可创建100个自定义密钥,不包含默认密钥。创建副本密钥会占用该区域自定义密钥配额。 创建的对称密钥使用的是AES算法密钥,AES-256密钥可用于小量数据的加解密或用于加解密数据密钥,HMAC密钥用于数据完成性校验。 创建的非对称密钥使用的是RSA密钥或ECC密钥,RSA密钥可用于加解密、数字签名及验签,ECC密钥仅用于数字签名及验签。 因为默认密钥的别名后缀为“/default”,所以用户创建的密钥别名后缀不能为“/default”。 数据加密服务密钥通过接口每月可免费调用次数20000次。
  • 相关操作 对象存储服务中对象的服务端加密方法,具体请参见《对象存储服务控制台指南》的“使用服务端加密方式上传文件”章节。 云硬盘中数据加密方法,具体请参见《云硬盘用户指南》的“购买云硬盘”章节。 私有镜像的加密方法,具体请参见《镜像服务用户指南》的“加密镜像”章节。 云数据库中数据库实例的磁盘加密方法,具体请参见《云数据库RDS快速入门》的“购买实例”章节。 创建DEK、不含明文的DEK方法,具体请参见《数据加密服务API参考》的“创建数据密钥”与“创建不含明文数据密钥”章节。 用户应用程序的DEK加解密方法,具体请参见《数据加密服务API参考》的“加密数据密钥”与“解密数据密钥”章节。
  • 解决方案 用户需要在KMS中创建一个用户主密钥。 用户计算文件的摘要,调用KMS的“sign”接口对摘要进行签名。用户得到摘要的签名结果。将摘要签名结果和密钥ID与文件一同传输或者存储。签名流程如图 签名流程所示。 图1 签名流程 用户需要使用文件时,先进行完整性校验,确保文件未被篡改。 用户重新计算文件的摘要,连同签名值调用KMS的“verify”接口对摘要进行验签。用户得到验签结果。如果能正常验签,则表明文件未被篡改。验签流程如图 验签流程所示。 图2 验签流程
  • 密钥区域性 KMS通过密钥区域性,实现密钥跨区域使用。每组用户主密钥与副本密钥具有相同的密钥材料,因此可以实现单区域的加密数据在不同区域进行解密,解决因跨区导致的无法解密。 您可以独立管理多个区域的密钥,副本密钥同样支持创建密钥别名、启用、禁用、标签、授权、在线加解密。副本密钥的轮换无法自主设置,需按照主密钥的轮换设置进行同步轮换。 密钥区域性原理如图 密钥区域性所示。 图1 密钥区域性 表5 密钥区域性使用场景 使用场景 说明 灾备场景 如果密钥所在区域出现欠费资源冻结或异常无法处理数据解密,替换使用另一区域中的副本密钥进行正常数据处理,保证业务不中断。 跨区域签名验签 如果由于业务需要,客户业务处于不同区域,可通过不同区域密钥实现签名验签解密,提升业务对接高效性。
  • 专属密钥库 KMS通过专属密钥库支持HYOK功能,帮助用户完全自主可控名下的用户主密钥,用户主密钥不脱离加密机,并且密码运算完全在加密机中完成。与默认密钥库不同,用户可以通过专属加密集群随时对密钥进行全生命周期管理。 专属加密实例基础版、铂金版(国内)均支持HYOK功能。 HYOK(Hold Your Own Key)是指用户可以完全控制其密钥,密钥始终归用户所有。 专属密钥库操作可参见激活集群以及创建密钥库。专属密钥库支持的算法类型如表 专属密钥库的密钥算法类型所示。 表4 专属密钥库的密钥算法类型 密钥类型 算法类型 密钥规格 说明 适用场景 对称密钥 AES AES_256 AES对称密钥 数据的加解密 加解密数据密钥 说明: 小量数据的加解密可通过控制台在线工具进行。 大量数据的加解密需要调用API接口进行。 对称密钥 SM4 SM4 国密SM4对称密钥 数据的加解密 加解密数据密钥 非对称密钥 RSA RSA_2048 RSA_3072 RSA_4096 RSA非对称密钥 数字签名和验签 数据的加解密 说明: 非对称密钥适用于签名和验签场景,加密数据效率不高,加解密数据推荐使用对称密钥。 ECC EC_P256 EC_P384 椭圆曲线密码,使用NIST推荐的椭圆曲线 数字签名和验签 非对称密钥 SM2 SM2 国密SM2非对称密钥 数字签名和验签 小量数据的加解密
  • KMS支持的密钥算法 KMS创建的对称密钥使用的是AES、SM4加解密算法。KMS创建的非对称密钥支持RSA、ECC、SM2算法。 表2 KMS支持的密钥算法类型 密钥类型 算法类型 密钥规格 说明 适用场景 对称密钥 AES AES_256 AES对称密钥 数据的加解密 加解密数据密钥 说明: 小量数据的加解密可通过控制台在线工具进行。 大量数据的加解密需要调用API接口进行。 对称密钥 SM4 SM4 国密SM4对称密钥 数据的加解密 加解密数据密钥 摘要密钥 SHA HMAC_256 HMAC_384 HMAC_512 摘要密钥 数据防篡改 数据完整性校验 摘要密钥 SM3 HMAC_SM3 国密SM3摘要密钥 数据防篡改 数据完整性校验 非对称密钥 RSA RSA_2048 RSA_3072 RSA_4096 RSA非对称密钥 数字签名和验签 数据的加解密 说明: 非对称密钥适用于签名和验签场景,加密数据效率不高,加解密数据推荐使用对称密钥。 ECC EC_P256 EC_P384 椭圆曲线密码,使用NIST推荐的椭圆曲线 数字签名和验签 非对称密钥 SM2 SM2 国密SM2非对称密钥 数字签名和验签 小量数据的加解密 通过外部导入的密钥支持的密钥包装加解密算法如表3所示。 表3 密钥包装算法说明 密钥包装算法 说明 设置 RSAES_OAEP_SHA_256 具有“SHA-256”哈希函数的OAEP的RSA加密算法。 请您根据自己的HSM功能选择加密算法。 如果您的HSM支持“RSAES_OAEP_SHA_256”加密算法,推荐使用“RSAES_OAEP_SHA_256”加密密钥材料。 须知: “RSAES_OAEP_SHA_1”加密算法已经不再安全,请谨慎选择。 RSAES_OAEP_SHA_1 具有“SHA-1”哈希函数的OAEP的RSA加密算法。 SM2_ENCRYPT 国密推荐的SM2椭圆曲线公钥密码算法。 请在支持国密的局点使用SM2加密算法。
  • 功能介绍 表1 密钥管理 功能 服务内容 密钥全生命周期管理 创建、查看、启用、禁用、计划删除、取消删除自定义密钥 修改自定义密钥的别名和描述 用户自带密钥 导入密钥、删除密钥材料 小数据加解密 在线工具加解密小数据 签名验签 消息或消息摘要的签名、签名验证 说明: 仅支持通过API调用。 密钥标签 添加、搜索、编辑、删除标签 密钥轮换 开启、修改、关闭密钥轮换周期 密钥授权 创建、撤销、查询授权 退役授权 说明: 仅支持通过API调用。 云服务加密 对象存储服务OBS加密 云硬盘服务EVS加密 镜像服务IMS加密 弹性文件服务SFS加密(SFS文件系统加密) 弹性文件服务SFS加密(SFS Turbo文件系统加密) 云数据库RDS(MySQL、PostgreSQL、SQL Server引擎)加密 文档数据库服务DDS加密 数据仓库服务DWS加密 数据加密密钥管理 创建、加密、解密数据加密密钥 说明: 仅支持通过API调用。 生成硬件真随机数 生成512bit的随机数,为加密系统提供基于硬件真随机数的密钥材料和加密参数 说明: 仅支持通过API调用。 消息认证码 生成、验证消息认证码 说明: 仅支持通过API调用。 密钥库管理 创建、禁用、删除密钥库
  • KMS支持的密钥算法类型 表1 KMS支持的密钥算法类型 密钥类型 算法类型 密钥规格 说明 用途 对称密钥 AES AES_256 AES对称密钥 小量数据的加解密或用于加解密数据密钥。 对称密钥 SM4 SM4 国密SM4对称密钥 小量数据的加解密或用于加解密数据密钥。 摘要密钥 SHA HMAC_256 HMAC_384 HMAC_512 SHA摘要密钥 数据防篡改 数据完整性校验 摘要密钥 SM3 HMAC_SM3 国密SM3摘要密钥 数据防篡改 数据完整性校验 非对称密钥 RSA RSA_2048 RSA_3072 RSA_4096 RSA非对称密钥 小量数据的加解密或数字签名。 ECC EC_P256 EC_P384 椭圆曲线密码,使用NIST推荐的椭圆曲线 数字签名 非对称密钥 SM2 SM2 国密SM2非对称密钥 小量数据的加解密或数字签名。 父主题: 密钥管理类
  • 如果自定义密钥被彻底删除,用户数据是否还可以解密? 不可以。 如果自定义密钥被彻底删除,KMS将不再保留任何该密钥的数据,使用该密钥加密的数据将无法解密;如果自定义密钥没有被彻底删除,则可以通过KMS界面取消删除自定义密钥。 如果自定义密钥是通过KMS导入的密钥,且仅删除了密钥材料,则可以将本地备份的密钥材料再次导入原来的空密钥,回收用户数据。如果密钥材料没有在本地备份,则无法回收用户数据。 父主题: 密钥管理类
  • 默认密钥如何生成? 默认密钥是自动生成的。 在用户第一次通过对应云服务使用KMS加密时,云服务自动通过密钥管理为用户创建的密钥,其别名后缀为“/default”。 默认密钥可通过密钥管理界面进行查询,不支持禁用、计划删除操作。 默认密钥托管不计费,仅收取API请求次数费用,超出免费请求次数后,超出部分会进行计费。 表1 默认主密钥列表 密钥别名 对应云服务 obs/default 对象存储服务(Object Storage Service,OBS) evs/default 云硬盘(Elastic Volume Service,EVS) ims/default 镜像服务(Image Management Service,IMS) kps/default 密钥对管理服务(Key Pair Service,KPS) csms/default 云凭据管理服务(Cloud Secret Management Service,CSMS) 父主题: 密钥管理类
  • 响应示例 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3017", "error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 401 表3 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI DELETE /v2/{project_id}/apigw/instances/{instance_id}/signs/{sign_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 sign_id 是 String 签名密钥编号