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

KeyClient 类

用于管理保管库密钥的高级界面。

继承
azure.keyvault.keys._shared.client_base.KeyVaultClientBase
KeyClient

构造函数

KeyClient(vault_url: str, credential: TokenCredential, **kwargs)

参数

vault_url
str
必需

客户端将访问的保管库的 URL。 这也称为保管库的“DNS 名称”。 应验证此 URL 引用有效的 密钥保管库 或托管 HSM 资源。 有关详细信息,请参阅https://aka.ms/azsdk/blog/vault-uri

credential
TokenCredential
必需

一个对象,可为保管库提供访问令牌,例如来自 的凭据 identity

api_version
ApiVersion

要使用的服务 API 的版本。 默认为最新的 。

verify_challenge_resource
bool

验证身份验证质询资源是否与密钥保管库或托管 HSM 域匹配。 默认为 True。

方法

backup_key

以仅供 Azure 密钥保管库使用的受保护表单备份密钥。

需要密钥/备份权限。

这旨在允许将密钥从一个保管库复制到另一个保管库。 这两个保管库必须归同一 Azure 订阅所有。 此外,无法跨地缘政治边界执行备份/还原。 例如,无法将美国区域中保管库的备份还原到欧盟区域中的保管库。

begin_delete_key

删除密钥及其加密材料的所有版本。

需要密钥/删除权限。 此方法返回密钥保管库已开始删除密钥。 在启用了软删除的保管库中,删除可能需要几秒钟时间。 因此,此方法返回一个轮询器,使你能够等待删除完成。

begin_recover_deleted_key

将已删除的密钥恢复到其最新版本。 只能在启用了软删除的保管库中实现。

需要密钥/恢复权限。

此方法返回密钥保管库已开始恢复密钥。 恢复可能需要几秒钟。 因此,此方法返回一个轮询器,使你能够等待恢复完成。 仅当想要立即在另一个操作中使用恢复的密钥时,才需要等待。

close

关闭客户端打开的套接字。

使用客户端作为上下文管理器时,不需要调用此方法。

create_ec_key

创建新的椭圆曲线键,或者,如果 name 已在使用中,则创建密钥的新版本。

需要 keys/create 权限。

create_key

创建密钥,或者,如果 name 已在使用中,则创建密钥的新版本。

需要密钥/创建权限。

create_oct_key

创建新的八进制数序列 (对称) 密钥,或者,如果 name 正在使用,则创建密钥的新版本。

需要 keys/create 权限。

create_rsa_key

创建新的 RSA 密钥,或者,如果 name 已在使用中,则创建密钥的新版本

需要 keys/create 权限。

get_cryptography_client

CryptographyClient获取给定键的 。

get_deleted_key

获取已删除的密钥。 只能在启用了软删除的保管库中实现。

需要密钥/获取权限。

get_key

获取密钥的属性,如果它是非对称密钥,则获取其公共材料。

需要密钥/获取权限。

get_key_rotation_policy

获取密钥保管库密钥的轮换策略。

get_random_bytes

从托管 HSM 获取请求的随机字节数。

import_key

导入在外部创建的密钥。

需要密钥/导入权限。 如果 name 已在使用中,密钥将作为新版本导入。

list_deleted_keys

列出所有已删除的密钥,包括每个密钥的公共部分。 只能在启用了软删除的保管库中实现。

需要密钥/列表权限。

list_properties_of_key_versions

列出密钥版本的标识符和属性。

需要密钥/列表权限。

list_properties_of_keys

列出保管库中所有密钥的标识符和属性。

需要密钥/列表权限。

purge_deleted_key

永久删除已删除的密钥。 只能在启用了软删除的保管库中使用。

执行指定密钥的不可逆删除,无法恢复。 如果未指定“Purgeable”, recovery_level 则操作不可用。 此方法仅在清除其 之前的密钥时 scheduled_purge_date是必需的。

需要密钥/清除权限。

