AWS IAM не позволяет моим пользователям менять свои пароли.

Вопрос или проблема

Моя политика паролей настроена так, чтобы позволять пользователям изменять свои пароли, но когда я создаю нового пользователя с опцией “должен изменить пароль”, пользователю сообщают, что ему требуется разрешение “iam:ChangePassword”.

Они получают похожее сообщение, когда пытаются изменить его с помощью CLI.

Есть идеи, как диагностировать и исправить это?

У меня была такая же проблема. Новые пользователи получали следующее сообщение об ошибке:

Пользователь либо не авторизован выполнять iam:ChangePassword, либо введенный
пароль не соответствует политике паролей учетной записи, установленной
администратором

Это несмотря на установленную опцию “Разрешить пользователям изменять свои собственные пароли”. Явное добавление разрешения iam:ChangePassword также не помогло.

В моем случае проблемой оказалось то, что у нас была политика принудительной аутентификации MFA, но когда пользователь только что вошел в систему впервые, у него, очевидно, еще нет настроенной MFA.

Удаление политики MFA решило проблему для меня.

У меня была такая же проблема, я выяснил, что можно исключить действия из обязательной MFA:

{
  "Sid": "DenyAllExceptListedIfNoMFA",
  "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"
    }
  }
}

Это сгенерированная политика, в которой нет changepassword в списке исключений.
Политика запрещает любой доступ без mfa, кроме действий из списка NotAction.
Вам нужно добавить “iam:ChangePassword” в этот список

Вы не включили политики, которые установили, но из сообщения об ошибке ясно, что у пользователя нет разрешений ChangePassword.

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:GetAccountPasswordPolicy",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:ChangePassword",
      "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
    }
  ]
}

Ссылка

Разрешение пользователям изменять пароли

В моем случае у нас была назначена MFA, но это не было проблемой на самом деле. Пароль, который я пытался использовать, не соответствовал требованиям безопасности, указанным в IAM для нашей политики паролей. Когда я пытался изменить его через AWS Console, я получил гораздо более четкое сообщение об ошибке "Пароль не соответствует политике паролей учетной записи: он должен содержать не менее 10 символов".

Я не совсем уверен, почему это было так, поскольку выполнение echo 'mynewpassword' | wc -c показывало 10 символов, но когда я изменил его на более длинный пароль, изменение прошло успешно. Сообщение из CLI определенно не указывало, что проблема была в политике паролей, так как ошибка давала впечатление, что это была проблема с разрешениями IAM.

Я также столкнулся с этим после изменений в опыте входа пользователя. В моем случае это было из-за добавления пути к новому пользователю (который использовался в политике, которую я реализовал).

Однако стандартная политика AWS IAMUserChangePassword не учитывает это.

например.

"arn:aws:iam::*:user/${aws:username}"

Если вы добавили путь к пользователю IAM, это будет действительный arn:

"arn:aws:iam::account-id:user/mypath/myuser

На данный момент мы просто решили добавлять путь после того, как пользователь вошел в систему, или не проверять изменение пароля при входе.

В моем случае проблема была с форматом пароля:

  • Окно от AWS для изменения пароля, когда он почти истек, не показывает допустимый формат (верхний и нижний регистры, обязательно наличие хотя бы одной цифры и/или специального символа….)

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

.

Ответ или решение

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

Теория

AWS IAM (Identity and Access Management) управляет доступом к ресурсам AWS и действиями с ними. Для изменения пароля пользователя необходимо разрешение iam:ChangePassword. Это можно настроить через политики IAM, которые определяют, какие действия пользователи могут выполнять. Кроме того, требуется учитывать политику паролей, которая может устанавливать определенные требования к длине и сложности паролей.

Примеры

  1. Разрешения IAM: Одним из распространенных решений является добавление следующей политики, чтобы разрешить пользователям изменять свои пароли:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "iam:GetAccountPasswordPolicy",
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": "iam:ChangePassword",
          "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
        }
      ]
    }
  2. Проблемы с MFA: В некоторых случаях политика требует использования MFA, что может создавать сложность при первой попытке входа пользователя без настроенного устройства MFA. Например, можно добавить iam:ChangePassword в список исключений в политике, которая запрещает действия без MFA:

    {
      "Sid": "DenyAllExceptListedIfNoMFA",
      "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"
        }
      }
    }
  3. Политика паролей: Также необходимо проверить, соответствуют ли новые пароли требованиям политики паролей. Например, минимальная длина и наличие специальных символов.

Применение

Чтобы исправить описанную проблему, рекомендуется предпринять следующие шаги:

  1. Проверьте и обновите политики IAM, чтобы удостовериться, что разрешение iam:ChangePassword включено для соответствующих пользователей в вашем AWS аккаунте.

  2. Рассмотрите необходимость настройки MFA. Если ваша организация использует MFA, убедитесь, что пользователи могут выполнить начальный вход без него. Временно отключите политику, требующую MFA, или добавьте действия в исключения.

  3. Убедитесь, что выбранные пароли пользователями соответствуют политике паролей вашей организации. Эту политику можно изменить в разделе IAM Management Console.

Следование этим шагам поможет вам устранить проблему и улучшить опыт пользователей при изменении паролей в AWS IAM.

Оцените материал
Добавить комментарий

Капча загружается...