Обработка учетных данных AWS в приложении Angular - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть приложение Angular, которое использует следующие учетные данные AWS:

  awsAccessKeyId
  awssecretAccessKey
  awsBucket
  awsEndpointUrl
  awsRegion
  awsKey

Я хотел сохранить их в файле environment.ts моего приложения, но мне сказали, что оно плохая идея Где еще я могу их хранить? Я думал о Firebase, но позволял читать документ только аутентифицированному пользователю с определенным UID через вызов API.

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Как вы сказали, хранение AWS учетных данных в файлах внешнего интерфейса javascript небезопасно, поскольку оно доступно для чтения любому, кто может получить доступ к вашему веб-сайту.

Я предлагаю вам разработать API на стороне сервера. и вызовите API из вашего приложения angular. API используется для общения с aws сервисами. Таким образом, вам не нужно хранить учетные данные aws на веб-сайте stati c.

Использование API

Создание API для взаимодействия со службами AWS.

Логин пользователя

angular должен быть защищен входом в систему, чтобы пользователи могли проходить аутентификацию с помощью службы аутентификации (например, Amazon Cognito) или вашего собственного API аутентификации. Как только пользователь успешно вошел в систему, служба аутентификации вернет token некоторого вида. Вы можете сохранить этот токен в браузере Local Stoage.

, позвоните в ваш API

Когда вы вызываете конечную точку API, вам нужно будет предоставить этот токен. API должен проверить токен перед тем, как разрешить вызов.

Ссылка: https://www.techopedia.com/definition/27674/html5-local-storage

Надеюсь, это поможет.

1 голос
/ 17 февраля 2020

Хранение таких учетных данных в файле среды не рекомендуется, потому что, как правило, файлы среды фиксируются в git.
1. Если хранилище опубликовано c, то все ваши учетные данные доступны для публикации * 1014. * (неправильно) использовать.
2. Если хранилище является частным, то также может возникнуть такая ситуация, когда над одним проектом работают несколько человек, но эти учетные данные понадобятся очень немногим, и не всем.
3 В вашем случае, если вы получите учетные данные AWS во внешнем интерфейсе, тогда любой может получить эти учетные данные на вкладке сети (самый простой способ) и сможет (не использовать) их.

Как / где вы должны хранить такие учетные данные, зависит от вашего варианта использования. Не может быть ответа, который отвечал бы потребностям каждого. Хотя есть несколько хороших подходов для этого:
1. Храните файл среды вне репозитория и распространяйте его среди разработчиков по мере необходимости.
2. Как вы упомянули, храните его в отдельном месте и извлекайте их во время выполнения.
3. Если у вас есть серверная часть, вместо получения учетных данных на внешнем интерфейсе и последующего доступа к облачной службе сохраните учетные данные на серверной стороне и получите доступ к облачной службе через серверную часть. (рекомендуется)

Могут быть и другие способы решения этой проблемы, но они также будут зависеть от этих проектов.

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