0

Я создаю безсерверный веб-сайт с AWS Cognito, Lambda, S3 и еще десятком своих услуг. Мой HTML/JS на моей странице входа имеет идентификатор пула cognito. Насколько это безопасно? Я знаю, что лучше всего скрывать чувствительные вещи. Но это не клиент-сервер. Его весь клиент, если честный. Я получаю доступ к некоторым конфиденциальным данным через лямбда-вызов. Но даже для этого вызова требуются некоторые текстовые чувствительные входы, такие как идентификатор пользователя.Безопасно ли отображать идентификатор пула AWS cognito в моем html?

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.3.7.min.js"> </script> 
    <script> 
    AWS.config.region = 'XX-XXXX-1'; 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: 'XX-XXXX-1:XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX' 
    }); 
    var lambda = new AWS.Lambda(); 
    </script> 

Я действительно не люблю пулID. Злоумышленник может скопировать эту и грубую силу мои идентификаторы когнито. Любые идеи, чтобы скрыть это?

ответ

2

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

Вы можете уменьшить риск разоблачения идентификатора пула идентификаторов через роли, созданные Cognito, и ссылки на пул. Через них вы можете ограничить учетные данные, которые Cognito будет генерировать для ваших пользователей, не прошедших проверку подлинности/аутентификации. This blog post имеет больше о том, как это сделать. Вы можете сделать это еще дальше, значительно ограничив привилегии пользователей, не прошедших проверку подлинности, до тех пор, пока они не войдут в аутентифицированный идентификатор.

0

У меня также есть такая же озабоченность и планируется пользователю либо php, либо node.js, чтобы сохранить идентификатор пула cognito и идентификатор клиента на стороне сервера (например, EC2). Однако я был расстроен, узнав, что Amazon передумала и не включила поддержку SDK на стороне клиента Cognito User Pools. Has anyone connected to a user pool from a lambda written in Node

Надеемся, что это будет включено в будущие выпуски.

Я подозреваю, что то же самое верно для php.

Одним из вариантов было бы использовать один из javaScript obfuscator как этот: javascriptObfuscator в списке скрыть ключи или идентификаторы, просто глядя на источник страницы.

+0

Cognito пулы пользователей абсолютно поддерживается SDKs вне ядра Android, IOS и JavaScript SDKs, что означает должность вы связаны, что эти SDKs имели дополнительные помощники, которые делают жизнь немного проще, в то время как другие SDK этого не делают. Вы можете очень просто использовать прямые API-интерфейсы, включенные в большинство SDK, для подключения и использования пулов пользователей без использования мобильных методов SDK. Этот плакат не спрашивал о пулах пользователей Cognito, хотя, но Cognito federated identity. –

0

Вы можете поместить пул и другие идентификаторы Cognito в свой HTML без особого страха (если вы тщательно определили неавторизованные политики), но вы можете использовать API-шлюз (со встроенным авторизатором Cognito) для обработки вызовов другим вспомогательным службам (например, DynamoDB или S3), вместо использования непосредственно с интерфейсных js. Вот описано здесь:

https://aws.amazon.com/blogs/mobile/aws-mobile-app-backend-with-hybrid-apps/

Смежные вопросы