MFA device already exists. の対応方法
こんにちは!丸屋 正志(Maruya Masashi) です。
今日もブロックを掘ったり積み上げたり匠に壊されたりしていますか?
1, 困っていたこと
『AWS IAMユーザーのMFAをスマートフォンで設定する方法』を参考にIAMデバイスを登録しようとした所、下記のエラーが出てしまいました。
また、IAMユーザーの画面ではMFAデバイスは登録されていませんでした。
許可が必要です
この操作を実行するために必要な許可がありません。許可を追加するように管理者に依頼してください。
User: arn:aws:iam::<アカウントID>:user/<デバイス名> is not authorized to perform: iam:ListVirtualMFADevices on resource: arn:aws:iam::<アカウントID>:mfa/ because no identity-based policy allows the iam:ListVirtualMFADevices action
エンティティは既に存在しています
既に存在するリソースを作成しようとしたため、リクエストは却下されました。
MFA device already exists.
2, 解決方法
上記のエラーに遭遇された方で管理者相当の権限が無い方については、画面に出力されているエラー内容と本ブログを管理者側に依頼をしましょう。
解決策 1 (CloudShell等) オススメの対処方法
CloudShellもしくはAWS CLIを実行出来る環境等で、提供されたエラー内容を以下のコードと置き換えて実行してください。
- 『<アカウント名>』 : [AWSアカウントID]
- 『<デバイス名>』: [エラー画面に出力されているデバイス名]
aws iam delete-virtual-mfa-device \ --serial-number \ arn:aws:iam::<アカウントID>:mfa/<デバイス名>
管理者向け情報
- ※
<アカウントID>
と<デバイス名>
の<>
←不要です。必ず外した状態で実行してください。 - ※
<アカウントID>
は、自分のアカウントIDに置き換えてください。 - ※
<デバイス名>
には、エラーが出ているデバイス名を入力してください。
解決策 2 (AWS コンソール)
管理者は、該当IAMユーザーのページに移動して、以下のアクションを実施してください。
- 『多要素認証 (MFA)』欄の 【MFA デバイスの割り当て】をクリックします
- 『デバイス名』の所に、上記のエラー画面に出力されている[<デバイス名>]を入力します
- ※ デバイス名には、必ずエラー画面に出力されている内容と同じデバイス名にする必要があります
- QRコードを読み取りパスコードを入力し、デバイス登録をします
- 最後に作成したMFAデバイスを選択し削除します
3, エラーの発生手順
MFAデバイスを登録する際に戻ったり・キャンセルをすると、本事象が発生いたします。 そのため、MFAデバイスを登録する際には、戻ったり・キャンセルをしないようにしましょう。
- 『ステップ 1 : MFA デバイスを選択』の画面にて、[デバイス名]を入力後に【次へ】をクリックします
-
『ステップ 2 : デバイスの設定』の画面にて、【キャンセル】or【前へ】をクリックします
-
再度『ステップ 1 : MFA デバイスを選択』の画面にて、[デバイス名]を入力後に【次へ】をクリックします
-
『ステップ 2 : デバイスの設定』の画面に進むとエラーになります。
4, 参考情報
- IAM ユーザーが新しい MFA デバイスを作成しようとするときに表示される「entity already exists」(エンティティは既に存在しています) というエラーをトラブルシューティングするにはどうすればよいですか? ; AWS re:Post
- 「エンティティは既に存在しています」と表示されMFAデバイスを割り当てできない時の対応方法 ; DevelopersIO
さいごに
MFAデバイスを登録しようとした際にキャンセル等をすると、エラーになります。
そのため、MFAデバイスを登録する!と決めた際には、他タスクを一旦忘れて登録に専念をしましょう。
また、CloudShellやAWS CLI等を利用出来ない場合には、少し手間ではありますが該当IAMユーザー画面から代理でMFA登録して・削除という手順もありますので、ご参考いただけますと幸いです。