@aws-sdk/client-kms

中文文档
3.1164.0发布于 2026/11/07Apache-2.0TypeScriptESM + CJS近 30 天下载 3589.4万

JavaScript Kms 节点客户端的 AWS SDK, 浏览器和回放本地

中文使用文档
文档目录10 节
  1. 说明
  2. 安装
  3. 开始
  4. 导入
  5. 使用量
  6. 解决问题
  7. 获取帮助
  8. 捐款
  9. 许可证
  10. 客户端命令( 操作列表)

@aws- sdk/ 客户端 - kms

说明

JavaScript KMS Clients for Node.js的 AWS SDK, 浏览器和React Introduct 的用户端.

关键管理处

Key Management Service(KMS)是一种加密和密钥管理网络服务. 本指南描述 您可以在程序上称为 KMS 操作 。 关于KMS的一般信息, 见 关键管理事务开发者指南 。 。 。 .

KMS 已经取代了这个词 客户主密钥 (CMK) 与 密钥管理处密钥 财务报告和审定财务报表 KMS 密钥概念没有改变。 为防止突破变化,KMS保留了这个名词的一些变体.

Amazon Web Services提供包含库和样本代码的SDK,用于各种编程 语言和平台(Java,Rust,Python,Ruby,.Net,macOS,Android等). SDK队 提供一种方便的方式,以创建对KMS和其他亚马逊网络服务的程序访问. 例如,SDKs负责诸如签名请求(见下文),管理 错误,并自动重试请求 。 关于亚马逊网络服务SDK的更多信息, 包括如何下载和安装,见 工具 亚马逊网络服务。 。 。 .

我们建议您使用亚马逊网络服务 SDKs 给 KMS 发送 API 电话.

如果您在与 FIPS 140-2 通信时需要使用已验证的加密模块 Amazon Web Services,使用您喜欢的Amazon Web Services区域中的一款FIPS端点. 如果你需要沟通 超过IPv6,使用您喜欢的亚马逊网络服务区的双层端点. 详情 见 服务 结束点 关键管理处专题 亚马逊网络服务总参考 财务报告和审定财务报表 双层端点 支助 kMS 开发者指南中.

所有 KMS API 呼叫必须使用运输层安全系统签名并发送 (TLS) (英语). KMS 建议您总是使用最新支持的 TLS 版本 。 客户也必须 配有完美前向保密(PFS)的密码套件,如Ephemeral Diffie-Hellman (DHE)或椭圆曲线 Ephemeral Diffie-Hellman (ECDHE). 大部分现代系统如Java 7 并随后支持这些模式.

使用当前技术,野蛮武力攻击 KMS TLS 密码套件密钥交换 机制不可行。 然而,使用Rivest-Shamir-Adleman(RSA)的密码套件 如果大规模量子计算,Diffie-Hellman(DH)的密钥交换会很脆弱 变得实用. NIST IR 8547号公路 在NIST网站上规定了淘汰量子可变算法的时间表 到2030年,并且到2035年完全拒绝。 如果您的申请依赖于长期 kMS API流量保密 我们建议你 使用带有 KMS 的量子后 TLS。 。 。 . 关于量子后网络安全的更多信息,请参见: 量子后网络安全资源 编辑 国家安全局网站.

签名请求

申请必须使用访问密钥ID和秘密访问密钥签名. 我们强烈地 建议您不要使用您的 Amazon Web 服务账户 root 访问密钥 ID 和 秘密访问密钥 日常工作 工作时间 您可以为 IAM 用户或您使用访问密钥 ID和秘密访问密钥 可以使用安全托肯服务(STS)生成临时安全证书并使用这些证书签名 请求.

所有 KMS 请求都必须与 签字版本4。 。 。 .

登录 API 请求

KMS 支持 CloudTrail, 此服务为您登录 Amazon Web 服务 API 调用及相关事件 Amazon Web Services 账号并交付给您指定的Amazon S3桶. 通过使用 cloudTrail收集的信息,您可以确定向KMS提出了哪些要求,而KMS是哪些要求 请求,当它提出,等等。 更了解"云轨",包括如何翻转 打开并查找日志文件,参见 云轨用户指南。 。 。 .

额外资源

关于全权证书和签署请求的详情,请参看:

常用的 API 操作

在本指南中讨论的API业务中,以下将证明最有用 用于大多数应用程序。 您可能执行这些以外的操作, 例如创建 键和分配策略,使用控制台.

安装

要安装此软件包, 请使用您最喜欢的软件包管理器的 CLI :

  • npm install @aws-sdk/client-kms
  • yarn add @aws-sdk/client-kms
  • pnpm add @aws-sdk/client-kms

开始

