
新規IAMユーザーの初回パスワード変更とMFA有効化を同時に強制することはできますか?
お困りごと
新規IAMユーザーの初回パスワード変更とMFA有効化を同時に強制したいが、そういった設定は可能でしょうか?
回答
可能です。新規IAMユーザーにアタッチするポリシーに、以下のポリシーを追加でアタッチすることで、新規IAMユーザーの初回パスワード変更とMFA有効化を同時に強制できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowIndividualUserToManageTheirOwnMFA",
"Effect": "Allow",
"Action": [
"iam:ChangePassword",
"iam:CreateVirtualMFADevice",
"iam:DeleteVirtualMFADevice",
"iam:DeactivateMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice",
"iam:ListMFADevices"
],
"Resource": [
"arn:aws:iam::*:mfa/${aws:username}",
"arn:aws:iam::*:user/${aws:username}"
]
},
{
"Sid": "BlockMostAccessUnlessSignedInWithMFA",
"Effect": "Deny",
"NotAction": [
"iam:ChangePassword",
"iam:CreateVirtualMFADevice",
"iam:DeleteVirtualMFADevice",
"iam:DeactivateMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice",
"iam:ListMFADevices"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}
こちらのIAMポリシーは、DevelopersIOのこちらのブログに記載のIAMポリシーをベースにしています。
しかし、記事に記載のIAMポリシーをそのまま新規IAMユーザーにアタッチして、同時に初回パスワードを変更するよう設定すると、iam:ChangePasswordが記事に記載のIAMポリシー上で許可されていないため、ログインに失敗します。

そのため、上記のようにiam:ChangePasswordをアクションに追加して、MFA有効化を行なっていない状態ででパスワードを変更できるようにします。このIAMポリシーであれば、初回ログイン時のパスワード変更も問題なく実行できるため、ログインできるようになります。

初めてログインに成功した際は、MFA有効化を行なっていないため、上記のIAMポリシーによりMFA関連の操作以外拒否されます。
この場合はMFAを有効化することで、IAMポリシーの条件から抜けて、他にアタッチしているIAMポリシーの権限に沿った操作ができるようになります。
参考情報




