你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Create Key - Create Key

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

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

URI 参数

名称 必需 类型 说明
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 版本。

请求正文

名称 必需 类型 说明
kty True

JsonWebKeyType

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

attributes

KeyAttributes

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

crv

JsonWebKeyCurveName

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

key_ops

JsonWebKeyOperation[]

JSON Web 密钥操作。 有关详细信息,请参阅 JsonWebKeyOperation。

key_size

integer

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

public_exponent

integer

RSA 密钥的公共指数。

release_policy

KeyReleasePolicy

可导出密钥所依据的策略规则。

tags

object

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

响应

名称 类型 说明
200 OK

KeyBundle

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

Other Status Codes

KeyVaultError

密钥保管库描述操作失败原因的错误响应。

示例

Create key

Sample Request

POST https://myvault.vault.azure.net//keys/CreateSoftKeyTest/create?api-version=7.4

{
  "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

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

Error

密钥保管库服务器错误。

JsonWebKey

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

JsonWebKeyCurveName

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

JsonWebKeyOperation
JsonWebKeyType

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

KeyAttributes

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

KeyBundle

由 WebKey 及其属性组成的 KeyBundle。

KeyCreateParameters

键创建参数。

KeyReleasePolicy

可导出密钥所依据的策略规则。

KeyVaultError

密钥保管库错误异常。

DeletionRecoveryLevel

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

名称 类型 说明
CustomizedRecoverable

string

表示可恢复删除的保管库状态, (即当 7<= SoftDeleteRetentionInDays < 90) 时进行清除,则无法立即和永久删除删除。此级别可保证已删除实体在保留间隔期间以及订阅仍可用时的可恢复性。

CustomizedRecoverable+ProtectedSubscription

string

表示保管库和订阅状态,其中删除是可恢复的,即时和永久删除 (即不允许清除) ,并且当 7<= SoftDeleteRetentionInDays < 90 时,订阅本身无法永久取消。 此级别可保证已删除实体在保留间隔期间的可恢复性,还反映了订阅本身无法取消这一事实。

CustomizedRecoverable+Purgeable

string

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

Purgeable

string

表示保管库状态,其中删除操作不可逆,无法恢复。 此级别对应于对删除操作没有可用的保护;在实体级别或更高 (保管库、资源组、订阅等接受删除操作时,数据将不可挽回地丢失 )

Recoverable

string

表示可恢复删除的保管库状态,无法立即和永久删除 (即清除) 。 此级别保证在保留间隔 (90 天) 且订阅仍然可用期间,已删除实体的可恢复性。 系统将在 90 天后永久删除它(如果未恢复)

Recoverable+ProtectedSubscription

string

表示保管库和订阅状态,其中删除可在 90 天内恢复, (90 天的保留间隔) ,即时和永久删除 (即不允许清除) ,并且订阅本身不能永久取消。 系统将在 90 天后永久删除它(如果未恢复)

Recoverable+Purgeable

string

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

Error

密钥保管库服务器错误。

名称 类型 说明
code

string

错误代码。

innererror

Error

密钥保管库服务器错误。

message

string

错误消息。

JsonWebKey

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

名称 类型 说明
crv

JsonWebKeyCurveName

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

d

string

RSA 专用指数或 EC 私钥的 D 组件。

dp

string

RSA 私钥参数。

dq

string

RSA 私钥参数。

e

string

RSA 公共指数。

k

string

对称密钥。

key_hsm

string

受保护的密钥,与“自带密钥”一起使用。

key_ops

string[]

支持的密钥操作。

kid

string

密钥标识符。

kty

JsonWebKeyType

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。

名称 类型 说明
P-256

string

NIST P-256 椭圆曲线,AKA SECG 曲线SECP256R1。

P-256K

string

SECG SECP256K1椭圆曲线。

P-384

string

NIST P-384 椭圆曲线,AKA SECG 曲线SECP384R1。

P-521

string

NIST P-521 椭圆曲线,AKA SECG 曲线SECP521R1。

JsonWebKeyOperation

名称 类型 说明
decrypt

string

encrypt

string

export

string

import

string

sign

string

unwrapKey

string

verify

string

wrapKey

string

JsonWebKeyType

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

名称 类型 说明
EC

string

椭圆曲线。

EC-HSM

string

具有存储在 HSM 中的私钥的椭圆曲线。

RSA

string

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

RSA-HSM

string

具有存储在 HSM 中的私钥的 RSA。

oct

string

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

oct-HSM

string

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

KeyAttributes

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

名称 类型 说明
created

integer

创建时间(UTC)。

enabled

boolean

确定是否启用对象。

exp

integer

到期日期(UTC)。

exportable

boolean

指示是否可以导出私钥。 创建可导出密钥的第一个版本时,必须提供释放策略。

nbf

integer

不早于 UTC 日期。

recoverableDays

integer

softDelete 数据保留天数。 启用 softDelete 时,值应为 >=7 和 <=90,否则为 0。

recoveryLevel

DeletionRecoveryLevel

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

updated

integer

上次更新时间(UTC)。

KeyBundle

由 WebKey 及其属性组成的 KeyBundle。

名称 类型 说明
attributes

KeyAttributes

密钥管理属性。

key

JsonWebKey

Json Web 密钥。

managed

boolean

如此 如果密钥的生存期由密钥保管库管理。 如果这是支持证书的密钥,则托管为 true。

release_policy

KeyReleasePolicy

可导出密钥所依据的策略规则。

tags

object

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

KeyCreateParameters

键创建参数。

名称 类型 说明
attributes

KeyAttributes

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

crv

JsonWebKeyCurveName

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

key_ops

JsonWebKeyOperation[]

JSON Web 密钥操作。 有关详细信息,请参阅 JsonWebKeyOperation。

key_size

integer

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

kty

JsonWebKeyType

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

public_exponent

integer

RSA 密钥的公共指数。

release_policy

KeyReleasePolicy

可导出密钥所依据的策略规则。

tags

object

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

KeyReleasePolicy

可导出密钥所依据的策略规则。

名称 类型 默认值 说明
contentType

string

application/json; charset=utf-8

密钥发布策略的内容类型和版本

data

string

Blob 编码可释放密钥所依据的策略规则。 Blob 必须采用 base64 URL 编码。

immutable

boolean

定义策略的可变状态。 一旦标记为不可变,则无法重置此标志,并且在任何情况下都不能更改策略。

KeyVaultError

密钥保管库错误异常。

名称 类型 说明
error

Error

密钥保管库服务器错误。