导入

AWS SDK由客户端和命令进行调制. 要发送请求,只需导入 KMSClient 财务报告和审定财务报表 例如,您需要的命令 ListAliasesCommand数字 :

// ES5 example
const { KMSClient, ListAliasesCommand } = require("@aws-sdk/client-kms");
// ES6+ example
import { KMSClient, ListAliasesCommand } from "@aws-sdk/client-kms";

使用量

发出请求:

  • 以配置(如证书,区域)为客户端提供证据.
  • 以输入参数证明命令 .
  • 打电话 send 操作客户端,以输入方式提供命令对象.
const client = new KMSClient({ region: "REGION" });

const params = { /** input parameters */ };
const command = new ListAliasesCommand(params);

自动/等待

我们建议使用 等待时 运算符等待通过发送操作返回的承诺如下:

// async/await.
try {
  const data = await client.send(command);
  // process data.
} catch (error) {
  // error handling.
} finally {
  // finally.
}

承诺

您还可以使用 承诺连锁。 。 。 .

client
  .send(command)
  .then((data) => {
    // process data.
  })
  .catch((error) => {
    // error handling.
  })
  .finally(() => {
    // finally.
  });

合并客户端

归集客户端类别从同套件中导出,但没有"Client"后缀.

KMS 扩展 KMSClient 并额外支持所有操作,服务员, 和活人作为方法. 这种风格可能从JavaScript v2的AWS SDK中为您所熟悉.

如果你正在捆绑 AWS SDK, 我们建议只使用赤骨客户端(KMSClient) (中文(简体) ). 更多详情见博客文章: javaScript 的 AWS SDK 模块包。 。 。 .

import { KMS } from "@aws-sdk/client-kms";

const client = new KMS({ region: "REGION" });

// async/await.
try {
  const data = await client.listAliases(params);
  // process data.
} catch (error) {
  // error handling.
}

// Promises.
client
  .listAliases(params)
  .then((data) => {
    // process data.
  })
  .catch((error) => {
    // error handling.
  });

// callbacks (not recommended).
client.listAliases(params, (err, data) => {
  // process err and data.
});

解决问题

当服务返回例外时,错误将包括例外信息, 以及响应元数据(如请求编号).

try {
  const data = await client.send(command);
  // process data.
} catch (error) {
  const { requestId, cfId, extendedRequestId } = error.$metadata;
  console.log({ requestId, cfId, extendedRequestId });
  /**
   * The keys within exceptions are also parsed.
   * You can access them by specifying exception names:
   * if (error.name === 'SomeServiceException') {
   *     const value = error.specialKeyInException;
   * }
   */
}

另见 文档/错误。 。 。 .

获取帮助

请利用这些社区资源获得帮助. 我们使用 GitHub 问题来跟踪错误和特性请求,但处理它们的带宽有限.

为了测试您在Node.js中通用的JavaScript代码,浏览器和反应本地环境, 拜访我们 代码样本 repo。 。 。 .

捐款

此客户端代码是自动生成的. 任何修改在下次修改时都会被覆盖 @aws-sdk/client-kms 软件包正在更新. 为了帮助客户,你可以检查我们 生成客户端脚本。 。 。 .

许可证

此 SDK 分布于 Apache 许可证,2.0版本, (中文(简体) ), 更多信息见LICENSE.

客户端命令( 操作列表)

取消关键删除

命令 API 引用 编号 : 投入 编号 : 产出

连接客户端KeyStore

命令 API 引用 编号 : 投入 编号 : 产出

创建阿利亚斯

命令 API 引用 编号 : 投入 编号 : 产出

创建自定义KeyStore

命令 API 引用 编号 : 投入 编号 : 产出

创建格兰特

命令 API 引用 编号 : 投入 编号 : 产出

创建密钥

命令 API 引用 编号 : 投入 编号 : 产出

取消标题

命令 API 引用 编号 : 投入 编号 : 产出

解密

命令 API 引用 编号 : 投入 编号 : 产出

删除阿利亚斯

命令 API 引用 编号 : 投入 编号 : 产出

删除自定义KeyStore

命令 API 引用 编号 : 投入 编号 : 产出

删除导入的密钥元件

命令 API 引用 编号 : 投入 编号 : 产出

衍生共享保密

命令 API 引用 编号 : 投入 编号 : 产出

描述海关关卡

命令 API 引用 编号 : 投入 编号 : 产出

描述关键

命令 API 引用 编号 : 投入 编号 : 产出

禁用密钥

命令 API 引用 编号 : 投入 编号 : 产出

禁用关键字旋转

命令 API 引用 编号 : 投入 编号 : 产出

断开连接 CustomKeyStore

