Пожалуйста, обратитесь к пакету aws4 npm. Это хорошо задокументировано на странице github
В своей документации AWS рекомендует использовать aws-sdk, поскольку подписывание URL-адреса может стать утомительным для очень простой задачи (например, получить объект s3). Мы использовали aws4, потому что импорт aws-sdk в наш код привел к ненужным зависимостям.
Ниже приведен пример списка секретов из aws secretmanager.
В приведенном ниже примере,
- Сервис AWS обозначен сервисом: 'secrettsmanager'
- действие обозначено «X-Amz-Target»: «secretsmanager.ListSecrets»
Вы можете обратиться к API службы corrospoding aws, чтобы изменить приведенный ниже пример для своих нужд.
Обратите внимание, что в приведенных ниже примерах предполагается, что ec2 назначена правильная роль для выполнения этого запроса. Вот почему вы увидите, что он использует sts в примере ниже.
Если ваш случай отличается, пожалуйста, проверьте документацию , чтобы проверить, как секретный ключ передается через API aws4.
var http = require('http'),
https = require('https'),
aws4 = require('aws4')
request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
request(aws4.sign({
service: 'secretsmanager',
region: 'us-east-1',
method: 'POST',
path: '/',
headers: {
"Accept-Encoding": "identity",
"X-Amz-Target": "secretsmanager.ListSecrets",
"Content-Type": "application/x-amz-json-1.1"
},
body: '{}'
}))