release_key

释放密钥。

释放密钥操作适用于所有密钥类型。 目标键必须标记为可导出。 此操作需要密钥/释放权限。

restore_key_backup

将密钥备份还原到保管库。

需要密钥/还原权限。

这会导入密钥的所有版本及其名称、属性和访问控制策略。 如果密钥的名称已在使用中,则还原该密钥将失败。 此外,目标保管库必须由与源保管库相同的 Microsoft Azure 订阅拥有。

rotate_key

通过生成密钥的新版本,根据密钥策略轮换密钥。

此操作需要密钥/轮换权限。

send_request

使用客户端的现有管道运行网络请求。

请求 URL 可以相对于保管库 URL。 除非另行指定,否则用于请求的服务 API 版本与客户端的版本相同。 如果响应是错误,则此方法不会引发;若要引发异常,请对返回的响应对象调用 raise_for_status () 。 有关如何使用此方法发送自定义请求的详细信息,请参阅 https://aka.ms/azsdk/dpcodegen/python/send_request

update_key_properties

更改密钥的属性 (而不是其加密材料) 。

需要密钥/更新权限。

update_key_rotation_policy

汇报密钥保管库密钥的轮换策略。

此操作需要密钥/更新权限。

backup_key

以仅供 Azure 密钥保管库使用的受保护表单备份密钥。

需要密钥/备份权限。

这旨在允许将密钥从一个保管库复制到另一个保管库。 这两个保管库必须归同一 Azure 订阅所有。 此外,无法跨地缘政治边界执行备份/还原。 例如,无法将美国区域中保管库的备份还原到欧盟区域中的保管库。

backup_key(name: str, **kwargs) -> bytes

参数

name
str
必需

要备份的密钥的名称

返回类型

例外

如果该键不存在,则为

对于其他错误

begin_delete_key

删除密钥及其加密材料的所有版本。

需要密钥/删除权限。 此方法返回密钥保管库已开始删除密钥。 在启用了软删除的保管库中,删除可能需要几秒钟时间。 因此,此方法返回一个轮询器,使你能够等待删除完成。

begin_delete_key(name: str, **kwargs) -> LROPoller[DeletedKey]

参数

name
str
必需

要删除的密钥的名称。

返回

删除密钥操作的轮询器。 轮询器 的结果 方法返回 , DeletedKey 而无需等待删除完成。 如果保管库已启用软删除,并且你想要使用 purge_deleted_key永久删除密钥,请首先调用轮询者的 wait 方法。 它将阻止,直到删除完成。 wait 方法需要密钥/get 权限。

返回类型

例外

如果该键不存在,则为

对于其他错误

begin_recover_deleted_key

将已删除的密钥恢复到其最新版本。 只能在启用了软删除的保管库中实现。

需要密钥/恢复权限。

此方法返回密钥保管库已开始恢复密钥。 恢复可能需要几秒钟。 因此,此方法返回一个轮询器,使你能够等待恢复完成。 仅当想要立即在另一个操作中使用恢复的密钥时,才需要等待。

begin_recover_deleted_key(name: str, **kwargs) -> LROPoller[KeyVaultKey]

参数

name
str
必需

要恢复的已删除密钥的名称

返回

恢复操作的轮询程序。 轮询器 的结果 方法返回已 KeyVaultKey 恢复的 ,而无需等待恢复完成。 如果要立即使用恢复的密钥,请调用轮询 器等待方法 ,该方法会阻止,直到密钥可供使用。 wait 方法需要密钥/get 权限。

返回类型

例外

close

关闭客户端打开的套接字。

使用客户端作为上下文管理器时,不需要调用此方法。

close() -> None

例外

如果该键不存在,则为

对于其他错误

create_ec_key

创建新的椭圆曲线键,或者,如果 name 已在使用中,则创建密钥的新版本。

需要 keys/create 权限。

create_ec_key(name: str, **kwargs) -> KeyVaultKey

