Ошибка Credentials: отсутствуют учетные данные в конфигурации.При использовании S3 SDK в EC2 - PullRequest
0 голосов
/ 20 сентября 2018

В архитектуре моего приложения есть один эластичный балансировщик нагрузки и группа автоматического масштабирования. В группе автоматического масштабирования я создал конфигурацию запуска для создания экземпляров EC2 с UserData для запуска сервера nodejs в каждом экземпляре. AWS_ACCESS_ID и AWS_SECRET_ACCESS_KEY добавлено в переменные среды EC2 с использованием пользовательских данных.Итак, в моем коде серверной части (Node) я не даю эти учетные данные.Это дает ошибку, когда я использую S3 SDK.Ошибка говорит: « CredentialsError: пропущены учетные данные в конфигурации ».


Но, если я использую те же пользовательские данные для создания отдельного экземпляра EC2 без какого-либо балансировщика нагрузки и группы автоматического масштабирования, Он работает нормально.

А также, если я остановлю сервер узла вручную (когда у меня есть балансировщик нагрузки и группа автоматического масштабирования) на экземпляре EC2 и снова запустлю его, он начнет работать нормально.

Ниже приведены пользовательские данные, которые у меня есть для конфигурации запуска EC2.

Я использую Amazon-Linux на EC2.

#!/bin/bash
set -e -x
echo AWS_ACCESS_KEY_ID=********** >> /etc/environment
echo AWS_SECRET_ACCESS_KEY=****************************** >> /etc/environment
curl --silent --location https://rpm.nodesource.com/setup_9.x | bash -
sudo yum install -y git nodejs
git clone https://github.com/Vaaceph/BackEndCloud.git && cd BackEndCloud
sudo npm install
DEBUG=express:* node server.js

1 Ответ

0 голосов
/ 26 сентября 2018

Лучшей практикой для EC2 является назначение профиля экземпляра в соответствии с: https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html

Преимущество этого заключается в том, что учетные данные, используемые EC2, недолговечны, автоматически вращаются и не требуют постоянного управления пользователемключ доступа / секретный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...