Alf*_*nso 5 amazon-web-services node.js amazon-kms nestjs
我正在尝试在 NestJS 应用程序中使用 aws 加密 sdk,下一个代码源显示了实现。
import { Controller, Get } from '@nestjs/common';
import {KmsKeyringNode, encrypt} from '@aws-crypto/client-node'
@Controller('encryption')
export class EncryptionController {
// constructor() {}
@Get()
async crypt() {
const generatorKeyId = "generatior key";
const masterKeyId = "master key id";
const keyring = new KmsKeyringNode({keyIds:[masterKeyId], generatorKeyId: generatorKeyId});
const plainText = "My passwords for senstive data";
const context = {
accountId: "100",
purpose: "youtube demo",
country: "Sri Lanka"
};
const { result } = await encrypt(keyring, plainText, { encryptionContext: context });
console.log(result)
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我执行请求以查看实现结果时,我收到下一个错误
Error: connect EHOSTUNREACH 169.254.169.254:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) {
message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1',
errno: 'EHOSTUNREACH',
code: 'CredentialsError',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-06-09T11:41:47.638Z,
originalError: {
message: 'Could not load credentials from any providers',
errno: 'EHOSTUNREACH',
code: 'CredentialsError',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-06-09T11:41:47.638Z,
originalError: {
message: 'EC2 Metadata roleName request returned error',
errno: 'EHOSTUNREACH',
code: 'EHOSTUNREACH',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-06-09T11:41:47.637Z,
originalError: [Object]
}
}
}
Run Code Online (Sandbox Code Playgroud)
不过,我从本教程中复制了一个 nodejs 脚本,看看它是否适用于我设置的 aws sdk,并且我没有收到任何错误,而且如果在 cli 中执行 aws kms 加密方法,我也没有任何错误。
我尝试导出AWS_SDK_LOAD_CONFIG=1我在其他类似错误中看到的变量。
有谁知道发生了什么事吗?
我有同样的问题。这让我很头疼,因为我在 AWS Fargate 中运行它,并且调试在那里并不那么容易。
该错误意味着 Javascript SDK 找不到 AWS 凭证。您可以在此处查看 SDK 尝试从以下位置加载凭证的顺序:https: //docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html
我的错误非常尴尬,我只是环境变量中有一个拼写错误。我的变量AWS_ACCESSS_KEY_ID不是AWS_ACCESS_KEY_ID. (很难看出区别,对吧?)
因此,可能会仔细检查环境变量(或配置文件)的名称
| 归档时间: |
|
| 查看次数: |
12021 次 |
| 最近记录: |