参数

name
str
必需

新密钥的名称。

curve
KeyCurveNamestrNone

椭圆曲线名称。 默认为 NIST P-256 椭圆曲线。

key_operations
list[KeyOperationstr] 或 None

允许的密钥操作

hardware_protected
boolNone

是否应在硬件安全模块中创建密钥。 默认为 False

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不在密钥的 UTC 日期之前

expires_on
datetimeNone

密钥的到期日期(UTC)

exportable
boolNone

是否可以导出私钥。

release_policy
KeyReleasePolicyNone

可以导出密钥的策略规则。

返回

创建的密钥

返回类型

例外

create_key

创建密钥,或者,如果 name 已在使用中,则创建密钥的新版本。

需要密钥/创建权限。

create_key(name: str, key_type: str | KeyType, **kwargs) -> KeyVaultKey

参数

name
str
必需

新密钥的名称。

key_type
KeyTypestr
必需

要创建的密钥类型

size
intNone

密钥大小(以位为单位)。 仅适用于 RSA 和对称密钥。 请考虑改用 create_rsa_keycreate_oct_key

curve
KeyCurveNamestrNone

椭圆曲线名称。 仅适用于椭圆曲线键。 默认为 NIST P-256 椭圆曲线。 若要创建椭圆曲线键,请考虑改用 create_ec_key

public_exponent
intNone

要使用的 RSA 公共指数。 仅适用于在托管 HSM 中创建的 RSA 密钥。

key_operations
list[KeyOperationstr] 或 None

允许的密钥操作

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不在密钥的 UTC 日期之前

expires_on
datetimeNone

密钥的到期日期(UTC)

exportable
boolNone

是否可以导出私钥。

release_policy
KeyReleasePolicyNone

可以导出密钥的策略规则。

返回

创建的密钥

返回类型

例外

create_oct_key

创建新的八进制数序列 (对称) 密钥,或者,如果 name 正在使用,则创建密钥的新版本。

需要 keys/create 权限。

create_oct_key(name: str, **kwargs) -> KeyVaultKey

参数

name
str
必需

新密钥的名称。

size
intNone

密钥大小(以位为单位),例如 128、192 或 256。

key_operations
list[KeyOperationstr] 或 None

允许的密钥操作。

hardware_protected
boolNone

是否应在硬件安全模块中创建密钥。 默认为 False

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不在密钥的 UTC 日期之前

expires_on
datetimeNone

密钥的到期日期(UTC)

exportable
boolNone

是否可以导出密钥。

release_policy
KeyReleasePolicyNone

可以导出密钥的策略规则。

返回

创建的密钥

返回类型

例外

create_rsa_key

创建新的 RSA 密钥,或者,如果 name 已在使用中,则创建密钥的新版本

需要 keys/create 权限。

create_rsa_key(name: str, **kwargs) -> KeyVaultKey

参数

name
str
必需

新密钥的名称。

size
intNone

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

public_exponent
intNone

要使用的 RSA 公共指数。 仅适用于在托管 HSM 中创建的 RSA 密钥。

hardware_protected
boolNone

是否应在硬件安全模块中创建密钥。 默认为 False

key_operations
list[KeyOperationstr] 或 None

允许的密钥操作

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不在密钥的 UTC 日期之前

expires_on
datetimeNone

密钥的到期日期(UTC)

exportable
boolNone

是否可以导出私钥。

release_policy
KeyReleasePolicyNone

可以导出密钥的策略规则。

返回

创建的密钥

返回类型

例外

get_cryptography_client

CryptographyClient获取给定键的 。

get_cryptography_client(key_name: str, **kwargs) -> CryptographyClient

参数

key_name
str
必需

用于执行加密操作的密钥的名称。

key_version
str

用于执行加密操作的密钥的可选版本。

返回

使用 CryptographyClient 与此 KeyClient相同的选项、凭据和 HTTP 客户端的 。

返回类型

