Подтвердить что ты не робот

Влияние идентификаторов учетной записи AWS

Я использую инструменты Amazon для создания веб-приложения. Я очень доволен ими, но у меня есть проблема безопасности.

Сейчас я использую несколько экземпляров EC2, S3, SimpleDB и SQS. Чтобы аутентифицировать запросы к различным службам, вы включаете Идентификаторы доступа (требуется логин).

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

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

Если один из моих экземпляров должен быть взломан, все мои активы Amazon будут скомпрометированы. Ключи могут использоваться для загрузки/замены данных S3 и SimpleDB, запуска и остановки экземпляров EC2 и т.д.

Как я могу свести к минимуму ущерб одного взломанного хоста?

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

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

Кто-нибудь имел дело или, по крайней мере, думал об этой проблеме?

4b9b3361

Ответ 1

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

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

Ответ 2

AWS позволяет создавать несколько пользователей с Identity and Access Management. Это позволит вам реализовать любой из ваших сценариев.

Я бы предложил определить пользователя IAM на экземпляр EC2, это позволяет отменить доступ к определенному пользователю (или только к его ключам доступа), если соответствующий экземпляр EC2 скомпрометирован, а также использовать мелкозернистые разрешения для ограничения того, какие API-интерфейсы пользователь может вызывать и какие ресурсы они могут получить доступ (например, только разрешить загрузке пользователя в конкретное ведро).

Ответ 3

Кроме того, роли AWS IAM позволяют назначать разрешения для экземпляра EC2 вместо того, чтобы размещать ключи в экземпляре. См. Сообщение в блоге http://aws.typepad.com/aws/2012/06/iam-roles-for-ec2-instances-simplified-secure-access-to-aws-service-apis-from-ec2.html Большинство SDK используют временные ключи, созданные ролями.

Ответ 4

AWS предлагает "Консолидированный биллинг", который затрагивает вашу озабоченность во второй мысли.

https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=consolidated-billing

"Консолидированная биллинг позволяет вам консолидировать платеж для нескольких учетных записей Amazon Web Services (AWS) в вашей компании, указав единую платежную учетную запись. Вы можете увидеть комбинированное представление расходов AWS, понесенных всеми учетными записями, а также получить подробный отчет о расходах для каждой из отдельных учетных записей AWS, связанных с вашей платежной учетной записью. Консолидированный биллинг также может снизить общие расходы, поскольку свернутое использование на всех ваших учетных записях может помочь вам быстрее достичь более низких уровней цен.