У меня есть API-шлюз, который я вызывал из Node.js, используя библиотеку aws4, используя этот формат:
let aws4 = require('aws4');
let request = {
host: 'myapi.execute-api.us-west-2.amazonaws.com',
method: 'GET',
url: 'https://myapi.execute-api.us-west-2.amazonaws.com/Prod/foos',
path: '/Prod/foos'
}
let signedRequest = aws4.sign(request,
{
secretAccessKey: AWS.config.credentials.secretAccessKey,
accessKeyId: AWS.config.credentials.accessKeyId
})
delete signedRequest.headers['Host']
delete signedRequest.headers['Content-Length']
let response = await axios(signedRequest)
Теперь мы хотим прекратить сохранение учетных данных непосредственно на сервере и использовать вместо этого роли IAM.
Когда я пытаюсь вызвать его без учетных данных, независимо от того, подписано ли оно с использованием aws4, я получаю эту ошибку:
The security token included in the request is invalid.