AWS IAM принудительно использует MFA, но позволяет изменить пароль в первый раз

Как принудительно использовать MFA для пользователей AWS IAM, но разрешить им сменить пароль при первом входе в систему?

Если вы подписаны на Документы AWS и принудительно MFA, новые пользователи не могут изменить пароль при первом получении своей учетной записи.

Я знаю, что вы можете либо принудительно MFA или не и разрешить пользователям управлять своими паролями и учетными данными. Кроме того, у AWS есть способ обойти эту проблему, но это не рекомендуется:

Этот пример политики не позволяет пользователям сбрасывать пароль при входе в систему. Новые пользователи и пользователи с просроченным паролем могут попытаться это сделать. Вы можете разрешить это, добавив iam:ChangePassword в инструкцию DenyAllExceptListedIfNoMFA. Однако IAM не рекомендует этого. Разрешение пользователям изменять свой пароль без MFA может быть угрозой безопасности.

Итак, что такое «рекомендуемый» способ?

Этот вопрос также был задан на форуме AWS без реального ответа.


person Viet    schedule 16.10.2019    source источник


Ответы (1)


Здесь рекомендуется использовать SSO/федерацию удостоверений, но я придумал ручное решение с единой политикой, которое упрощает управление, если у вас еще нет единого входа. С моим решением все еще существует риск, но его объем ограничен только процессом первоначальной настройки учетной записи. Это включает в себя ручную пометку нового пользователя IAM тегом NewUser, а затем ручное снятие с него отметки после того, как он сбросит свой пароль и настроит MFA.

В следующем руководстве предполагается, что вы используете рекомендованная политика AWS, позволяющая пользователям IAM, прошедшим аутентификацию MFA, управлять своими учетными данными на странице «Мои учетные данные безопасности».

Отредактируйте свою политику MFA там, где находится ваш блок "Sid": "DenyAllExceptListedIfNoMFA", и замените его следующим:

{
    "Sid": "DenyAllExceptListedIfNoMFAAndNewUser",
    "Effect": "Deny",
    "NotAction": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:GetUser",
        "iam:ListMFADevices",
        "iam:ListVirtualMFADevices",
        "iam:ResyncMFADevice",
        "sts:GetSessionToken",
        "iam:ChangePassword"
    ],
    "Resource": "*",
    "Condition": {
        "BoolIfExists": {
            "aws:MultiFactorAuthPresent": "false"
        }
    }
},
{
    "Sid": "DenyAllExceptListedIfNoMFA",
    "Effect": "Deny",
    "NotAction": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:GetUser",
        "iam:ListMFADevices",
        "iam:ListVirtualMFADevices",
        "iam:ResyncMFADevice",
        "sts:GetSessionToken"
    ],
    "Resource": "*",
    "Condition": {
        "BoolIfExists": {
            "aws:MultiFactorAuthPresent": "false"
        },
        "StringNotEqualsIfExists": {
            "iam:ResourceTag/NewUser": "true"
        }
    }
}

Создайте нового пользователя и добавьте тег NewUser со значением true. Снимок экрана консоли AWS IAM с описанием предыдущей инструкции

Отправьте учетные данные новому пользователю. После того, как они вошли в систему в первый раз, удалите тег NewUser из своего пользовательского ресурса IAM.

Вы можете увидеть полный пример моей политики здесь.

person evan.bovie    schedule 07.04.2021