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

适用于 JavaScript 的 Azure 密钥保管库 管理客户端库 - 版本 4.5.0

Azure 密钥保管库托管 HSM 是一种完全托管、高度可用、单租户且符合标准的云服务,可用于使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。 若要详细了解 Azure 密钥保管库 托管 HSM,可能需要查看:什么是 Azure 密钥保管库托管 HSM?

@azure/keyvault-admin包支持管理密钥保管库任务,例如完整备份/还原和密钥级基于角色的访问控制 (RBAC) 。

注意:管理库仅适用于 Azure 密钥保管库 托管 HSM - 面向密钥保管库的函数将失败。

注意:由于 Azure 密钥保管库服务限制,无法在浏览器中使用此包,请参阅此文档以获取指导。

关键链接:

入门

安装包

使用 NPM 安装适用于 JavaScript 和 TypeScript 的 Azure 密钥保管库 管理客户端库:

npm install @azure/keyvault-admin

配置 TypeScript

TypeScript 用户需要安装 Node 类型定义:

npm install @types/node

还需要在tsconfig.json中启用 compilerOptions.allowSyntheticDefaultImports 。 请注意,如果已启用 compilerOptions.esModuleInteropallowSyntheticDefaultImports 则默认启用 。 有关详细信息 ,请参阅 TypeScript 的编译器选项手册

目前支持的环境

先决条件

验证客户端

若要与 Azure 密钥保管库 服务交互,需要创建 类或 KeyVaultBackupClient 类的KeyVaultAccessControlClient实例,以及保管库 URL (Azure 门户) 和凭据对象中可能显示为“DNS 名称”。 本文档中显示的示例使用名为 的 DefaultAzureCredential凭据对象,该对象适用于大多数方案,包括本地开发和生产环境。 此外,我们建议使用 托管标识 在生产环境中进行身份验证。

可以在 Azure 标识文档中找到有关不同身份验证方式及其相应凭据类型的详细信息。

创建 KeyVaultAccessControlClient

使用 最适合你的身份验证方法进行身份验证后,可以按如下所示创建 KeyVaultAccessControlClient ,在构造函数中替换托管 HSM URL:

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyVaultAccessControlClient } = require("@azure/keyvault-admin");

const credentials = new DefaultAzureCredential();

const client = new KeyVaultAccessControlClient(`<your Managed HSM URL>`, credentials);

创建 KeyVaultBackupClient

使用 最适合你的身份验证方法进行身份验证后,可以按如下所示创建 KeyVaultBackupClient ,在构造函数中替换托管 HSM URL:

const { DefaultAzureCredential } = require("@azure/identity");
const { KeyVaultBackupClient } = require("@azure/keyvault-admin");

const credentials = new DefaultAzureCredential();

const client = new KeyVaultBackupClient(`<your Managed HSM URL>`, credentials);

关键概念

KeyVaultRoleDefinition

角色定义是权限的集合。 角色定义定义可以执行的操作,例如读取、写入和删除。 它还可以定义从允许的操作中排除的操作。

角色定义可以列出并指定为 的一 KeyVaultRoleAssignment部分。

KeyVaultRoleAssignment

角色分配是角色定义与服务主体的关联。 可以创建、列出、单独提取和删除它们。

KeyVaultAccessControlClient

KeyVaultAccessControlClient提供了允许管理角色定义 () 实例KeyVaultRoleDefinition和角色分配 () 实例的操作KeyVaultRoleAssignment

KeyVaultBackupClient

KeyVaultBackupClient提供用于执行完整密钥备份、完整密钥还原和选择性密钥还原的操作。

长时间运行的操作

KeyVaultBackupClient 执行的操作可能需要 Azure 资源所需的时间,这要求客户端层在等待操作完成的程序生命周期中跟踪、序列化和恢复操作。 这是通过包 @azure/core-lro 的常见抽象实现的。

KeyVaultBackupClient提供三种执行长时间运行操作的方法:

  • beginBackup,开始在指定的存储 Blob 帐户上生成 Azure 密钥保管库托管 HSM 的备份。
  • beginRestore,使用指向以前存储的 Azure Blob 存储备份文件夹的 SAS 令牌开始还原所有密钥材料。
  • beginSelectiveRestore,使用用户提供的 SAS 令牌(指向以前存储的 Azure Blob 存储备份文件夹)开始还原给定密钥的所有密钥版本。

开始长时间运行的操作的方法返回一个轮询程序,允许无限期地等待操作完成。 下面的示例中提供了详细信息。

示例

我们提供了 JavaScript 和 TypeScript 中的示例,这些示例显示了此包中的访问控制和备份/还原功能。 有关运行示例的详细步骤,请按照相应的自述文件进行操作。

故障排除

有关如何诊断各种故障方案的详细信息,请参阅 故障排除指南

启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL 环境变量设置为 info。 或者,可以在运行时通过调用 @azure/logger 中的 setLogLevel 来启用日志记录:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

后续步骤

可以通过以下链接找到更多代码示例:

贡献

若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。

曝光数