我的密码策略配置为允许用户更改密码,但是当我使用“必须更改密码”选项创建新用户时,用户会被告知他们需要“iam:ChangePassword”权限。
当他们尝试使用 CLI 进行更改时,他们会收到类似的消息。
知道如何诊断并修复这个问题吗?
答案1
我遇到了同样的问题。新用户收到以下错误消息:
用户无权执行 iam:ChangePassword 或输入的密码不符合管理员设置的账户密码策略
尽管设置了“允许用户更改自己的密码”选项,但还是出现这种情况。明确添加权限iam:ChangePassword
也无济于事。
在我看来,问题在于我们有一个强制进行 MFA 身份验证的策略,但是当用户第一次登录时,他们显然还没有设置 MFA。
删除 MFA 策略对我来说解决了这个问题。
答案2
我遇到了同样的问题,我发现你可以免除必须拥有 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”添加到列表中
答案3
您没有包含您制定的策略,但从错误消息中可以清楚地看出用户没有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}"
}
]
}
参考
答案4
我在修改用户登录体验后也遇到了这个问题。就我而言,这是因为我正在为新用户添加路径(该路径将在我实施的策略中使用)。
但是,默认的 AWS 策略 IAMUserChangePassword 并未考虑到这一点。
IE
"arn:aws:iam::*:user/${aws:username}"
如果您向 IAM 用户添加了路径,则这将是有效的 arn:
"arn:aws:iam::account-id:user/mypath/myuser
同时,我们只注意在用户登录后添加路径或者不检查登录选项上的更改密码。