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

Можно ли требовать MFA для учетных записей AWS IAM?

Можно ли потребовать включить многофакторную аутентификацию (MFA) для определенных / всех учетных записей IAM в Amazon Web Services?

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

Ответ - да, есть. Используя условие. Например, для учетных записей администратора:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*", 
      "Condition":
      {
          "Null":{"aws:MultiFactorAuthAge":"false"}
      }
    }
  ]
}

Он будет применять MFA как для аутентификации по паролю, так и для аутентификации на основе токенов с использованием API.

Немного осмотревшись, кажется, что ответ - «отчасти». В IAM администратор может настроить MFA для другого пользователя IAM. Хотя это может быть немного сложно, если вы настраиваете виртуальный MFA, это возможно. Затем, если пользователю не были предоставлены разрешения на обновление / удаление своего MFA, это фактически необходимо.

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

[Обновить]

Я смог настроить пользователей как опытных пользователей (тем самым не предоставив им доступа к функциям IAM, хотя я уверен, что вы могли бы получить более детальную информацию) и реализовать с ними их MFA. Используя эту методологию, они не смогут его отключить.

Принятый ответ больше не действителен AFAICT. AWS задокументировал, как это сделать, в своей обучающей статье здесь:

https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html

Я следил за этим для моей новой учетной записи AWS и команды, и это отлично сработало.

Да, вы можете потребовать MFA для учетных записей IAM как для веб-консоли, так и для awscli командная строка. Фактически, невозможно надежно потребовать MFA для веб-консоли, не требуя его для awscli командная строка, потому что оба обращаются к одним и тем же API. Я говорю «надежно», потому что при сложной политике IAM можно разрешить некоторые awscli операции без MFA при применении MFA для веб-консоли. Однако результаты несколько непредсказуемы, и, кроме того, ключи IAM столь же, если не более опасны, незащищенные. Я рекомендую потребовать его для обоих, а затем, возможно, создать незащищенные ключи для особых случаев, когда MFA абсолютно противопоказан. Для автоматизированных процессов лучше всего подойдут роли.

Чтобы упростить операции MFA в командной строке, я создал набор сценариев bash и тщательно созданный пример политики принудительного применения MFA которые позволяют легко подключать / отключать vMFAd, а также запускать сеансы MFA и управлять ими. Они работают с вариантами macOS и Linux, но, вероятно, не работают с Windows (не тестировалось).

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

Мы задокументировали несколько соображений для многофакторности API AWS в целом (где добавить условия, каковы последствия и т. д.) в документации для некоторых настраиваемых инструментов (https://github.com/kreuzwerker/awsu) мы разработали для использования Yubikeys в качестве источника токенов TOTP. Это упрощает работу с ролями и долгосрочными учетными данными + токенами сеанса.