Как избежать жесткого кодирования ключа доступа и значений ключа безопасности aws - PullRequest
0 голосов
/ 14 января 2020

В моем файле js я обращаюсь к своим AWS sns, но основная проблема заключается в том, что в настоящее время я жестко кодирую свои ключи доступа и безопасности IAM ... Есть ли способ избежать этого, используя временный ключ или скрытие моих ключей? Я разместил фрагмент о том, как я обновляю конфигурацию ниже.

var AWS = require('aws-sdk');
AWS.config.update({

  region: < 'My Hard coded region' >,
  credentials: {
    accessKeyId: < 'My Hard coded Access Key' >,
    secretAccessKey: <'My Hard Coded Security Key'>
     }
});
...

ПОЖАЛУЙСТА, ПОМОГИТЕ.

Ответы [ 2 ]

1 голос
/ 14 января 2020

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

Несмотря на то, что это возможно, мы не рекомендуем жестко кодировать ваши учетные данные AWS в вашем приложении. Жесткое кодирование учетных данных создает риск раскрытия идентификатора вашего ключа доступа и секретного ключа доступа

См. https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html

Также см. Из рекомендаций по управлению AWS Ключи доступа:

Не вставляйте ключи доступа непосредственно в код. AWS SDK и AWS Инструменты командной строки позволяют размещать ключи доступа в известных местах, чтобы вам не приходилось хранить их в коде.

См. https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html

Самый безопасный способ - загрузить учетные данные из ролей AWS Identity and Access Management (IAM) для Amazon EC2.

Каждый SDK имеет способ сделать это. Проверьте документацию SDK для загрузки учетных данных из IAM.

Вот хороший обзор рекомендаций по учетным данным, примеры которых приведены в Java: https://aws.amazon.com/blogs/developer/credentials-best-practices/

0 голосов
/ 14 января 2020

Очень сложно комментировать, не зная больше о вашем коде.

Реагирующая версия - мобильное приложение. Вам понадобится сервис для аутентификации пользователей вашего мобильного приложения на основе сервиса. Один из таких сервисов - Amazon Cognito.

Пул пользователей

В Amazon Cognito существует концепция, называемая user pool. В пуле пользователей хранятся пользователи.

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

Пул удостоверений

Пул удостоверений - это концепция, в которой временные учетные данные AWS выдаются в обмен на авторизованный токен. Это временные AWS учетные данные, с помощью которых вы можете вызывать aws службы напрямую из мобильного приложения.

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

вот статья, которую вы можете прочитать - https://pusher.com/tutorials/serverless-react-native-aws-amplify

...