Назад | Перейти на главную страницу

Двухфакторная аутентификация на EC2

Мне нужно разместить на EC2 материалы для финансового учреждения. Банку требуется полная двухфакторная аутентификация, поэтому такие вещи, как SSH с ключом и паролем. Что-то вроде SecureID или подобное было бы здорово. Как я могу эффективно создать двухфакторную аутентификацию через SSH в моей среде EC2?

Также могу ли я рассматривать OpenVPN как часть двухфакторного шифрования?

С участием duo_unix, вы можете добавить двухфакторную аутентификацию для любого метода входа по SSH, а с Интеграция Duo OpenVPN, вы можете добавить в OpenVPN двухфакторную аутентификацию.

Предупреждение, я работаю в Duo.

Обновить

AWS недавно объявил Разрешения на уровне ресурсов для Amazon EC2 и Amazon RDS чтобы устранить этот давний недостаток поддержки IAM в EC2 и RDS, упомянутый в моем исходном ответе ниже:

Сегодня мы делаем IAM еще более мощным, вводя разрешения на уровне ресурсов для Amazon EC2 и Amazon RDS. [...]

На стороне EC2 теперь вы можете создавать и использовать политики IAM для управления доступом к экземплярам EC2, томам EBS, изображениям и эластичным IP-адресам. [...]

Вот лишь несколько вещей, которые вы можете сделать:

  • Разрешить пользователям работать с ограниченным набором ресурсов в более крупной многопользовательской среде EC2.
  • Установите разные разрешения для ресурсов «разработки» и «тестирования».
  • Определите, какие пользователи могут завершать какие экземпляры.
  • Требовать дополнительных мер безопасности, таких как аутентификация MFA, при работе с определенными ресурсами. [курсив мой]

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


Первоначальный ответ

Двухфакторная аутентификация, аналогичная SecurID, доступна через AWS Identity and Access Management (IAM) с помощью Многофакторная аутентификация AWS. Относится ли это на самом деле к вашему вопросу, зависит от вашего конкретного варианта использования, то есть от того, какие сценарии вам необходимо защитить с помощью двухфакторной аутентификации (например, упомянутый доступ SSH против доступа к Консоли управления AWS против доступа к веб-сайтам, которые вы размещаете на EC2 взамен и т.д.).

В частности, IAM охватывает доступ к Консоли управления AWS, но, очевидно, не SSH, кроме того, EC2 является одним из продуктов AWS, где IAM не применяется на уровне ресурсов, а только на уровне обслуживания, см. Интеграция с другими продуктами AWS и Использование AWS Identity and Access Management с EC2, особенно следующий отказ от ответственности:

Важный

Amazon EC2 использует ключи SSH, пароли Windows и группы безопасности для управления доступом к определенным инстансам Amazon EC2. Вы не можете использовать систему IAM, чтобы разрешить или запретить доступ к определенному экземпляру.

Обратите внимание, что использование IAM настоятельно рекомендуется для всего AWS, независимо от многофакторной аутентификации.

Наконец, я хотел бы выделить еще два недавних дополнения к IAM, которые также могут оказаться полезными для вашего варианта использования:

  • AWS Identity and Access Management - теперь с Identity Federation - Эта новая возможность позволяет существующим удостоверениям (например, пользователям) на вашем предприятии получать доступ к API и ресурсам AWS с помощью детализированных элементов управления доступом IAM без необходимости создавать пользователя IAM для каждого удостоверения.
  • Виртуальная (программная) многофакторная аутентификация AWS - поддержка RFC 6238 - Мы поддерживаем аппаратные устройства MFA, которые вы можете приобрести для генерации кодов аутентификации MFA. [...] Сегодня мы рады сообщить, что представляем дополнительную опцию - устройство Virtual MFA. Теперь вы можете генерировать коды аутентификации MFA на своем смартфоне или планшете.

EC2 теперь имеет двухфакторную аутентификацию для своих сервисов, что является важным первым шагом.

Однако все, что размещено в облачной службе, которой вы не владеете, в лучшем случае следует считать небезопасным.

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

Поэтому, если вы собираетесь хранить финансовые данные на EC2 на диске EBS, вам следует зашифровать их.

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

Цитировать другой источник потому что он хорошо это говорит.

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

Что сделало бы двухфакторную аутентификацию бесполезной против этого типа атак.

Теперь, если вы можете жить с этим, как вы это сделаете? Этот вопрос / ответ stackoverflow дает вам несколько ответов об использовании аутентификатора Google, который является одним из лучших.

Но существует множество вариантов двухфакторной аутентификации, для некоторых требуются аппаратные брелоки, а для других, например, аутентификатора Google, используется ваш мобильный телефон. Банк или финансовое учреждение может фактически указать, какой метод двухфакторной аутентификации они разрешат.

OpenID - отличная идея, поскольку позволяет использовать openid для входа во многие службы. Но он также ошибочен, потому что позволяет одному логину получить доступ ко многим вещам. Быстрый Google и я нашел http://wikid.com/ который использует OpenID и двухфакторную аутентификацию. Я бы не решился использовать его в вашем конкретном случае.

Кстати, вы собираетесь принимать платежи с кредитных карт? Вы можете обнаружить, что вам нужно быть PCI совместимы, и я не совсем уверен, сможете ли вы соответствовать требованиям на экземпляре EC2. Они довольно строгие, но не зря. Есть способы снизить ваши риски, но не принимать платежи по картам напрямую и не хранить данные кредитных карт, а пользоваться услугами стороннего поставщика платежей, с которым может взаимодействовать ваш веб-сайт.

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

Вам нужно будет обеспечить двухфакторный доступ к консоли EC2. Вот и вы во власти Amazon. Для доступа по SSH вы можете сделать множество вариантов. Вы можете использовать ключи SSH и требовать, чтобы у ключей был пароль. Однако обратите внимание, что ничто не мешает кому-либо написать SSH-клиент, который лжет о сертификате, имеющем пароль. SSH хорош с точки зрения безопасности, но не всегда соответствует нормативным требованиям. Например, может потребоваться периодическая генерация ключей. SSH этого не поддерживает.

Радиус PAM - ваш друг, если вы решите использовать двухфакторную систему аутентификации: http://www.wikidsystems.com/support/wikid-support-center/how-to/pam-radius-how-to

hth,

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

Также имейте в виду ограничения безопасности EC2, безопасность является периферийной, и вы не знаете, какие машины делают то, что внутри, поэтому установите строгую безопасность для связи между машинами, для этого очень желательно использовать надежное шифрование VPN (OpenVPN или stunnel).