Amazon Web Service (AWS) Force MFA Policy 造成新使用者無法在第一次登入變更密碼

結論

新增使用者時不要勾選 “需要密碼重設”
在這段

        {
            "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"
                }
            }
        }

改成

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

但範例中說明這樣較不安全。

緣由

最近維護一個使用AWS的案子,為了安全要求能自行變更MFA。
查了一下AWS有教程。


也有範例


結果用了之後,新使用者反而卡在第一次登入需要變更密碼的步驟。


發現是範例中如果沒有啟用MFA,連變更密碼都不行所致。

總結

一是按照以上修改,一是新增使用者時不要勾選 “需要密碼重設”。


留言