介绍
crypt-aws-kms 是 npm 上的一款加密解密工具,可以使用 AWS KMS 进行加密和解密。它可以帮助 Web 开发人员在使用 AWS KMS 进行客户端密钥加密时,简化开发流程和提高开发效率。
安装
- 使用 npm 安装
npm install crypt-aws-kms
- 或者使用 yarn 安装
yarn add crypt-aws-kms
快速入门
初始化模块
-- -------------------- ---- ------- ----- - --- - - ------------------- ----- ----- - ------------------------- ----- ------ - - ------- ------------ ------------ ------------ ---------------- ----------- -- ----- ------- - - ------ ------- -- ----- --- - --- ------------ ----- ------------- - ---------- ---------
加密
const plaintext = "hello world!"; const encryptedValue = await cryptInstance.encrypt(plaintext); console.log(`The encrypted value of "${plaintext}" is "${encryptedValue}"`);
解密
const decryptedValue = await cryptInstance.decrypt(encryptedValue); console.log(`The decrypted value of "${encryptedValue}" is "${decryptedValue}"`);
深入学习
初始化选项
options
参数允许您配置加密密钥。支持以下选项:
keyId
(必填) - 它是 KMS 加密密钥的唯一标识符。tenantId
(可选) - 它是唯一标识客户的字符串。
成功策略
当成功加密或解密明文时,会返回一个包含 value
和 encryptedDataKey
的对象。value
是已加密或解密的值,encryptedDataKey
是 KMS 加密的对称密钥。
错误处理
所有返回的错误都是错误对象。它们包含一个 code
字段,可以用来区分出错误类型。
示例代码
-- -------------------- ---- ------- ----- - --- - - ------------------- ----- ----- - ------------------------- ----- ------ - - ------- ------------ ------------ ------------ ---------------- ----------- -- ----- ------- - - ------ -------- --------- --------- -- ----- --- - --- ------------ ----- ------------- - ---------- --------- ------ -- -- - ----- --------- - ------ -------- ----- -------------- - ----- --------------------------------- ---------------- --------- ----- -- -------------- -- ---------------------------- ----- -------------- - ----- ------------------------------------------- --------------------------------- ---------------- --------- ----- -- ------------------------- -- ---------------------------- ---------------- -- - ------------------------ -------- ----- ---
最佳实践
使用 crypt-aws-kms 时,请确保对 EC2 实例使用 IAM 角色,以便实现最佳安全实践。给实例角色 dmallowcrypt 权限(意味着必须加密/解密)的方法:
- 创建一个包含必要权限的新IAM Policy。
-- -------------------- ---- ------- - ---------- ------------- ------------ - - --------- - -------------- ------------- -- ----------- ---- --------- ------- - - -
- 使用下面的 AWS CLI 命令创建密钥。
aws kms create-key
- 将权限附加到密钥上
aws kms create-alias --alias-name "alias/my_key" --target-key-id "<key-id>" aws kms put-key-policy --key-id <key-id> --policy "{\"Version\": \"2012-10-17\", \"Id\": \"key-default-policy\", \"Statement\": [{ \"Sid\": \"Enable IAM User Permissions\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"arn:aws:iam::AWS_ACCOUNT_ID:root\" }, \"Action\": [\"kms:*\"], \"Resource\": \"*\"}, {\"Sid\": \"Allow all roles in the account to use the key\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"arn:aws:iam::AWS_ACCOUNT_ID:root\"}, \"Action\": [\"kms:*\"], \"Resource\": \"*\"}]}"
- 授予 EC2 实例角色密钥权限。
aws ec2 associate-iam-instance-profile --instance-id INSTANCE_ID --iam-instance-profile Name=ecompute-crypto-ec2-role
总结
本文介绍了 crypt-aws-kms 的安装和使用方法,并提供了示例代码和最佳实践。使用此 npm 包可以简化 AWS KMS 的加密解密流程,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e581e8991b448e080f