命令 API 引用 编号 : 投入 编号 : 产出

启用密钥

命令 API 引用 编号 : 投入 编号 : 产出

启用关键旋转

命令 API 引用 编号 : 投入 编号 : 产出

封装

命令 API 引用 编号 : 投入 编号 : 产出

加密

命令 API 引用 编号 : 投入 编号 : 产出

生成数据密钥

命令 API 引用 编号 : 投入 编号 : 产出

生成 DataKeyPair

命令 API 引用 编号 : 投入 编号 : 产出

生成 DataKeyPair 退出文字

命令 API 引用 编号 : 投入 编号 : 产出

生成不包含文字的 DataKey

命令 API 引用 编号 : 投入 编号 : 产出

生成 Mac

命令 API 引用 编号 : 投入 编号 : 产出

生成随机

命令 API 引用 编号 : 投入 编号 : 产出

获取 KeyLastUsage

命令 API 引用 编号 : 投入 编号 : 产出

获取关键政策

命令 API 引用 编号 : 投入 编号 : 产出

获取关键旋转状态

命令 API 引用 编号 : 投入 编号 : 产出

GetParemeters forImt 导入

命令 API 引用 编号 : 投入 编号 : 产出

获取公钥

命令 API 引用 编号 : 投入 编号 : 产出

导入关键元件

命令 API 引用 编号 : 投入 编号 : 产出

列表属性

命令 API 引用 编号 : 投入 编号 : 产出

列表

命令 API 引用 编号 : 投入 编号 : 产出

列表关键政策

命令 API 引用 编号 : 投入 编号 : 产出

列表关键旋转

命令 API 引用 编号 : 投入 编号 : 产出

列表密钥

命令 API 引用 编号 : 投入 编号 : 产出

列表资源标签

命令 API 引用 编号 : 投入 编号 : 产出

列表 可保留赠款

命令 API 引用 编号 : 投入 编号 : 产出

密钥政策

命令 API 引用 编号 : 投入 编号 : 产出

重新启动

命令 API 引用 编号 : 投入 编号 : 产出

复制密钥

命令 API 引用 编号 : 投入 编号 : 产出

退休人员

命令 API 引用 编号 : 投入 编号 : 产出

撤销

命令 API 引用 编号 : 投入 编号 : 产出

旋转按键

命令 API 引用 编号 : 投入 编号 : 产出

排程键删除

命令 API 引用 编号 : 投入 编号 : 产出

签名

命令 API 引用 编号 : 投入 编号 : 产出

标签资源

命令 API 引用 编号 : 投入 编号 : 产出

调和资源

命令 API 引用 编号 : 投入 编号 : 产出

更新阿利亚斯

命令 API 引用 编号 : 投入 编号 : 产出

更新客户端KeyStore

命令 API 引用 编号 : 投入 编号 : 产出

更新关键词描述

命令 API 引用 编号 : 投入 编号 : 产出

更新初始区域

命令 API 引用 编号 : 投入 编号 : 产出

校验

命令 API 引用 编号 : 投入 编号 : 产出

校验Mac

命令 API 引用 编号 : 投入 编号 : 产出

版本与发布记录

@aws-sdk/client-kms 共发布 750 个版本,首次发布于 2020/01/08;过去 12 个月发布了 222 个版本。

版本发布日期距今
3.1164.0latest2026/11/07今天
3.1163.02026/11/061 天前
3.1162.02026/11/052 天前
3.1161.02026/10/318 天前
3.1160.02026/10/309 天前
3.1159.02026/10/2910 天前

其他发布通道:alpha → 1.0.0-alpha.26,beta → 1.0.0-beta.5,gamma → 1.0.0-gamma.11,rc → 3.5.1-rc.0。

关于 @aws-sdk/client-kms 的常见问题

@aws-sdk/client-kms 是什么?

JavaScript Kms 节点客户端的 AWS SDK, 浏览器和回放本地

如何安装 @aws-sdk/client-kms?

在项目目录运行 npm install @aws-sdk/client-kms,或使用 pnpm add / yarn add / bun add。

@aws-sdk/client-kms 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-sdk/client-kms 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aws-sdk/client-kms 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-sdk/client-kms 可以商用吗?

@aws-sdk/client-kms 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-sdk/client-kms 的下载量有多少?

根据 npm 官方下载统计,@aws-sdk/client-kms 在 2026/10/08 – 2026/11/06 这 30 天内被下载 35,894,469 次,日均约 1,196,482 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-sdk/client-kms 还在维护吗?

最新版本 3.1164.0 发布于 2026/11/07(今天);至今共发布 750 个版本,其中过去 12 个月发布了 222 个;首次发布于 2020/01/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。