AWS kinesis поместил запись с недопустимым токеном безопасности

avatar
ram
8 апреля 2018 в 03:35
916
1
0

У меня есть клиент nodejs aws, который помещает записи в поток kinesis. Я почти уверен, что учетные данные, которые я использую, действительны. Однако я получаю эту ошибку:

error:   Error is  UnrecognizedClientException: The security token included in the request is invalid
    at Request.extractError (/app/node_modules/aws-sdk/lib/protocol/json.js:43:27)
    at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
    at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at Request.emit (/app/node_modules/aws-sdk/lib/request.js:671:14)

Использование aws-cli также возвращает аналогичную ошибку:

An error occurred (InvalidSignatureException) when calling the PutRecord operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

в списке конфигурации aws указаны правильные используемые учетные данные.

Есть ли что-нибудь, кроме предоставления ключа доступа, секретного ключа доступа и региона, который я должен предоставить?

Источник
Yogesh_D
8 апреля 2018 в 09:21
0

проверьте, есть ли у вас какие-либо учетные данные в вашем <user_home>/.aws/credentials, которые вы могли настроить и использовать.

ram
8 апреля 2018 в 18:23
0

Да, файл ~/.aws/credentials также имеет правильные учетные данные.

Ответы (1)

avatar
ram
11 апреля 2018 в 00:43
0

Проблема заключалась в том, что AWS не считывал предоставленные учетные данные (даже несмотря на то, что сценарий мог распечатать учетные данные!). Я использовал докер для запуска этого скрипта. Изменен способ формирования кинетического объекта и он работал:

new AWS.Kinesis({
    accessKeyId: <AWS_ACCESS_KEY_ID> 
    secretAccessKey: <AWS_SECRET_ACCESS_KEY> 
    region: <AWS_REGION> 
  });