Вполне нормально иметь это в вашей конфигурации на стороне клиента. На самом деле это важно.
В идентификаторах нет секретной информации, это просто ссылки. Это ничем не отличается от раскрытия ваших конечных точек API, это должно быть сделано.
Ваш клиент должен подключиться к вашему экземпляру Cognito. Вероятно, вы могли бы придумать какой-то сложный способ скрыть свойства, вытащив их из онлайн-магазина во время выполнения, но ваш клиент все равно в конечном итоге выставит свойства. Кроме того, в этот момент ваш пользователь не будет аутентифицирован, поэтому вы даже не сможете защитить интернет-магазин.
Кроме того, ваши свойства не являются действительно изменяемыми. Требуется только один случай раскрытия свойств (например, разработчик публикует их или просто сообщает кому-то), и они необратимо теряются. Попытка скрыть их - проигрышная игра.
Я предлагаю создать бэкэнд-сервис просто для того, чтобы скрыть взаимодействие клиента с Cognito - это анти-паттерн.
AWS предоставляет ряд встроенных функций безопасности, включая блокировку учетной записи при использовании неверного пароля и блокировку вызовов с IP-адресов, которые совершают слишком много вызовов за короткий промежуток времени. Я считаю, что сервисы AWS также стоят за защитой DDOS (см. CloudFront). Если кто-то заберет вашу собственность и попытается атаковать вас с помощью грубого принуждения или DDOS, ему будет нелегко добиться чего-либо.