华为云用户手册

  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_alias 是 String 非默认主密钥别名,取值范围为1到255个字符,满足正则匹配“^[a-zA-Z0-9:/_-]{1,255}$”,且不与系统服务创建的默认主密钥别名重名。 key_spec 否 String 密钥生成算法,默认为“AES_256”,枚举如下: AES_256 SM4 RSA_2048 RSA_3072 RSA_4096 EC_P256 EC_P384 SM2 key_usage 否 String 密钥用途,对称密钥默认为“ENCRYPT_DECRYPT”,非对称密钥默认为“SIGN_VERIFY”,枚举如下: ENCRYPT_DECRYPT SIGN_VERIFY key_description 否 String 密钥描述,取值0到255字符。 origin 否 String 密钥来源,默认为“kms”,枚举如下: kms:表示密钥材料由kms生成。 external:表示密钥材料由外部导入。 enterprise_project_id 否 String 企业多项目ID。 用户未开通企业多项目时,不需要输入该字段。 用户开通企业多项目时,创建资源可以输入该字段。若用户户不输入该字段,默认创建属于默认企业多项目ID(ID为“0”)的资源。 注意:若用户没有默认企业多项目ID(ID为“0”)下的创建权限,则接口报错。 sequence 否 String 请求消息序列号,36字节序列号。 例如:919c82d4-8046-4722-9094-35c3c6524cff keystore_id 否 String 密钥库ID,默认使用KMS默认密钥库
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 key_info KeKInfo object 密钥详细信息。 表5 KeKInfo 参数 参数类型 描述 key_id String 密钥ID。 domain_id String 用户域ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表7 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表9 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表11 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表12 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表13 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表15 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表16 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表17 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表18 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表19 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 响应示例 状态码: 200 OK。 { "keypair" : { "name" : "demo", "type" : "ssh", "public_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB...", "private_key" : "-----BEGIN RSA PRIVATE KEY-----...", "fingerprint" : "49:ef:73:2b:9b:7f:2e:0c:58:d3:e3:42:8e:28:04:3b", "user_id" : "e4f380899b1248918f3d37098dc63746" }} 状态码: 400 Error response。 { "error_code" : "KPS.XXX", "error_msg" : "XXX"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 keypair 是 CreateKeypairAction object 创建密钥对请求体请求参数。 表4 CreateKeypairAction 参数 是否必选 参数类型 描述 name 是 String SSH密钥对的名称。 新创建的密钥对名称不能和已有密钥对的名称相同。 SSH密钥对名称由英文字母、数字、下划线、中划线组成,长度不能超过64个字节 type 否 String SSH密钥对的类型。 public_key 否 String 导入公钥的字符串信息。 scope 否 String 租户级或者用户级。 user_id 否 String SSH密钥对所属的用户信息。 key_protection 否 KeyProtection object SSH密钥对私钥托管与保护。 表5 KeyProtection 参数 是否必选 参数类型 描述 private_key 否 String 导入SSH密钥对的私钥。 encryption 否 Encryption object 对私钥进行加密存储的方式。 表6 Encryption 参数 是否必选 参数类型 描述 type 否 String 取值范围:“kms”或“default”。 “default”为默认加密方式,适用于没有kms服务的局点。 “kms”为采用kms服务加密方式。 若局点没有kms服务,请填“default”。 kms_key_name 否 String kms密钥的名称。 若“type”为“kms”,则必须填入kms服务密钥名称。
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 keypair CreateKeypairResp object SSH密钥对信息详情。 表8 CreateKeypairResp 参数 参数类型 描述 name String SSH密钥对的名称。 type String SSH密钥对的类型。 public_key String SSH密钥对对应的publicKey信息。 private_key String SSH密钥对对应的privateKey信息 创建SSH密钥对时,响应中包括private_key的信息。 导入SSH密钥对时,响应中不包括private_key的信息。 fingerprint String SSH密钥对应指纹信息。 user_id String SSH密钥对所属的用户信息。 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 key_id String 密钥ID。 plain_text String DEK明文16进制,两位表示1byte。 cipher_text String DEK密文16进制,两位表示1byte。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 key_spec 否 String 指定生成的密钥bit位长度。有效值:AES_256、AES_128。 AES_256:表示256比特的对称密钥。 AES_128:表示128比特的对称密钥。 说明: datakey_length和key_spec二选一。 若datakey_length和key_spec都为空,默认生成256bit的密钥。 若datakey_length和key_spec都指定了值,仅datakey_length生效。 datakey_length 否 String 密钥bit位长度。取值为8的倍数,取值范围为8~8192。 说明: datakey_length和key_spec二选一。 若datakey_length和key_spec都为空,默认生成256bit的密钥。 若datakey_length和key_spec都指定了值,仅datakey_length生效。 sequence 否 String 请求消息序列号,36字节序列号。 例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 grant_id String 授权ID,64字节。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求示例 授权给用户"13gg44z4g2sglzk0egw0u726zoyzvrs8"ID为 "0d0466b0-e727-4d9c-b35d-f84bb474a37f"的密钥操作权限,授权操作为查询密钥、创建数据密钥、加密数据密钥。 { "key_id" : "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "operations" : [ "describe-key", "create-datakey", "encrypt-datakey" ], "grantee_principal" : "13gg44z4g2sglzk0egw0u726zoyzvrs8", "grantee_principal_type" : "user", "retiring_principal" : "13gg44z4g2sglzk0egw0u726zoyzvrs8"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 grantee_principal 是 String 被授权用户ID,1~64字节,满足正则匹配“^[a-zA-Z0-9]{1,64}$”。 例如:0d0466b00d0466b00d0466b00d0466b0 operations 是 Array of strings 授权允许的操作列表。 有效的值:“create-datakey”,“create-datakey-without-plaintext”,“encrypt-datakey”,“decrypt-datakey”,“describe-key”,“create-grant”,“retire-grant”,“encrypt-data”,“decrypt-data”。 有效值不能仅为“create-grant”。 “create-datakey” 创建数据密钥 “create-datakey-without-plaintext” 创建不含明文数据密钥 “encrypt-datakey” 加密数据密钥 “decrypt-datakey” 解密数据密钥 “describe-key” 查询密钥信息 “retire-grant” 退役授权 “encrypt-data” 加密数据 “decrypt-data” 解密数据 name 否 String 授权名称,取值1到255字符,满足正则匹配“^[a-zA-Z0-9:/_-]{1,255}$”。 retiring_principal 否 String 可退役授权的用户ID,1~64字节,满足正则匹配“^[a-zA-Z0-9]{1,64}$”。 例如:0d0466b00d0466b00d0466b00d0466b0 grantee_principal_type 否 String 授权类型。有效值:“user”,“domain”。默认值为“user”。 sequence 否 String 请求消息序列号,36字节序列号。 例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 key_spec 否 String 指定生成的密钥bit位长度。有效值:AES_256、AES_128。 AES_256:表示256比特的对称密钥。 AES_128:表示128比特的对称密钥。 说明: datakey_length和key_spec二选一。 若datakey_length和key_spec都为空,默认生成256bit的密钥。 若datakey_length和key_spec都指定了值,仅datakey_length生效。 datakey_length 否 String 密钥bit位长度。取值为8的倍数,取值范围为8~8192。 说明: datakey_length和key_spec二选一。 若datakey_length和key_spec都为空,默认生成256bit的密钥。 若datakey_length和key_spec都指定了值,仅datakey_length生效。 sequence 否 String 请求消息序列号,36字节序列号。 例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 key_id String 密钥ID。 cipher_text String DEK密文16进制,两位表示1byte。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求示例 删除ID为"0d0466b0-e727-4d9c-b35d-f84bb474a37f"的密钥中ID为”7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d“的授权。 { "key_id" : "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "grant_id" : "7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d"}
  • 功能介绍 功能介绍:退役授权,表示被授权用户不再具有授权密钥的操作权。 例如:用户A授权用户B可以操作密钥A/key,同时授权用户C可以撤销该授权, 那么用户A、B、C均可退役该授权,退役授权后,用户B不再可以使用A/key。 须知: 可执行退役授权的主体包括: 创建授权的用户; 授权中retiring_principal指向的用户; 当授权的操作列表中包含retire-grant时,grantee_principal指向的用户。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 grant_id 是 String 授权ID,64字节,满足正则匹配“^[A-Fa-f0-9]{64}$”。 例如:7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d sequence 否 String 请求消息序列号,36字节序列号。例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表5 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表7 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表9 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表11 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表13 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表14 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表15 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表16 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表17 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 sequence 否 String 请求消息序列号,36字节序列号。 例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 key_id String 密钥ID key_state String 密钥状态: 2为启用状态 3为禁用状态 4为计划删除状态 5为等待导入状态 7为冻结状态 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 响应参数 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error ErrorDetail object 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表5 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表7 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表9 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表11 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表13 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表14 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表15 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表16 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表17 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求示例 撤销ID为"0d0466b0-e727-4d9c-b35d-f84bb474a37f"的密钥中ID为“7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d”的授权。 { "key_id" : "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "grant_id" : "7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 key_id 是 String 密钥ID,36字节,满足正则匹配“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$”。 例如:0d0466b0-e727-4d9c-b35d-f84bb474a37f。 grant_id 是 String 授权ID,64字节,满足正则匹配“^[A-Fa-f0-9]{64}$”。 例如:7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d sequence 否 String 请求消息序列号,36字节序列号。例如:919c82d4-8046-4722-9094-35c3c6524cff
  • 响应参数 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 502 表15 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表16 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息 状态码: 504 表17 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表18 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码 error_msg String 错误请求返回的错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 keypair_name 是 String SSH密钥对的名称。 server 是 EcsServerInfo object 需要绑定密钥对的虚拟机信息。 表4 EcsServerInfo 参数 是否必选 参数类型 描述 id 是 String 需要绑定(替换或重置)SSH密钥对的虚拟机id。 auth 否 Auth object 可选字段,鉴权认证类型。替换时需要该参数,重置时不需要该参数。 disable_password 否 Boolean true:禁用虚拟机的ssh登录。 false:不禁用虚拟机的ssh登录。 表5 Auth 参数 是否必选 参数类型 描述 type 否 String 取值为枚举类型。 key 否 String type为枚举值password时,key表示密码; type为枚举值keypair时,key表示私钥;
  • 请求示例 绑定名称为”newkeypair“的密钥对至ID为”d76baba7-ef09-40a2-87ff-3eafec0696e7“的虚拟机,在开机状态下绑定。 { "keypair_name" : "newkeypair", "server" : { "id" : "d76baba7-ef09-40a2-87ff-3eafec0696e7", "auth" : { "type" : "keypair", "key" : "-----BEGINRSAPRIVATEKEY-----\nM..." } }} 绑定名称为”newkeypair“的密钥对至ID为”d76baba7-ef09-40a2-87ff-3eafec0696e7“的虚拟机,在关机状态下绑定。 { "keypair_name" : "newkeypair", "server" : { "id" : "d76baba7-ef09-40a2-87ff-3eafec0696e7" }}
  • 加密密钥管理 权限 对应API接口 授权项(Action) 依赖的授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 创建密钥 POST /v1.0/{project_id}/kms/create-key kms:cmk:create - √ √ 启用密钥 POST /v1.0/{project_id}/kms/enable-key kms:cmk:enable - √ √ 禁用密钥 POST /v1.0/{project_id}/kms/disable-key kms:cmk:disable - √ √ 计划删除密钥 POST /v1.0/{project_id}/kms/schedule-key-deletion kms:cmk:update - √ √ 取消计划删除密钥 POST /v1.0/{project_id}/kms/cancel-key-deletion kms:cmk:update - √ √ 查询密钥列表 POST /v1.0/{project_id}/kms/list-keys kms:cmk:list - √ √ 查询密钥信息 POST /v1.0/{project_id}/kms/describe-key kms:cmk:get - √ √ 创建随机数 POST /v1.0/{project_id}/kms/gen-random kms:cmk:generate - √ √ 创建数据密钥 POST /v1.0/{project_id}/kms/create-datakey kms:dek:create - √ √ 创建不含明文数据密钥 POST /v1.0/{project_id}/kms/create-datakey-without-plaintext kms:dek:create - √ √ 加密数据密钥 POST /v1.0/{project_id}/kms/encrypt-datakey kms:dek:crypto - √ √ 解密数据密钥 POST /v1.0/{project_id}/kms/decrypt-datakey kms:dek:crypto - √ √ 查询实例数 GET /v1.0/{project_id}/kms/user-instances kms:cmk:getInstance - √ √ 查询配额 GET /v1.0/{project_id}/kms/user-quotas kms:cmk:getQuota - √ √ 修改密钥别名 POST /v1.0/{project_id}/kms/update-key-alias kms:cmk:update - √ √ 修改密钥描述 POST /v1.0/{project_id}/kms/update-key-description kms:cmk:update - √ √ 创建授权 POST /v1.0/{project_id}/kms/create-grant kms:grant:create - √ √ 撤销授权 POST /v1.0/{project_id}/kms/revoke-grant kms:grant:revoke - √ √ 退役授权 POST /v1.0/{project_id}/kms/retire-grant kms:grant:retire - √ √ 查询授权列表 POST /v1.0/{project_id}/kms/list-grants kms:grant:list - √ √ 查询可退役授权列表 POST /v1.0/{project_id}/kms/list-retirable-grants kms:grant:list - √ √ 加密数据 POST /v1.0/{project_id}/kms/encrypt-data kms:cmk:crypto - √ √ 解密数据 POST /v1.0/{project_id}/kms/decrypt-data kms:cmk:crypto - √ √ 获取密钥导入参数 POST /v1.0/{project_id}/kms/get-parameters-for-import kms:cmk:getMaterial - √ √ 导入密钥材料 POST /v1.0/{project_id}/kms/import-key-material kms:cmk:importMaterial - √ √ 删除密钥材料 POST /v1.0/{project_id}/kms/delete-imported-key-material kms:cmk:deleteMaterial - √ √ 开启密钥轮换 POST /v1.0/{project_id}/kms/enable-key-rotation kms:cmk:enableRotation - √ √ 修改密钥轮换周期 POST /v1.0/{project_id}/kms/update-key-rotation-interval kms:cmk:updateRotation - √ √ 关闭密钥轮换 POST /v1.0/{project_id}/kms/disable-key-rotation kms:cmk:disableRotation - √ √ 查询密钥轮换状态 POST /v1.0/{project_id}/kms/get-key-rotation-status kms:cmk:getRotation - √ √ 查询密钥实例 POST /v1.0/{project_id}/kms/resource_instances/action kms:cmkTag:listInstance - √ √ 查询密钥标签 GET /v1.0/{project_id}/kms/{key_id}/tags kms:cmkTag:list - √ √ 查询项目标签 GET /v1.0/{project_id}/kms/tags kms:cmkTag:list - √ √ 批量添加删除密钥标签 POST /v1.0/{project_id}/kms/{key_id}/tags/action kms:cmkTag:batch - √ √ 添加密钥标签 POST /v1.0/{project_id}/kms/{key_id}/tags kms:cmkTag:create - √ √ 删除密钥标签 POST /v1.0/{project_id}/kms/{key_id}/tags/{key} kms:cmkTag:delete - √ √ 父主题: 权限和授权项
  • 场景描述 在大量数据加解密的场景,您的程序会经常使用到对数据密钥的加解密。 大量数据加密的流程如下: 在KMS中创建一个用户主密钥。 调用KMS的“create-datakey”接口创建数据加密密钥。用户得到一个明文的数据加密密钥和一个密文的数据加密密钥。其中密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。 用户使用明文的数据加密密钥来加密明文文件,生成密文文件。 用户将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 大量数据解密的流程如下: 用户从持久化存储设备或服务中读取密文的数据加密密钥和密文文件。 用户调用KMS的“decrypt-datakey”接口,使用对应的用户主密钥(即生成密文的数据加密密钥时所使用的用户主密钥)来解密密文的数据加密密钥,取得明文的数据加密密钥。 若对应的用户主密钥被误删除,会导致解密失败。因此,需要妥善管理好用户主密钥。 用户使用明文的数据加密密钥来解密密文文件。
  • 操作步骤 创建用户主密钥。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/create-key 详情请参见创建密钥。 别名“/default”为服务默认主密钥的后缀名,由服务自动创建。因此用户创建的主密钥别名不能与服务默认主密钥的别名相同,即后缀名不能为“/default”。 请求示例 POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/create-key {endpoint}信息请从地区和终端节点获取。 Body: { "key_alias": "test"} 响应示例 { "key_info": { "key_id": "bb6a3d22-dc93-47ac-b5bd-88df7ad35f1e", "domain_id": "b168fe00ff56492495a7d22974df2d0b" }} 创建数据密钥。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/create-datakey 详情请参见创建数据密钥。 请求示例 POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/create-datakey {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "datakey_length": "512"} 响应示例 { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "plain_text": "8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72A5A17F17B5EF0D525872C59ECEB72948AF85E18427F8BE0D46545C979306C08D", "cipher_text": "020098009EEAFCE122CAA5927D2E020086F9548BA1675FDB022E4ECC01B96F2189CF4B85E78357E73E1CEB518DAF7A4960E7C7DE8885ED3FB2F1471ABF400119CC1B20BD3C4A9B80AF590EFD0AEDABFDBB0E2B689DA7B6C9E7D3C5645FCD9274802586BE63779471F9156F2CDF07CD8412FFBE9230643034363662302D653732372D346439632D623335642D6638346262343734613337660000000045B05321483BD9F9561865EE7DFE9BE267A42EB104E98C16589CE46940B18E52"} 加密数据密钥。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/encrypt-datakey 详情请参见加密数据密钥。 请求示例 POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/encrypt-datakey {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "plain_text": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F5A5FD42D16A20302798EF6ED309979B43003D2320D9F0E8EA9831A92759FB4B", "datakey_plain_length": "64"} 响应示例 { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "cipher_text": "020098005273E14E6E8E95F5463BECDC27E80AF820B9FC086CB47861899149F67CF07DAFF2810B7D27BDF19AB7632488E0926A48DB2FC85BEA905119411B46244C5E6B8036C60A0B0B4842FFE6994518E89C19B1C1D688D9043BCD6053EA7BA0652642CE59F2543C80669139F4F71ABB9BD9A24330643034363662302D653732372D346439632D623335642D66383462623437346133376600000000D34457984F9730D57F228C210FD22CA6017913964B21D4ECE45D81092BB9112E", "datakey_length": "64"} 解密数据密钥。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/decrypt-datakey 详情请参见解密数据密钥。 请求示例 POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/decrypt-datakey {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "datakey_cipher_length": "64", "cipher_text": "020098005273E14E6E8E95F5463BECDC27E80AF820B9FC086CB47861899149F67CF07DAFF2810B7D27BDF19AB7632488E0926A48DB2FC85BEA905119411B46244C5E6B8036C60A0B0B4842FFE6994518E89C19B1C1D688D9043BCD6053EA7BA0652642CE59F2543C80669139F4F71ABB9BD9A24330643034363662302D653732372D346439632D623335642D66383462623437346133376600000000D34457984F9730D57F228C210FD22CA6017913964B21D4ECE45D81092BB9112E"} 响应示例 { "data_key": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "datakey_length": "64", "datakey_dgst": "F5A5FD42D16A20302798EF6ED309979B43003D2320D9F0E8EA9831A92759FB4B"}
  • 操作步骤 查询密钥列表。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/list-keys 详情请参见“查询密钥列表”。 请求示例 POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/list-keys {endpoint}信息请从地区和终端节点获取。 Body: { "limit": "2", "marker": "1" } 响应示例 { "keys": [ "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "2e258389-bb1e-4568-a1d5-e1f50adf70ea" ], "key_details": [ { "key_id":"0d0466b0-e727-4d9c-b35d-f84bb474a37f", "domain_id":"00074811d5c27c4f8d48bb91e4a1dcfd", "key_alias":"caseuirpr", "realm":"aaaa", "key_description":"123", "creation_date":"1502799822000", "scheduled_deletion_date":"", "key_state":"2", "default_key_flag":"0", "key_type":"1", "expiration_time":"1501578672000", "origin":"kms" }, { "key_id":"2e258389-bb1e-4568-a1d5-e1f50adf70ea", "domain_id":"00074811d5c27c4f8d48bb91e4a1dcfd", "key_alias":"casehvniz", "realm":"aaaa", "key_description":"234", "creation_date":"1502799820000", "scheduled_deletion_date":"", "key_state":"2", "default_key_flag":"0", "key_type":"1", "expiration_time":"1501578673000", "origin":"kms" } ], "next_marker": "", "truncated": "false", "total":2 } 查询密钥信息。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/describe-key 详情请参见“查询密钥信息”。 请求示例 POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/describe-key {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f" } 响应示例 { "key_info": { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "domain_id": "b168fe00ff56492495a7d22974df2d0b", "key_alias": "kms_test", "realm": "aaa", "key_description": "", "creation_date": "1472442386000", "scheduled_deletion_date": "", "key_state": "2", "default_key_flag": "0", "key_type": "1", "expiration_time":"1501578672000", "origin":"kms", "key_rotation_enabled":"false", "sys_enterprise_project_id ": "0", } } 查询密钥实例。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/resource_instances/action 详情请参见“查询密钥实例”。 请求示例 POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms//resource_instances/action {endpoint}信息请从地区和终端节点获取。 Body: { "offset": "100", "limit": "100", "action": "filter", "matches":[ { "key": "resource_name", "value": "resource1" } ], "tags": [ { "key": "key1", "values": [ "value1", "value2" ] } ] } 响应示例 { "resources" : [ { "resource_id" : "90c03e67-5534-4ed0-acfa-89780e47a535", "resource_detail" : [ { "key_id" : "90c03e67-5534-4ed0-acfa-89780e47a535", "domain_id" : "4B688Fb77412Aee5570E7ecdbeB5afdc", "key_alias" : "tagTest_xmdmi", "key_description" : "123", "creation_date" : 1521449277000, "scheduled_deletion_date" : "", "key_state" : 2, "default_key_flag" : 0, "key_type" : 1, "key_rotation_enabled" : false, "expiration_time" : "", "origin" : "kms", "sys_enterprise_project_id" : "0", "realm" : "cn-north-7" } ], "resource_name" : "tagTest_xmdmi", "tags" : [ { "key" : "key", "value" : "testValue!" }, { "key" : "haha", "value" : "testValue" } ] } ], "total_count" : 1} 查询密钥标签。 接口相关信息 URI格式:GET /v1.0/{project_id}/kms/{key_id}/tags 详情请参见“查询密钥标签”。 请求示例 GET: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/94752282-805e-4032-ada8-34966f70e02f/tags {endpoint}信息请从地区和终端节点获取。 Body: 无 响应示例 { "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value3" } ], "existTagsNum":2 }
  • 概述 欢迎使用数据加密服务(Data Encryption Workshop,DEW)。数据加密服务是一个综合的云上数据加密服务。它可以提供专属加密、密钥管理、凭据管理、密钥对管理等服务,安全可靠的为用户解决了数据安全、密钥安全、密钥管理复杂等问题。其密钥由硬件安全模块(Hardware Security Module,HSM) 保护,并与多个华为云服务集成。您也可以借此服务开发自己的加密应用。 在调用数据加密服务API之前,请确保已经充分了解数据加密服务相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
共100000条