AWS IAM 不会让我的用户更改他们的密码

sco*_*ttb 3 amazon-web-services amazon-iam

我的密码策略配置为允许用户更改他们的密码,但是当我使用“必须更改密码”选项创建新用户时,用户会被告知他们需要“iam:ChangePassword”权限。

当他们尝试使用 CLI 更改它时,他们会收到类似的消息。

知道如何诊断和解决这个问题吗?

小智 9

我遇到了同样的问题。新用户收到以下错误消息:

用户无权执行 iam:ChangePassword 或输入的密码不符合管理员设置的帐户密码策略

尽管设置了“允许用户更改自己的密码”选项。显式添加iam:ChangePassword权限也没有帮助。

在我的案例中,问题是我们有一个强制 MFA 身份验证的策略,但是当用户第一次登录时,他们显然还没有设置 MFA。

删除 MFA 政策为我解决了这个问题。

  • @elichai2 要启用该功能,请在“需要 MFA”策略中找到排除某些权限的子句,并将“iam:ChangePassword”` 和“iam:GetUser”` 添加到其“NotAction”列表中。这是带有 `"Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } }` 的子句。 (3认同)
  • 真正的问题是如何既要求 MFA 又允许用户在设置 MFA 之前更改他们的密码 (2认同)

小智 7

我遇到了同样的问题,我发现您可以免除必须进行 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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是生成的策略,例外列表中没有 Changepassword。除 NotAction 列表中的操作外,策略禁止任何未经 MFA 的访问。您需要将“iam:ChangePassword”添加到列表中


ken*_*kas 1

您没有包含您制定的策略,但从错误消息中可以清楚地看出该用户没有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}"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

参考

允许用户更改密码