Ограничить доступ к сайту, размещенному на S3, без добавления ips в белый список
У нас есть веб-сайт, размещенный на AWS S3, доступ к которому нам предназначен только для ограниченной группы людей. Прямо сейчас, мы белый список разрешенных IP-адресов, как описано в разделе Ограничить доступ к веб-сайту, размещенному на S3.
Однако у некоторых людей, которые должны иметь доступ к этому веб-сайту, нет статических ips, что вынуждает нас постоянно обновлять ips из белого списка в политике AWS.
Я уверен, что что-то вроде сертификатов на стороне клиента должно работать, но я понятия не имею, как реализовать это с точки зрения политики AIM. Любая другая (более простая) альтернатива, которая не полагается на статичность IP-адресов? Я предполагаю, что добавление ключей SSH в AWS не принесет никакой пользы в этом случае, верно?
1 ответ
Одним из альтернативных подходов является настройка контроля доступа на основе пользователя. Вы можете сделать это, используя следующие сервисы AWS.
- AWS Cognito UserPools
- AWS API Gateway
- AWS S3
Шаги следующие
- Создать AWS Cognito UserPool
- Создайте там своих пользователей с аутентифицированной ролью IAM, чтобы разрешить выполнение API Gateway.
- Создайте общедоступную страницу входа в S3 с помощью Cognito Login SDK
- Настройте шлюз API и перейдите к сервису S3 AWS, а также добавьте авторизатор Cognito UserPool, создающий требуемые роли IAM (см. Этот пример)
После установки пользователи должны иметь возможность войти в систему и получить доступ к S3 через API-шлюз.