Как установить учетные данные aws-sdk с помощью Elastic Beanstalk? - PullRequest
0 голосов
/ 19 марта 2019

Я запускаю экспресс-приложение в Elastic Beanstalk и по одному маршруту я использую aws-sdk для публикации уведомления для sns.

Это работает при локальном запуске, но как в среде Elastic Beanstalk как / можно настроить учетные данные «myprofile»?

router.post('/publish', async (req, res) => {
  var AWS = require('aws-sdk')
  AWS.config.update({region: 'us-east-2'})
  // myprofile exists locally, but how do I deal with this in the elastic beanstalk environment?
  var credentials = new AWS.SharedIniFileCredentials({profile: 'myprofile'})
  AWS.config.credentials = credentials
  //...more stuff
})

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете использовать профиль экземпляра IAM для предоставления разрешений вашему экземпляру ec2, поэтому, когда ваше приложение загружает SDK, переданные учетные данные будут автоматически загружены.

Проверьте эту ссылку https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles.html - вам понадобится профиль экземпляра. Для создания профиля экземпляра перейдите в консоль IAM> Роли, затем выберите службу EC2 в качестве службы, которая может взять на себя эту роль. Затем присоедините политики, которые должны вызывать ваши приложения (SNS).

В настройках beanstalk в разделе безопасность вы сможете установить только что созданный профиль экземпляра IAM, поэтому экземпляры в этой среде должны иметь связанную с ним роль.

Ваш код должен выглядеть следующим образом:

router.post('/publish', async (req, res) => {
  var AWS = require('aws-sdk')
  AWS.config.update({region: 'us-east-2'})

  //...more stuff
}) 

Также проверьте, если вы можете потребовать и установить регион за пределами контроллера;)

...