您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

Create Key - Create Key

创建一个新密钥,存储该密钥,然后向客户端返回密钥参数和属性。
Create key 操作可用于在 Azure Key Vault 中创建任何密钥类型。 如果命名的密钥已存在,Azure 密钥保管库将创建该密钥的新版本。 它需要密钥/创建权限。

POST {vaultBaseUrl}/keys/{key-name}/create?api-version=7.2

URI 参数

Name In Required Type Description
key-name
path True
  • string

新键的名称。 系统将生成新密钥的版本名称。

Regex pattern: ^[0-9a-zA-Z-]+$

vaultBaseUrl
path True
  • string

例如,保管库名称 https://myvault.vault.azure.net

api-version
query True
  • string

客户端 API 版本。

请求正文

Name Required Type Description
kty True

要创建的密钥类型。 有关有效值,请参阅 JsonWebKeyType。

attributes

密钥保管库服务管理的密钥的属性。

crv

椭圆曲线名称。 有关有效值,请参阅 JsonWebKeyCurveName。

key_ops
  • string[]

JSON web 键操作。 有关详细信息,请参阅 JsonWebKeyOperation。

key_size
  • integer

密钥的大小(以位为单位)。 例如:2048、3072或4096(适用于 RSA)。

public_exponent
  • integer

RSA 密钥的公共指数。

tags
  • object

键/值对形式的应用程序特定元数据。

响应

Name Type Description
200 OK

包含创建密钥请求结果的密钥捆绑。

Other Status Codes

描述操作失败的原因 Key Vault 错误响应。

示例

Create key

Sample Request

POST https://myvault.vault.azure.net//keys/CreateSoftKeyTest/create?api-version=7.2
{
  "kty": "RSA",
  "key_size": 2048,
  "key_ops": [
    "encrypt",
    "decrypt",
    "sign",
    "verify",
    "wrapKey",
    "unwrapKey"
  ],
  "attributes": {},
  "tags": {
    "purpose": "unit test",
    "test name ": "CreateGetDeleteKeyTest"
  }
}

Sample Response

{
  "key": {
    "kid": "https://myvault.vault.azure.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71",
    "kty": "RSA",
    "key_ops": [
      "encrypt",
      "decrypt",
      "sign",
      "verify",
      "wrapKey",
      "unwrapKey"
    ],
    "n": "2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w",
    "e": "AQAB"
  },
  "attributes": {
    "enabled": true,
    "created": 1493942451,
    "updated": 1493942451,
    "recoveryLevel": "Recoverable+Purgeable"
  },
  "tags": {
    "purpose": "unit test",
    "test name ": "CreateGetDeleteKeyTest"
  }
}

定义

DeletionRecoveryLevel

反映当前保管库中的密钥当前生效的删除恢复级别。 如果包含 "Purgeable",则特权用户可永久删除此密钥;否则,只有系统可以在保留间隔结束时清除密钥。

Error

Key vault 服务器错误。

JsonWebKey

http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18

JsonWebKeyCurveName

椭圆曲线名称。 有关有效值,请参阅 JsonWebKeyCurveName。

JsonWebKeyType

JsonWebKey 键类型 (kty) ,如中所定义 https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40

KeyAttributes

密钥保管库服务管理的密钥的属性。

KeyBundle

KeyBundle 由 WebKey 及其属性组成。

KeyCreateParameters

键创建参数。

KeyVaultError

Key vault 错误异常。

DeletionRecoveryLevel

反映当前保管库中的密钥当前生效的删除恢复级别。 如果包含 "Purgeable",则特权用户可永久删除此密钥;否则,只有系统可以在保留间隔结束时清除密钥。

Name Type Description
CustomizedRecoverable
  • string

表示一种保管库状态,在此状态下可以恢复删除,而无需立即和永久删除 (例如,当 7<= SoftDeleteRetentionInDays < 90) 时清除。此级别保证在保留间隔期间和订阅仍可用时删除的实体的可恢复性。

CustomizedRecoverable+ProtectedSubscription
  • string

表示保管库和订阅状态,在这种情况下,删除是可恢复的、即时和永久删除 (这种情况下,不允许清除) ,在 7<= SoftDeleteRetentionInDays < 90 时,无法永久取消订阅。 此级别保证在保留间隔期间删除的实体的可恢复性,同时还反映了无法取消订阅的情况。

CustomizedRecoverable+Purgeable
  • string

表示一种保管库状态,在此状态下,可恢复删除,并且还允许立即和永久删除 (例如,当 7<= SoftDeleteRetentionInDays < 90) 时清除。 此级别保证在保留间隔期间删除的实体的可恢复性,除非请求清除操作或取消订阅。

Purgeable
  • string

表示一种保管库状态,在此状态下,删除操作是不可逆的,不能进行恢复。 此级别对应于删除操作没有可用的保护;在实体级别或更高 (保管库、资源组、订阅等 ) 中接受删除操作后,数据将丢失便

