@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是哪些要求 请求,当它提出,等等。 更了解"云轨",包括如何翻转 打开并查找日志文件,参见 云轨用户指南。 。 。 .
额外资源
关于全权证书和签署请求的详情,请参看:
-
亚马逊网络服务 全权证书 - 本专题提供一般资料,说明类型 用于访问亚马逊网络服务的证书.
-
临时 全权证书 - 本节 IAM 用户指南 说明如何创建和使用临时安全证书.
-
签名版本 4 签署进程 - 这一套话题 让你通过签署过程 请求使用访问密钥ID和秘密访问密钥.
常用的 API 操作
在本指南中讨论的API业务中,以下将证明最有用 用于大多数应用程序。 您可能执行这些以外的操作, 例如创建 键和分配策略,使用控制台.
安装
要安装此软件包, 请使用您最喜欢的软件包管理器的 CLI :
npm install @aws-sdk/client-kmsyarn add @aws-sdk/client-kmspnpm 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";
使用量
发出请求:
- 以配置(如证书,区域)为客户端提供证据.
- 见 文件/中心 用于配置细节.
- 见 @aws- sdk/ 配置 附加选项.
- 以输入参数证明命令 .
- 打电话
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 问题来跟踪错误和特性请求,但处理它们的带宽有限.
- 访问 开发者指南 或者说 API 参考。 。 。 .
- 看看贴有标签的博客文章
aws-sdk-jsaWS 开发者博客. - 问个问题 叠叠流 并贴上标签
aws-sdk-js。 。 。 . - 加入 AWS JavaScript 社区 发光。 。 。 .
- 如果你发现你发现了一个虫子,请 打开一个问题。 。 。 .
为了测试您在Node.js中通用的JavaScript代码,浏览器和反应本地环境, 拜访我们 代码样本 repo。 。 。 .
捐款
此客户端代码是自动生成的. 任何修改在下次修改时都会被覆盖 @aws-sdk/client-kms 软件包正在更新.
为了帮助客户,你可以检查我们 生成客户端脚本。 。 。 .
许可证
此 SDK 分布于 Apache 许可证,2.0版本, (中文(简体) ), 更多信息见LICENSE.