例外

如果该键不存在,则为

对于其他错误

get_deleted_key

获取已删除的密钥。 只能在启用了软删除的保管库中实现。

需要密钥/获取权限。

get_deleted_key(name: str, **kwargs) -> DeletedKey

参数

name
str
必需

密钥的名称

返回

已删除的密钥

返回类型

例外

如果该键不存在,则为

对于其他错误

get_key

获取密钥的属性,如果它是非对称密钥,则获取其公共材料。

需要密钥/获取权限。

get_key(name: str, version: str | None = None, **kwargs) -> KeyVaultKey

参数

name
str
必需

要获取的密钥的名称。

version
strNone
必需

(可选) 要获取的特定密钥版本。 如果未指定,则获取密钥的最新版本。

返回类型

例外

如果该键不存在,则为

对于其他错误

get_key_rotation_policy

获取密钥保管库密钥的轮换策略。

get_key_rotation_policy(key_name: str, **kwargs) -> KeyRotationPolicy

参数

key_name
str
必需

键的名称。

返回

密钥轮换策略。

返回类型

例外

*azure.core.exceptions.HttpResponseError*

get_random_bytes

从托管 HSM 获取请求的随机字节数。

get_random_bytes(count: int, **kwargs) -> bytes

参数

count
int
必需

请求的随机字节数。

返回

随机字节。

返回类型

例外

如果请求的随机字节少于一个,

对于其他错误

import_key

导入在外部创建的密钥。

需要密钥/导入权限。 如果 name 已在使用中,密钥将作为新版本导入。

import_key(name: str, key: JsonWebKey, **kwargs) -> KeyVaultKey

参数

name
str
必需

导入的密钥的名称

key
JsonWebKey
必需

要导入的 JSON Web 密钥

hardware_protected
boolNone

密钥是否应由硬件安全模块提供支持

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不在密钥的 UTC 日期之前

expires_on
datetimeNone

密钥的到期日期(UTC)

exportable
boolNone

是否可以导出私钥。

release_policy
KeyReleasePolicyNone

可以导出密钥的策略规则。

返回

导入的密钥

返回类型

例外

list_deleted_keys

列出所有已删除的密钥,包括每个密钥的公共部分。 只能在启用了软删除的保管库中实现。

需要密钥/列表权限。

list_deleted_keys(**kwargs) -> ItemPaged[DeletedKey]

返回

已删除密钥的迭代器

返回类型

例外

如果该键不存在,则为

对于其他错误

list_properties_of_key_versions

列出密钥版本的标识符和属性。

需要密钥/列表权限。

list_properties_of_key_versions(name: str, **kwargs) -> ItemPaged[KeyProperties]

参数

name
str
必需

密钥的名称

返回

没有加密材料的密钥的迭代器

返回类型

例外

如果该键不存在,则为

对于其他错误

list_properties_of_keys

列出保管库中所有密钥的标识符和属性。

需要密钥/列表权限。

list_properties_of_keys(**kwargs) -> ItemPaged[KeyProperties]

返回

没有加密材料或版本信息的密钥迭代器

返回类型

例外

如果该键不存在,则为

对于其他错误

purge_deleted_key

永久删除已删除的密钥。 只能在启用了软删除的保管库中使用。

执行指定密钥的不可逆删除,无法恢复。 如果未指定“Purgeable”, recovery_level 则操作不可用。 此方法仅在清除其 之前的密钥时 scheduled_purge_date是必需的。

需要密钥/清除权限。

purge_deleted_key(name: str, **kwargs) -> None

参数

name
str
必需

要清除的已删除密钥的名称

返回

例外

示例


   # if the vault has soft-delete enabled, purge permanently deletes a deleted key
   # (with soft-delete disabled, begin_delete_key is permanent)
   key_client.purge_deleted_key("key-name")

release_key

释放密钥。

释放密钥操作适用于所有密钥类型。 目标键必须标记为可导出。 此操作需要密钥/释放权限。