Recoverable
  • string

表示一种保管库状态,在此状态下可以恢复删除,而无需立即删除和永久删除 (即清除) 。 在保留间隔期间,此级别可保证已删除实体的可恢复性 (90 天) ,而订阅仍可用。 如果未恢复,系统会将其永久删除(90天)

Recoverable+ProtectedSubscription
  • string

表示保管库和订阅状态,在此状态下,可以在保留间隔 (90 天内恢复,) 、立即和永久删除 (这种情况下,不允许清除) ,并且无法永久取消订阅。 如果未恢复,系统会将其永久删除(90天)

Recoverable+Purgeable
  • string

表示一种保管库状态,在此状态下,可恢复删除,并且还允许立即和永久删除 (即清除) 。 此级别保证在保留间隔 (90 天) 中已删除实体的可恢复性,除非请求清除操作或取消订阅。 如果未恢复,系统会将其永久删除(90天)

Error

Key vault 服务器错误。

Name Type Description
code
  • string

错误代码。

innererror

Key vault 服务器错误。

message
  • string

错误消息。

JsonWebKey

http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18

Name Type Description
crv

椭圆曲线名称。 有关有效值,请参阅 JsonWebKeyCurveName。

d
  • string

RSA private 指数,或 EC 私钥的 D 组件。

dp
  • string

RSA 私钥参数。

dq
  • string

RSA 私钥参数。

e
  • string

RSA 公共指数。

k
  • string

对称密钥。

key_hsm
  • string

受保护的密钥,与 "创建自己的密钥" 一起使用。

key_ops
  • string[]

支持的关键操作。

kid
  • string

密钥标识符。

kty

JsonWebKey 键类型 (kty) ,如中所定义 https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40

n
  • string

RSA 模数。

p
  • string

RSA 密码质数。

q
  • string

RSA 机密质数,p < q。

qi
  • string

RSA 私钥参数。

x
  • string

EC 公钥的 X 部分。

y
  • string

EC 公钥的 Y 组件。

JsonWebKeyCurveName

椭圆曲线名称。 有关有效值,请参阅 JsonWebKeyCurveName。

Name Type Description
P-256
  • string

NIST P-256 椭圆曲线,亦即 SECG curve SECP256R1。

P-256K
  • string

SECG SECP256K1 椭圆曲线。

P-384
  • string

NIST P-384 椭圆曲线,亦即 SECG curve SECP384R1。

P-521
  • string

NIST P-521 椭圆曲线,亦即 SECG curve SECP521R1。

JsonWebKeyType

JsonWebKey 键类型 (kty) ,如中所定义 https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40

Name Type Description
EC
  • string

椭圆曲线。

EC-HSM
  • string

带有无法从 HSM 导出的私钥的椭圆曲线。

RSA
  • string

RSA (https://tools.ietf.org/html/rfc3447)

RSA-HSM
  • string

RSA 的私钥无法从 HSM 导出。

oct
  • string

用于表示对称密钥的八进制序列 ()

oct-HSM
  • string

八进制序列 (用来表示对称密钥) 无法从 HSM 导出。

KeyAttributes

密钥保管库服务管理的密钥的属性。

Name Type Description
created
  • integer

UTC 格式的创建时间。

enabled
  • boolean

确定对象是否已启用。

exp
  • integer

UTC 格式的到期日期。

nbf
  • integer

不早于 UTC 日期。

recoverableDays
  • integer

softDelete 数据保持天数。 如果启用 softDelete,则值应为 >= 7 且 <= 90,否则为0。

recoveryLevel

反映当前保管库中的密钥当前生效的删除恢复级别。 如果包含 "Purgeable",则特权用户可永久删除此密钥;否则,只有系统可以在保留间隔结束时清除密钥。

updated
  • integer

上次更新时间(UTC)。

KeyBundle

KeyBundle 由 WebKey 及其属性组成。

Name Type Description
attributes

密钥管理属性。

key

Json web 密钥。

managed
  • boolean

如果密钥的生存期由密钥保管库管理,则为 True。 如果这是一个密钥来支持证书,则管理将为 true。

tags
  • object

键/值对形式的应用程序特定元数据。

KeyCreateParameters

键创建参数。

Name Type Description
attributes

密钥保管库服务管理的密钥的属性。

crv

椭圆曲线名称。 有关有效值,请参阅 JsonWebKeyCurveName。

key_ops
  • string[]

JSON web 键操作。 有关详细信息,请参阅 JsonWebKeyOperation。

key_size
  • integer

密钥的大小(以位为单位)。 例如:2048、3072或4096(适用于 RSA)。

kty

要创建的密钥类型。 有关有效值,请参阅 JsonWebKeyType。

public_exponent
  • integer

RSA 密钥的公共指数。

tags
  • object

键/值对形式的应用程序特定元数据。

KeyVaultError

Key vault 错误异常。

Name Type Description
error

Key vault 服务器错误。