华为云用户手册

  • 功能介绍 功能介绍:退役授权,表示被授权用户不再具有授权密钥的操作权。 例如:用户A授权用户B可以操作密钥A/key,同时授权用户C可以撤销该授权, 那么用户A、B、C均可退役该授权,退役授权后,用户B不再可以使用A/key。 须知: 可执行退役授权的主体包括: 创建授权的用户; 授权中retiring_principal指向的用户; 当授权的操作列表中包含retire-grant时,grantee_principal指向的用户。
  • 响应参数 状态码: 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 错误请求返回的错误信息
  • 请求参数 表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
  • 响应参数 状态码: 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 错误请求返回的错误信息
  • 请求参数 表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 错误请求返回的错误信息
  • 请求示例 撤销ID为"0d0466b0-e727-4d9c-b35d-f84bb474a37f"的密钥中ID为“7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d”的授权。 { "key_id" : "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "grant_id" : "7c9a3286af4fcca5f0a385ad13e1d21a50e27b6dbcab50f37f30f93b8939827d"}
  • 响应参数 状态码: 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之前,请确保已经充分了解数据加密服务相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 请求消息 创建SSH密钥对时,只需要提交SSH密钥对的name属性。导入SSH密钥对时,才需要提交public_key属性。 表2 请求参数 参数 是否必选 参数类型 描述 keypair 是 Object 创建或导入的SSH密钥对的信息,详情请参见表3。 表3 keypair字段数据结构说明 参数 是否必选 参数类型 描述 public_key 否 String 导入公钥的字符串信息。 name 是 String SSH密钥对的名称。 新创建的密钥对名称不能和已有密钥对的名称相同。 SSH密钥对名称由英文字母、数字、下划线、中划线组成,长度不能超过64个字节。 user_id 否 String SSH密钥对的用户ID。 key_protection 否 Object SSH密钥对私钥托管与保护,详情请参见表4。
  • 响应消息 表6 响应参数 参数 是否必选 参数类型 描述 keypair 是 Object SSH密钥对的信息,详情请参见表7。 表7 keypair字段数据结构说明 参数 是否必选 参数类型 描述 fingerprint 是 String SSH密钥对对应的指纹信息。 name 是 String SSH密钥对的名称。 public_key 是 String SSH密钥对对应的publicKey信息。 private_key 是 String SSH密钥对对应的privateKey信息。 创建SSH密钥对时,响应中包括private_key的信息。 导入SSH密钥对时,响应中不包括private_key的信息。 user_id 是 String SSH密钥对所属的用户ID。
  • 示例 创建SSH密钥对 创建SSH密钥对请求样例 { "keypair": { "name": "demo1" }} 创建SSH密钥对响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXKzohKbFOqubYNunFNsrEYlk9NEIJIFvbmTe/LTeMzFIPKM53Zu2sYr/uuNcziPkWpFchXdkD+O/Bf2ZzKaR1DYPMWss9TkaqU4RQ7CIBW7ChJF1Qzc1JPRBmKe6e8qs1QBBoS1QvXgSjbuf2Fb1yncSbphmQV8+5KA8xkxz4XdM1/gSAZZ14rJrMjgp7jCdgxWiHNcDuKxaPt+0eO8rEG/gxR7J0b9Uk53ao/xjLoKXYdLLiYUaha0fHdW3t6Lw1NdzUMmKnlLqN9O37Tbg7vM0nN4UJt0XXvM45KfnJiMx0HUKXdWkUj9cE8VBDPw/gBbQzSpJHgQFG7mNDZubN Generated-by-Nova\n", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAlys6ISmxTqrm2DbpxTbKxGJZPTRC CS Bb25k3vy03jMxSDyjO\nd2btrGK/7rjXM4j5FqRXIV3ZA/jvwX9mcymkdQ2DzFrLPU5GqlOEUOwiAVuwoSRd\nUM3NST0QZinunvKrNUAQaEtUL14Eo27n9hW9cp3Em6YZkFfPuSgPMZMc+F3TNf4E\ngGWdeKyazI4Ke4wnYMVohzXA7isWj7ftHjvKxBv4MUeydG/VJOd2qP8Yy6Cl2HSy\n4mFGoWtHx3Vt7ei8NTXc1DJip5S6jfTt+024O7zNJzeFCbdF17zOOSn5yYjMdB1C\nl3VpFI/XBPFQQz8P4AW0M0qSR4EBRu5jQ2bmzQIDAQABAoIBAFwm1s3Gi7bICec+\nOm2lhCAJUBs2UxcbKcQJd+lL2DQ1jcR9/LbfAP34SMZu2Ykp86Zw0kid3CBGzWko\nj7yeYwmUDocxxfl+USedt+hYujYXvenNsDEE9CK0Xd3ZrAQrLGFOx3G8kfo6FxvG\nDRN/lzhaorK7o5PRY+icWf6/joZ8Q96scHmm0ob5rtBkUYcek+ckf3mLVIpzzdKA\ndkSi57M78zwDA89MpVABEoO1DPVxEqrrMQZy5UnAmeGHh16mPS4qMCokPVz36pSG\nIWSqHnVKzsbxvw5Da9y69NmpSi2E1wqDaU9IzwnLyQpHnE1nXsWmxNqKTHlDBbnb\nXPGFdcECgYEAxf4IMqYBeBiq+7RVwcTcT4gpApJmywigwMFaaX35E3O53ja8hk1/\n5OCRnvK7yrt9wnWY8DIh8GPJptKzuTb/l/14L4kE1MYm7Gpho5SwXV5BqtjgjfZm\nQVNpWruXEugXALcfbHiH+peO+3AmwgIqgkOLPLxY1Duw6/miDB8bOfECgYEAw3VO\nl9edXExJvJvSzAopSNmw+ExpUZTgS3L2Pyn21QhfwNHyxPH8fNNKv0/x9ZzBn25U\nUxXTPPbLFV3cq7kfuYFW0OZkh8QjCPDkIE116E2QvacxqkBuW774xr5msfWdxpcp\nwccgWKci1vEHLtqj3RTNMFKcXtj4Qr CES 4ZsPp0CgYEAhzYYux4LWszd188r0Yxz\nOA0wlIUOlhFqVri02d4hv1sEz/Bphv5eHRwP1pDGFok8NRTCQSa7bsN27uptuksI\n+e8rqKrWFcjMxB9SVrgwSVMZXWeG0uw2oN4p0MDTRyIgs2hbmWQm2Mev6Z6JmWyJ\nQzSFXhDySN4K0NxGAiksGsECgYAJvZTXGFWtPdgG4DUXGgKIsOCS3yv4dtTerbH7\n39l/MFWlRFE242BT0CvPcOp79P3pNhRZt6K5TQs921md7THZisqKypCD+5BLZ8XW\nnkWb+BGYgfaFp4RYaiH3tZFkmPrt5KaeE5BXGq0vzP8wpJC5+cln+RX13BYzLJzL\nLr3COQKBgDJjY0qop3aSG+1tSkMJtOFdb2+qXiqaE+Wxv03SOkPx8LBz+taNz+DE\nR7THDNXSrS85WVc3ozE8hULBX12iIWpr5kb5lRaw3ZgX6wBnSSpdQu49v3nFoGJk\nUWY95pQ/BWQaX0q4KxzRVxup+7gwT5sKFXU+ktFtsGMYoDoSzbZS\n-----END RSA PRIVATE KEY-----\n", "user_id": "e4f380899b1248918f3d37098dc63746", "name": "demo123", "fingerprint": "49:ef:73:2b:9b:7f:2e:0c:58:d3:e3:42:8e:28:04:3b" }} 或 { "error_code": "KPS.XXXX", "error_msg": "XXXX"} 创建SSH密钥对并托管私钥 创建SSH密钥对并托管私钥请求样例 { "keypair": { "name": "demo2", "key_protection": { "encryption": { "type": "kms", "kms_key_name": "demo" } } }} 创建SSH密钥对并托管私钥响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXKzohKbFOqubYNunFNsrEYlk9NEIJIFvbmTe/LTeMzFIPKM53Zu2sYr/uuNcziPkWpFchXdkD+O/Bf2ZzKaR1DYPMWss9TkaqU4RQ7CIBW7ChJF1Qzc1JPRBmKe6e8qs1QBBoS1QvXgSjbuf2Fb1yncSbphmQV8+5KA8xkxz4XdM1/gSAZZ14rJrMjgp7jCdgxWiHNcDuKxaPt+0eO8rEG/gxR7J0b9Uk53ao/xjLoKXYdLLiYUaha0fHdW3t6Lw1NdzUMmKnlLqN9O37Tbg7vM0nN4UJt0XXvM45KfnJiMx0HUKXdWkUj9cE8VBDPw/gBbQzSpJHgQFG7mNDZubN Generated-by-Nova\n", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAlys6ISmxTqrm2DbpxTbKxGJZPTRCCSBb25k3vy03jMxSDyjO\nd2btrGK/7rjXM4j5FqRXIV3ZA/jvwX9mcymkdQ2DzFrLPU5GqlOEUOwiAVuwoSRd\nUM3NST0QZinunvKrNUAQaEtUL14Eo27n9hW9cp3Em6YZkFfPuSgPMZMc+F3TNf4E\ngGWdeKyazI4Ke4wnYMVohzXA7isWj7ftHjvKxBv4MUeydG/VJOd2qP8Yy6Cl2HSy\n4mFGoWtHx3Vt7ei8NTXc1DJip5S6jfTt+024O7zNJzeFCbdF17zOOSn5yYjMdB1C\nl3VpFI/XBPFQQz8P4AW0M0qSR4EBRu5jQ2bmzQIDAQABAoIBAFwm1s3Gi7bICec+\nOm2lhCAJUBs2UxcbKcQJd+lL2DQ1jcR9/LbfAP34SMZu2Ykp86Zw0kid3CBGzWko\nj7yeYwmUDocxxfl+USedt+hYujYXvenNsDEE9CK0Xd3ZrAQrLGFOx3G8kfo6FxvG\nDRN/lzhaorK7o5PRY+icWf6/joZ8Q96scHmm0ob5rtBkUYcek+ckf3mLVIpzzdKA\ndkSi57M78zwDA89MpVABEoO1DPVxEqrrMQZy5UnAmeGHh16mPS4qMCokPVz36pSG\nIWSqHnVKzsbxvw5Da9y69NmpSi2E1wqDaU9IzwnLyQpHnE1nXsWmxNqKTHlDBbnb\nXPGFdcECgYEAxf4IMqYBeBiq+7RVwcTcT4gpApJmywigwMFaaX35E3O53ja8hk1/\n5OCRnvK7yrt9wnWY8DIh8GPJptKzuTb/l/14L4kE1MYm7Gpho5SwXV5BqtjgjfZm\nQVNpWruXEugXALcfbHiH+peO+3AmwgIqgkOLPLxY1Duw6/miDB8bOfECgYEAw3VO\nl9edXExJvJvSzAopSNmw+ExpUZTgS3L2Pyn21QhfwNHyxPH8fNNKv0/x9ZzBn25U\nUxXTPPbLFV3cq7kfuYFW0OZkh8QjCPDkIE116E2QvacxqkBuW774xr5msfWdxpcp\nwccgWKci1vEHLtqj3RTNMFKcXtj4QrCES4ZsPp0CgYEAhzYYux4LWszd188r0Yxz\nOA0wlIUOlhFqVri02d4hv1sEz/Bphv5eHRwP1pDGFok8NRTCQSa7bsN27uptuksI\n+e8rqKrWFcjMxB9SVrgwSVMZXWeG0uw2oN4p0MDTRyIgs2hbmWQm2Mev6Z6JmWyJ\nQzSFXhDySN4K0NxGAiksGsECgYAJvZTXGFWtPdgG4DUXGgKIsOCS3yv4dtTerbH7\n39l/MFWlRFE242BT0CvPcOp79P3pNhRZt6K5TQs921md7THZisqKypCD+5BLZ8XW\nnkWb+BGYgfaFp4RYaiH3tZFkmPrt5KaeE5BXGq0vzP8wpJC5+cln+RX13BYzLJzL\nLr3COQKBgDJjY0qop3aSG+1tSkMJtOFdb2+qXiqaE+Wxv03SOkPx8LBz+taNz+DE\nR7THDNXSrS85WVc3ozE8hULBX12iIWpr5kb5lRaw3ZgX6wBnSSpdQu49v3nFoGJk\nUWY95pQ/BWQaX0q4KxzRVxup+7gwT5sKFXU+ktFtsGMYoDoSzbZS\n-----END RSA PRIVATE KEY-----\n", "user_id": "e4f380899b1248918f3d37098dc63746", "name": "demo123", "fingerprint": "49:ef:73:2b:9b:7f:2e:0c:58:d3:e3:42:8e:28:04:3b" }} 导入SSH密钥对公钥 导入SSH密钥对公钥请求样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "name": "demo3" }} 导入SSH密钥对公钥响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "user_id": "e4f380899b1248918f3d37098dc63746", "name": "demo1", "fingerprint": "b4:9a:c3:12:c4:90:bf:8e:7a:e2:70:10:c3:00:55:3f" }} 或 { "error_code": "KPS.XXXX", "error_msg": "XXXX"} 导入SSH密钥对公钥并托管私钥 导入SSH密钥对公钥并托管私钥请求样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDb26UrW0htRbE/Ygf8EPhzanBCc+5yEhkgmeSb2hTe48YRE5FdJKH6tueyj+vw5guoKjAITLjqZCqffGYXz/7aXpFt244b9tTzh2l43uNtEZC+XZtc6KiBgfWupFI8O2i9YjJqdadsr+4Ad4AtIBbF++qsSJN4YycPX//Gl8ja6AGPy4sdv8DZ40Gr8d+dMQ4pAsnUEtZ3jJ6NLdQU2CE1JhBdg3hbVbeh44gqQtSjhxWaSTlr+NbVxSERtXXpsQWsid6qM1RhqH2+02cqXq5oNs4JLdu56pcTgSO5azTsGYJi6j5qp5BAdjMrFtHjbaeVVWtkO1XQxfpueCJ470lx Generated-by-Nova\n", "name": "demo4", "key_protection": { "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA29ulK1tIbUWxP2IH/BD4c2pwQnPuchIZIJnkm9oU3uPGEROR\nXSSh+rbnso/r8OYLqCowCEy46mQqn3xmF8/+2l6RbduOG/bU84dpeN7jbRGQvl2b\nXOiogYH1rqRSPDtovWIyanWnbK/uAHeALSAWxfvqrEiTeGMnD1//xpfI2ugBj8uL\nHb/A2eNBq/HfnTEOKQLJ1BLWd4yejS3UFNghNSYQXYN4W1W3oeOIKkLUo4cVmkk5\na/jW1cUhEbV16bEFrIneqjNUYah9vtNnKl6uaDbOCS3bueqXE4EjuWs07BmCYuo+\naqeQQHYzKxbR422nlVVrZDtV0MX6bngieO9JcQIDAQABAoIBAAVSEXM1KFGMqDdy\ndeMBviF85+6Tw6d7DKSfVMr4whyKwpZTNOdeJZVdq8nEdd9Eke+l5bets6PofKeT\naR0WaYJ7W2WfNJc0p/6kvkawjixrimcw+LuM3dcUgA+T5nGStnwuzi2JX13f/BCC\n09VDu4lbCVjWAMufCqjyl8wEjFXP0Amhu8fpDvqHuhGvDkoVWRm9vDEeyz71P25K\n/UUs7kXw5Qv0VRcm15b+2jO6tii3RTo+JaTvkYXoI/qrOjiQhQD88geiOPQVuffa\nzJhDw4/2GdHaCwEN6mzwKCYCfcPTRbM503F1YlceiP9w2qScToao+5B2okN9cIE8\nTV4vmIkCgYEA+vo/TKqFep2D6DPY3dNRu2bHIYikBMtYMCIKJ1bgQ1xS/FjEJfSj\notdDcBEik+0VEV05BCHNduTiMt6rTUD9fpqDduV8PfsskAAZZjndbyUEGP/KrCvS\nJsd2BFa2G7In/3wz3zw+3P77Aegb+zHJfDyqYWReNkYy5tSsaZ9Oz38CgYEA4EH5\nIXQPhJt9683JmK/INiyhW6WqKOAZkvjKpUpdUpGdVHJI/9dfUYI9wxnybgAkOZVL\noErxMTdRCDev8nVAq/OwC/4jI5YnBGkN3ZRxIkCrepzwxIXgWeJiwWqsvdDbosfM\nN0Q6PvUnPTXEly8RGcH9ABTQvQ9Nq4rQyjQvXw8CgYEAuK8hmWb55iq3AE32zfVM\n9ZxB+Jk2KRkBghnqYtx5Fth/cJZZcJy/NXs2cucJDNWvZSG2bSX6rfzrvwdAAw9J\n+rn0968TaADG4AhSqHj4S2tvwn2oRF3SvRqV68drJqJI8KYS/bi1gaZYSyTkQkp2\nu+dgcV6MPWAW4OmrHeZO9j0CgYEAkY8Az4/vipkKkIWP9oUSJOevDDdpTQK4VscZ\ncVPlYvSU8/0CGN2IRvWMdRhgXLnGyYF4BuDd0J4hAH50u6ETiwivGfmogS6ywJAX\nqdzx2dOz+e/n7wceafkhNH2zBbmM9glNKgok7DxfbcF6is7IALoDJ4xbOHu4ZEHD\n55sbrE0CgYEAuOuiISgfbujENFFPW0nvUmNqbkAH5YW1oUIWYA+64z7wcWyvzxRS\nYml2XLWyrJy3JNzHpLoe4mCBxz+HGrftZ0/qfQ/WDZrY/Djp7/xIkPyI9EwsRTYC\nr1PtWvVws3y3hgdo6WVQMaeUqtLSiTugyuuPqidH+/QtwxObunNH6Ns=\n-----END RSA PRIVATE KEY-----\n", "encryption": { "type": "kms", "kms_key_name": "testName" } } }} 导入SSH密钥对公钥并托管私钥响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "user_id": "e4f380899b1248918f3d37098dc63746", "name": "demo1", "fingerprint": "b4:9a:c3:12:c4:90:bf:8e:7a:e2:70:10:c3:00:55:3f" }} 或 { "error_code": "KPS.XXXX", "error_msg": "XXXX"}
  • 操作步骤 创建用户主密钥。 接口相关信息 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/encrypt-data 详情请参见加密数据。 请求示例 POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/encrypt-data {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "plain_text": "12345678"} 响应示例 { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "cipher_text": "AgDoAG7EsEc2OHpQxz4gDFDH54CqwaelpTdEl+RFPjbKn5klPTvOywYIeZX60kPbFsYOpXJwkL32HUM50MY22Eb1fOSpZK7WJpYjx66EWOkJvO+Ey3r1dLdNAjrZrYzQlxRwNS05CaNKoX5rr3NoDnmv+UNobaiS25muLLiqOt6UrStaWow9AUyOHSzl+BrX2Vu0whv74djK+3COO6cXT2CBO6WajTJsOgYdxMfv24KWSKw0TqvHe8XDKASQGKdgfI74hzI1YWJlNjlmLWFlMTAtNDRjZC1iYzg3LTFiZGExZGUzYjdkNwAAAACdcfNpLXwDUPH3023MvZK8RPHe129k6VdNIi3zNb0eFQ==" } 解密数据。 接口相关信息 URI格式:POST /v1.0/{project_id}/kms/decrypt-data 详情请参见解密数据。 请求示例 POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/decrypt-data {endpoint}信息请从地区和终端节点获取。 您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。 Body: { "cipher_text": "AgDoAG7EsEc2OHpQxz4gDFDH54CqwaelpTdEl+RFPjbKn5klPTvOywYIeZX60kPbFsYOpXJwkL32HUM50MY22Eb1fOSpZK7WJpYjx66EWOkJvO+Ey3r1dLdNAjrZrYzQlxRwNS05CaNKoX5rr3NoDnmv+UNobaiS25muLLiqOt6UrStaWow9AUyOHSzl+BrX2Vu0whv74djK+3COO6cXT2CBO6WajTJsOgYdxMfv24KWSKw0TqvHe8XDKASQGKdgfI74hzI1YWJlNjlmLWFlMTAtNDRjZC1iYzg3LTFiZGExZGUzYjdkNwAAAACdcfNpLXwDUPH3023MvZK8RPHe129k6VdNIi3zNb0eFQ==" } 响应示例 { "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f", "plain_text": "12345678" }
  • 密钥对管理 权限 对应API接口 授权项(Action) 依赖的授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 创建和导入SSH密钥对(OpenStack原生) POST /v2.1/{project_id}/os-keypairs ecs:serverKeypairs:create - √ x 查询SSH密钥对详情(OpenStack原生) GET /v2.1/{project_id}/os-keypairs/{keypair_name} ecs:serverKeypairs:get - √ x 查询SSH密钥对列表(OpenStack原生) GET /v2.1/{project_id}/os-keypairs ecs:serverKeypairs:list - √ x 删除SSH密钥对(OpenStack原生) DELETE /v2.1/{project_id}/os-keypairs/{keypair_name} ecs:serverKeypairs:delete - √ x 父主题: 权限和授权项
  • 场景描述 当您需加解密不大于4KB的小量数据(例如:口令、证书、电话号码等)时,您可以通过KMS界面使用在线工具加解密数据,或者调用KMS的API接口使用指定的用户主密钥直接加密、解密数据。 流程如下: 用户需要在KMS中创建一个用户主密钥。 用户调用KMS的“encrypt-data”接口,使用指定的用户主密钥将明文数据加密为密文数据。 用户在服务器上部署密文证书。 当服务器需要使用证书时,调用KMS的“decrypt-data”接口,将密文数据解密为密文证书。
  • 示例 请求样例 无 响应样例 { "keypairs": [{ "keypair": { "fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a", "name": "keypair-601a2305-4f25-41ed-89c6-2a966fc8027a", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated-by-Nova\n", "is_key_protection": true } } ]} 或 { "error_code": "KPS.XXXX", "error_msg": "XXXX"}
  • 响应消息 表2 响应参数 参数 是否必选 参数类型 描述 keypairs 是 Array of objects SSH密钥对信息列表,详情请参见表3。 表3 keypairs字段数据结构说明 参数 是否必选 参数类型 描述 keypair 是 Object SSH密钥对信息详情,详情请参见表4。 表4 keypair字段数据结构说明 参数 是否必选 参数类型 描述 fingerprint 是 String SSH密钥对应指纹信息。 name 是 String SSH密钥对的名称。 public_key 是 String SSH密钥对对应的publicKey信息。 is_key_protection 是 Boolean SSH密钥对是否私钥托管与保护。
  • 示例 请求样例 无 响应样例 { "keypair": { "created_at": "2014-05-07T12:06:13.681238", "deleted": false, "deleted_at": null, "fingerprint": "9d:00:f4:d7:26:6e:52:06:4c:c1:d3:1d:fd:06:66:01", "id": 1, "name": "keypair-3582d8b7-e588-4aad-b7f7-f4e76f0e4314", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYJrTVpcMwFqQy/oMvtUSRofZdSRHEwrsX8AYkRvn2ZnCXM+b6+GZ2NQuuWj+ocznlnwiGFQDsL/yeE+/kurqcPJFKKp60mToXIMyzioFxW88fJtwEWawHKAclbHWpR1t4fQ4DS+/sIbX/Yd9btlVQ2tpQjodGDbM9Tr9/+/3i6rcR+EoLqmbgCgAiGiVV6VbM2Zx79yUwd+GnQejHX8BlYZoOjCnt3NREsITcmWE9FVFy6TnLmahs3FkEO/QGgWGkaohAJlsgaVvSWGgDn2AujKYwyDokK3dXyeX3m2Vmc3ejiqPa/C4nRrCOlko5nSgV/9IXRx1ERImsqZnE9usB Generated-by-Nova\n", "updated_at": null, "user_id": "fake", "is_key_protection": true, "description": "keypair test" }} 或 { "error_code": "KPS.XXXX", "error_msg": "XXXX"}
  • 响应消息 表2 响应参数 参数 是否必选 参数类型 描述 keypair 是 Object SSH密钥对信息,详情请参见表3。 表3 keypair字段数据结构说明 参数 是否必选 参数类型 描述 public_key 是 String SSH密钥对对应的publicKey信息。 name 是 String SSH密钥对的名称。 fingerprint 是 String SSH密钥对对应的指纹信息。 created_at 是 String SSH密钥对创建的时间。时间戳,即从1970年1月1日至该时间的总秒数。 deleted 是 Boolean SSH密钥对删除的标记。 deleted_at 是 String SSH密钥对删除的时间。时间戳,即从1970年1月1日至该时间的总秒数。 id 是 String SSH密钥对的ID。 updated_at 是 String SSH密钥对的更新时间。时间戳,即从1970年1月1日至该时间的总秒数。 user_id 是 String SSH密钥对所属的用户信息。 is_key_protection 是 Boolean SSH密钥对是否私钥托管与保护。 description 是 String SSH密钥对的描述信息
  • 示例 创建SSH密钥对 创建SSH密钥对请求样例 { "keypair": { "type": "ssh", "name": "demo" }} 创建SSH密钥对响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAsjbRWTNODxcREb2VOTgSkyq95rUWQAXuf/s1/NZU4AxQgX6u\njl4muOzOKlzmt3IgRCimRfnzH7PFNlDQfWitUf7jkbKBBbcUoGZ1huqeArdb566s\nAw/d+FWgxTxJ/odyXgH70wfgINWEPc4fbmMhPWd6mXAvflIvdwQxnQbUHmr+KHcX\ncF3K9pk9oyVdJ7KHFdDuFHCjPAWiJvHqm3K6GRJMsak95lKEm5hsdYa54IwbD9bn\n4MCeg/OSxRkAtUoyDi77EfYur+NQWixfP5MoLyjodh5TVUjMd/IOdrE6qEP8W93/\nL0dVQ15YgLg9H66xthcucCuKzgJ47l/Z4dGwvQIDAQABAoIBAQCdTjXL/rVQLJQs\njKNDNnNu47NsCTvyl0nGPf+Rhb61ZSlKpH9/uyuC38O7MPWVx28jup3J9q7btNrG\n7t6ZU+RpFAvbdyzb1pamXsoupLmEvESrZEsBCOhtY2fdsTG/Md+Ji0a1J6Z2VQG9\nbEviLC4S/VwCRDwnzHOJInKIoJZroZv6SdK+KonQBS0Rq9bZrlvtBUUhaSGjBcJx\nmWKO78ikNOXP/5Yl92SAw2vOYWhZdMZQrkp1EUFMG18Akuj+jC9QKXXfsLYYfzsQ\nIGgpRdf6zYIV84QVMZ7NhQABM5DNmQfxrSIUSdbvOzOJzmShp41tH3sn9d+XS+bS\nLIoyuaQhAoGBAN7tpwgkcKddKI/Lp/CPqjkxP6lfO+xHEXjtnZd1Y//BavPSgq4v\nWuFHgx1sPQK49KcSLZfF6UxkPw0KHBc5R9RkfYBAIdGNwENF2xyoYLLdnUtF4hRq\n1q2DC3oklBZibH2tc6+hQ2aCWSeMvQbIvxTYV70EFzwR5f4O5LIskCm/AoGBAMyn\nA7DOQdvcf4aexSYL4kGp70ERMOCtwr/d+O5RswARoyAQOxp4a7/TyFuGjnlT//bR\nEYacXV1AieIdeJF3PgeUIR1QnUlNYD9Rufs14fs+5idQ7Evn1gvXv0HpBYTY7wNu\nWTrWbsznY0fNIrGT4bQR6QpdvIuR5TBJf6HIAKyDAoGAFhKf3D2HbfraXkqC6V3A\nNAN9Uy7bxwxOXZPha7Ky4QrspRGt4MNNk0q6X7ps3A0mJDi3jPSKoga2+3qJx37j\nbtM4Xe97qb0IUWDkThUZ5fvtbBuSRAVEFlAIXeKrSwAZz+PRtY0ZGFhFrZXQzZAo\n4058eXmjN05qYFpnKIEjEQ8CgYEAwELzW6oaAzR+dfk428p0UB4W0HkXAy0a9efS\nUgpc8Oag6qF09SRGjdunshySQvegU78MCPtjVxUntE7dk0OD+di213SBn3jawAHG\niHORjtkDndIPfCwcUdnpK0GAVtL6kK2dlIIZa9TB15WnT07Pzry4w21WkYSJ3Thf\neJyNzYMCgYA8OvpKMdaEXFeNZWHDE1Q2VmpxvP/D6u6s4SBuyy8eac1qqku/s7zc\nsuFd/o9wbBgzsf4eN8tNJ4bxrArRXvf9WyH7xd4PE3DvVJnz5S+8Nqj2Z0KCAqPD\nibDbFxBYHcMIdwC2JBGQZIXpkST2jG9wZho5KghX4yiHSOPr2V25/g==\n-----END RSA PRIVATE KEY-----\n", "user_id": "6fc0d2cbbfab40b199874b97097e913d", "name": "demo", "fingerprint": "b4:9a:c3:12:c4:90:bf:8e:7a:e2:70:10:c3:00:55:3f" }} 导入SSH密钥对 导入SSH密钥对请求样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "type": "ssh", "name": "demo1", "user_id": "fake" }} 导入SSH密钥对响应样例 { "keypair": { "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyNtFZM04PFxERvZU5OBKTKr3mtRZABe5/+zX81lTgDFCBfq6OXia47M4qXOa3ciBEKKZF+fMfs8U2UNB9aK1R/uORsoEFtxSgZnWG6p4Ct1vnrqwDD934VaDFPEn+h3JeAfvTB+Ag1YQ9zh9uYyE9Z3qZcC9+Ui93BDGdBtQeav4odxdwXcr2mT2jJV0nsocV0O4UcKM8BaIm8eqbcroZEkyxqT3mUoSbmGx1hrngjBsP1ufgwJ6D85LFGQC1SjIOLvsR9i6v41BaLF8/kygvKOh2HlNVSMx38g52sTqoQ/xb3f8vR1VDXliAuD0frrG2Fy5wK4rOAnjuX9nh0bC9 Generated-by-Nova\n", "user_id": "6fc0d2cbbfab40b199874b97097e913d", "name": "demo1", "fingerprint": "b4:9a:c3:12:c4:90:bf:8e:7a:e2:70:10:c3:00:55:3f" }}
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 数据加密服务(DEW)支持的自定义策略授权项如下所示: 加密密钥管理,包含密钥管理对应的授权项,如创建密钥、查询密钥、创建授权等接口。 密钥对管理,包含密钥对管理对应的授权项,如创建密钥对、查询密钥对、删除密钥对等接口。
  • 响应消息 表4 响应参数 参数 是否必选 参数类型 描述 keypair 是 Object SSH密钥对的信息,详情请参见表5。 表5 keypair字段数据结构说明 参数 是否必选 参数类型 描述 fingerprint 是 String SSH密钥对对应的指纹信息。 name 是 String SSH密钥对的名称。 public_key 是 String SSH密钥对对应的publicKey信息。 private_key 否 String SSH密钥对对应的privateKey信息。 创建SSH密钥对时,响应中包括private_key的信息。 导入SSH密钥对时,响应中不包括private_key的信息。 user_id 是 String SSH密钥对所属的用户ID。
  • 请求消息 创建SSH密钥对时,只需要提交SSH密钥对的name属性。导入SSH密钥对时,才需要提交public_key属性。 表2 请求参数 参数 是否必选 参数类型 描述 keypair 是 Object 创建或导入的SSH密钥对的信息,详情请参见表3。 表3 keypair字段数据结构说明 参数 是否必选 参数类型 描述 public_key 否 String 导入公钥的字符串信息。 type 否 String SSH密钥对的类型,值为ssh或x509。 name 是 String SSH密钥对的名称。 新创建的密钥对名称不能和已有密钥对的名称相同。 SSH密钥对名称由英文字母、数字、下划线、中划线组成,长度不能超过64个字节。 user_id 否 String SSH密钥对的用户ID。
  • 状态码 状态码 编码 状态说明 200 OK 请求已成功。 202 Accept 任务提交成功,当前系统繁忙,下发的任务会延迟处理。 204 No Content 请求已成功,无内容返回。 300 multiple choices 被请求的资源存在多个可供选择的响应。 400 Bad Request 请求参数有误。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 服务器已经理解请求,但是拒绝执行它。 404 Not Found 资源不存在,资源未找到。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 服务内部错误。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。 父主题: 附录
共100000条