release_key(name: str, target_attestation_token: str, **kwargs) -> ReleaseKeyResult

参数

name
str
必需

要获取的密钥的名称。

target_attestation_token
str
必需

密钥发布目标的证明断言。

version
strNone

要发布的密钥的特定版本。 如果未指定,则发布最新版本。

algorithm
strKeyExportEncryptionAlgorithmNone

用于保护已释放密钥材料的加密算法。

nonce
strNone

客户端提供的用于新鲜感的 nonce。

返回

密钥释放的结果。

返回类型

例外

restore_key_backup

将密钥备份还原到保管库。

需要密钥/还原权限。

这会导入密钥的所有版本及其名称、属性和访问控制策略。 如果密钥的名称已在使用中,则还原该密钥将失败。 此外,目标保管库必须由与源保管库相同的 Microsoft Azure 订阅拥有。

restore_key_backup(backup: bytes, **kwargs) -> KeyVaultKey

参数

backup
bytes
必需

返回的密钥备份 backup_key

返回

还原的密钥

返回类型

例外

如果备份密钥的名称已在使用中,

对于其他错误

rotate_key

通过生成密钥的新版本,根据密钥策略轮换密钥。

此操作需要密钥/轮换权限。

rotate_key(name: str, **kwargs) -> KeyVaultKey

参数

name
str
必需

要轮换的密钥的名称。

返回

轮换密钥的新版本。

返回类型

例外

send_request

使用客户端的现有管道运行网络请求。

请求 URL 可以相对于保管库 URL。 除非另行指定,否则用于请求的服务 API 版本与客户端的版本相同。 如果响应是错误,则此方法不会引发;若要引发异常,请对返回的响应对象调用 raise_for_status () 。 有关如何使用此方法发送自定义请求的详细信息,请参阅 https://aka.ms/azsdk/dpcodegen/python/send_request

send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse

参数

request
HttpRequest
必需

要发出的网络请求。

stream
bool

是否对响应有效负载进行流式处理。 默认为 False。

返回

网络呼叫的响应。 不对响应执行错误处理。

返回类型

例外

如果该键不存在,则为

对于其他错误

update_key_properties

更改密钥的属性 (而不是其加密材料) 。

需要密钥/更新权限。

update_key_properties(name: str, version: str | None = None, **kwargs) -> KeyVaultKey

参数

name
str
必需

要更新的密钥的名称

version
strNone
必需

(可选) 要更新的密钥版本。 如果未指定,则更新最新版本。

key_operations
list[KeyOperationstr] 或 None

允许的密钥操作

enabled
boolNone

是否启用密钥以供使用。

tags
dict[str, str] 或 None

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

not_before
datetimeNone

不早于 UTC 密钥的日期

expires_on
datetimeNone

密钥的到期日期(UTC)

release_policy
KeyReleasePolicyNone

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

返回

更新的密钥

返回类型

例外

如果键不存在,则为

其他错误

update_key_rotation_policy

汇报密钥保管库密钥的轮换策略。

此操作需要密钥/更新权限。

update_key_rotation_policy(key_name: str, policy: KeyRotationPolicy, **kwargs) -> KeyRotationPolicy

参数

key_name
str
必需

给定保管库中密钥的名称。

policy
KeyRotationPolicy
必需

密钥的新轮换策略。

lifetime_actions
list[KeyRotationLifetimeAction]

将由密钥保管库在密钥生存期内执行的操作。 这将覆盖提供的 policy的生存期操作。

expires_in
str

将应用于新密钥版本的策略的到期时间,定义为 ISO 8601 持续时间。 例如:90 天为“P90D”,3 个月为“P3M”,48 小时为“PT48H”。 有关 ISO 8601 持续时间的详细信息,请参阅 维基百科 。 这将覆盖提供的 policy的到期时间。

返回

更新的轮换策略。

返回类型

例外

属性

vault_url