У меня есть небольшое приложение NodeJS на ElasticBeanstalk, и это общается с S3 и DynamoDB. В настоящее время я устанавливаю ключ доступа и секретный ключ как переменную среды и использую их для обновления объекта aws.config. Это лучшая практика? Можно генерировать или использовать учетные данные на основе роли службы, поэтому мне больше не нужно устанавливать учетные данные в переменные среды? Итак, для чего у меня есть роль службы, когда я должен использовать учетные данные от пользователя для доступа к любым службам, таким как DynamoDB или S3.Используйте учетные данные EC2 на ElasticBeanstalk с NodeJS
ответ
Учетные данные профиля экземпляра лучше, чем использование переменных среды, поскольку учетные данные профиля профиля автоматически поворачиваются каждые несколько часов. Поскольку вы использовали термин роль службы в своем вопросе, позвольте мне уточнить разницу между ролью службы и профилем экземпляра.
Роль профиля экземпляра - это не то же самое, что «роль службы». Роль службы - это роль, предоставляющая разрешения на использование beanstalk для вызова других сервисов от вашего имени.
Учетные данные профиля экземпляра связаны с вашим экземпляром EC2, и этот экземпляр EC2 получает только ваш экземпляр EC2.
Копирование больше деталей от моего предыдущего ответа на эту тему here:
При создании среды вы можете выбрать, чтобы передать IamInstanceProfile (обычно с именем aws-elasticbeanstalk-ec2-role
) и роль службы (как правило, с именем aws-elasticbeantalk-service-role
). Эти две роли необходимы при использовании расширенного мониторинга работоспособности приложений. Обратите внимание, что для этих двух ролей требуется совершенно другой набор разрешений, и вы должны использовать разные роли для каждого из них. Вы можете найти список разрешений, необходимых для профиля службы и профиля экземпляра, зарегистрированного here.
При создании/клонировании/изменении среды с использованием AWS-консоли вам будет предложено выбрать роль службы. Если вы никогда раньше не использовали роль службы, вам будет предоставлена опция «Создать новую роль». Консоль позволяет создать роль службы, требуемую beanstalk, одним нажатием кнопки. Вы можете просмотреть разрешения перед созданием роли.
После первого создания консоль представит вам раскрывающийся список с той ролью, которую вы создали ранее (обычно с именем aws-elasticbeanstalk-service-role
), и вы можете повторно использовать эту роль службы.
Из документации: «Роль службы - это роль IAM, которую Elastic Beanstalk предполагает при вызове других сервисов от вашего имени. Эластичный Beanstalk использует роль службы, которую вы указываете при создании среды эластичного beanstalk при вызове Amazon Elastic Compute Cloud (Amazon EC2), Elastic Load Balancing и Auto Scaling API для сбора информации о состоянии ресурсов AWS ».
При создании/использовании роли вам необходимо убедиться, что пользователь IAM имеет разрешение на ролевую роль для созданной роли. Если вы не используете учетную запись root, убедитесь, что у пользователя IAM есть correct policies. Обратите внимание на разрешение iam: PassRole позволяет вашему пользователю IAM передавать роль beanstalk-сервису.
Подробнее о ролях обслуживания и профиле профиля here.
Так что я должен был только подключить S3 Access в aws-elasticbeanstalk-ec2-role и затем установить связь с S3 без заданных учетных данных?по var s3 = new aws.S3(); – user1791139
Да ... См. Разрешения здесь http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles.html#concepts-roles-instance, возможно, вам потребуется больше использовать рабочий уровень или ECS. В вашем случае вам кажется s3 и dynamodb –
Спасибо, что работает :) – user1791139
- 1. AWS ElasticBeanstalk NodeJS
- 2. PHP Upstart на Amazon EC2 Linux (Elasticbeanstalk)
- 3. iOS Push Notifications с NodeJS - учетные данные
- 4. Как хранить учетные данные в amazon EC2?
- 5. AWS nodejs и соединение dynmodb в Elasticbeanstalk
- 6. Учетные данные для нанятого веб-разработчика на Amazon EC2
- 7. WordPress на EC2 Требуется учетные данные FTP для установки плагинов
- 8. Учетные данные для нескольких учетных записей AWS на экземпляре EC2
- 9. PouchDB от Nodejs сгенерирует учетные данные auth
- 10. Nodejs google oAuth2 недопустимые учетные данные
- 11. ElasticBeanstalk - Добавление пользователя ec2 в другую группу
- 12. AWS ElasticBeanstalk EC2 to RDS postgresql connection
- 13. Upstart ReactPHP Script - AWS EC2 ElasticbeanStalk
- 14. ALLOW_ENCODED_SLASH на AWS Elasticbeanstalk
- 15. Создать экземпляр EC2 по анзибль с AWS учетные данные
- 16. Не удается установить учетные данные AWS в nodejs
- 17. Run Grunt на ElasticBeanstalk
- 18. EC2 rake instance на AWS ElasticBeanstalk Rails App
- 19. Настроить AWS ElasticBeanstalk NodeJS Установить (использовать пряжу)
- 20. Почему бы учетные данные безопасности иногда отсутствуют в метаданных EC2
- 21. Запрос Nodejs с AWS EC2
- 22. Как передать учетные данные экземплярам EC2 (без AWS-кредитов)
- 23. AWS EC2 Учетные данные PHP SDK не работают
- 24. Не удалось загрузить учетные данные экземпляра EC2 в экземпляреProfileCredentialsProvider
- 25. AWS UnicodeDecodeError при создании приложения на ElasticBeanstalk
- 26. Используйте изображение облачного облака на Amazon EC2?
- 27. Используйте учетные данные Facebook для регистрации моего приложения
- 28. ошибка, когда я бегу nodejs на EC2
- 29. Учетные данные AWS не найдены на производстве
- 30. Используйте поле api oauth, не вводя учетные данные пользователя
Если вам нужна безопасность, вам придется как-то использовать криптографию, но переменные среды используются довольно часто. Я думаю, что такие вещи, как https://learn.chef.io/, используются, чтобы избежать всех ручных компонентов настройки поля. – Catalyst