AWS CLI でルートアクセス管理機能を使ってメンバーアカウントのルートユーザー認証情報の削除と回復を行ってみた

AWS CLI でルートアクセス管理機能を使ってメンバーアカウントのルートユーザー認証情報の削除と回復を行ってみた

2025.12.15

いわさです。

前回までで AWS CLI を使ってルートアクセス管理機能の有効化・無効化やその確認、各ルートユーザー認証情報の有無の確認を行いました。

https://dev.classmethod.jp/articles/aws-cli-root-access/

https://dev.classmethod.jp/articles/aws-cli-root-login-info/

今回は実際にルートアクセス管理の特権アクションを AWS CLI から操作して、各メンバーアカウントのルートユーザー認証情報の削除や再作成を行ってみます。

ルートユーザー認証情報の削除

まずは次のルートユーザー認証情報が存在するアカウントに対して無効化を行ってみます。

980843B4-7A88-4365-8D82-D9E062B4B3FA.png

マネジメントコンソールの作りから、Organizations API でルートユーザー認証情報削除コマンドがあるのかなと思いきやそうではなくて、前回の記事のようにメンバーアカウントのルートユーザーの認証セッションを取得して、そこからdelete-login-profileコマンドで認証情報を削除すれば、それがルートユーザー認証情報の無効化になるみたいです。ほう。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user-privileged-task.html

ということでまずはセッションを取得します。タスクポリシーにはIAMDeleteRootUserCredentialsを指定してください。

% aws sts assume-root --target-principal xxxxxxxxxxx1 --duration-seconds 900 --task-policy-arn arn=arn:aws:iam::aws:policy/root-task/IAMDeleteRootUserCredentials
{
    "Credentials": {
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "SessionToken": "IQoJb3JpZ2luX2VjEHQaDmFwLW5vcnRoZWFzdC0xIkcwRQIgL9L96cEd1KiXD4l1iCcIRaCfjUUoVp9LvR3MWBuMlfECIQDUZzafR9waI/IJ8HYrcJUaJX3tODm5uZx7YuWUv0DZCyryAgg9EAAaDDk3NDIxNzgwMjA5MyIMfYbuuMjRRcIqYiJ+Ks8CL69GNrxZ76aGGEnsUy9yfvEGMjDb+jbacCcLstq5HtzA4Pj6mCR69pKxh1I6kT5o/YXDBo4jd5cBY8siefEJRKJtoTZAjGuVwZNEljxj2XyBmBg/qdUDUhk1YFfpfek8cO+gLoBeQeea8ERmHa2s7KgAHbNozQFDQFBOHByaubGLTKoMrdOryTVvgBBXT7bc8pimtW7i2GS5c+wQm53hDR/qAw8Xq0BMY5fsUySy4M7uLH8TxFp4IQs6Y8C6+M6oEuvSwzgGKa4sKNpRpO0BbSMvF/bVHY57BAPK+0pvx+2wWSlZBu345MX7fBjI80rcc21GeeL5RWgWcxsTa8W1bUKrWKBw4lYu4I7FpaLL+TESoss3IiZuo/WCkqfWChphCWGwrDgEak6h5ZTI3KI5M3K4eueBdKOnCDHIo7yqZSCTuFB2wKunksUxQ4F2HOQww6/8yQY6xAF4IIR5YTg4fLAXxRonpEMj1hSogKGNbQa9NfsHWjgeoR99/8kgoInrDnZRsM7yioKNdpNAPWjgXWdoDnN8HhC/bIX9sahL57fl/t9Jpq2mRjjehJQS2r7cDqeYAnEhKOfS5ZwOodBVK0IHPI886MNDNx5lEealJJeFnpJa3ImeNwYq5UJXut7b7GMUHMMFqKeBDZJbTHdESFn5XEezXERQ1v0k40DASTYCANp93/3JN2QmU4jXqifTF0sGWnph8HGaGsb0",
        "Expiration": "2025-12-14T20:17:11+00:00"
    }
}
% export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
% export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
% export AWS_SESSION_TOKEN=IQoJb3JpZ2luX2VjEHQaDmFwLW5vcnRoZWFzdC0xIkcwRQIgL9L96cEd1KiXD4l1iCcIRaCfjUUoVp9LvR3MWBuMlfECIQDUZzafR9waI/IJ8HYrcJUaJX3tODm5uZx7YuWUv0DZCyryAgg9EAAaDDk3NDIxNzgwMjA5MyIMfYbuuMjRRcIqYiJ+Ks8CL69GNrxZ76aGGEnsUy9yfvEGMjDb+jbacCcLstq5HtzA4Pj6mCR69pKxh1I6kT5o/YXDBo4jd5cBY8siefEJRKJtoTZAjGuVwZNEljxj2XyBmBg/qdUDUhk1YFfpfek8cO+gLoBeQeea8ERmHa2s7KgAHbNozQFDQFBOHByaubGLTKoMrdOryTVvgBBXT7bc8pimtW7i2GS5c+wQm53hDR/qAw8Xq0BMY5fsUySy4M7uLH8TxFp4IQs6Y8C6+M6oEuvSwzgGKa4sKNpRpO0BbSMvF/bVHY57BAPK+0pvx+2wWSlZBu345MX7fBjI80rcc21GeeL5RWgWcxsTa8W1bUKrWKBw4lYu4I7FpaLL+TESoss3IiZuo/WCkqfWChphCWGwrDgEak6h5ZTI3KI5M3K4eueBdKOnCDHIo7yqZSCTuFB2wKunksUxQ4F2HOQww6/8yQY6xAF4IIR5YTg4fLAXxRonpEMj1hSogKGNbQa9NfsHWjgeoR99/8kgoInrDnZRsM7yioKNdpNAPWjgXWdoDnN8HhC/bIX9sahL57fl/t9Jpq2mRjjehJQS2r7cDqeYAnEhKOfS5ZwOodBVK0IHPI886MNDNx5lEealJJeFnpJa3ImeNwYq5UJXut7b7GMUHMMFqKeBDZJbTHdESFn5XEezXERQ1v0k40DASTYCANp93/3JN2QmU4jXqifTF0sGWnph8HGaGsb0

ルートユーザーの認証情報を削除するにはdelete-login-profileのみを実行すれば良さそうです。
ただし、その場合でもアクセスキーや証明書などは割り当てられたまま残るようなので、それらの削除や非アクティブ化をしたい場合はdelete-access-keydelete-signing-certificatedeactivate-mfa-deviceも必要に応じて実行しましょう。

% aws iam delete-login-profile

% aws iam list-access-keys
{
    "AccessKeyMetadata": []
}
% aws iam list-mfa-devices
{
    "MFADevices": [
        {
            "SerialNumber": "arn:aws:iam::xxxxxxxxxxx1:mfa/Authapp",
            "EnableDate": "2025-12-13T22:14:07+00:00"
        }
    ]
}
% aws iam deactivate-mfa-device --serial-number arn:aws:iam::xxxxxxxxxxx1:mfa/Authapp

% aws iam list-signing-certificates
{
    "Certificates": []
}

マネジメントコンソールを確認してみると、対象メンバーアカウントのルートユーザー認証情報が「存在しない」に変わりました。

BC576DC5-C8DC-40F7-9C16-56A7069EFF0B.png

対象メンバーアカウントへのルートユーザーでの認証を試みてみましょう。
まず、認証には失敗しました。

ルートユーザーの認証情報が無効であるか、またはこのアカウントでのルートとしてのサインインが現在無効になっています。さらにサポートが必要な場合は、管理者にお問い合わせください。

875C6C51-3C7D-4A71-A5C4-DD91D745CB45.png

パスワード回復をしようとしたところ、回復 URL の発行までは出来ましたが、アクセスしてみると次のようにエラーメッセージが表示されパスワード復旧が出来ませんでした。良いですね。

A9FAD122-0095-4ED2-8C03-CC1E513C29B2_4_5005_c.jpeg

なお、前回認証情報の確認時にはタスクポリシーにIAMAuditRootUserCredentialsを指定しましたが、今回使ったタスクポリシーは次のアクションが許可されていました。

FEFCD56F-C8F7-4AAE-B001-E8389D8D3BB0.png

なので情報の確認をしつつ、状況次第で削除も行いたい場合はIAMDeleteRootUserCredentialsタスクポリシーを使ったひとつのセッション内で行っても良さそうですね。

ルートユーザー認証情報を再作成する

では今度は次のメンバーアカウントに対してルートユーザー認証情報の再作成を行って、認証まで行ってみます。
AWS CLI ではcreate-login-profileを行うだけです。

EBE58BEB-79AC-49EE-ACE6-BA8C47831019.png

今度はIAMCreateRootUserPasswordタスクポリシーを使うのですが、こちらは以下の2つのアクションが許可されています。

image.png

get-login-profileで認証情報の有無を確認し、存在していなければcreate-login-profileで作成してやれば良さそうですね。
まずはセッションを取得します。

% aws sts assume-root --target-principal xxxxxxxxxxx6 --duration-seconds 900 --task-policy-arn arn=arn:aws:iam::aws:policy/root-task/IAMCreateRootUserPassword
{
    "Credentials": {
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "SessionToken": "IQoJb3JpZ2luX2VjEHQaDmFwLW5vcnRoZWFzdC0xIkYwRAIgEQTTXMYc2+B9uzEnevZ8WC7liHeLiczkvmXco6nuG2YCIF591sCYnO4iLM/YjNqf+3/JR8vjK1tctClRVNEIn6omKvICCD0QABoMOTIwMjMzNzczOTM2Igy3X14/ia9yMt2zfTEqzwLmq47s05+U3K15ZP7Zn2y7xMz9IZIksoTi2UuZfcH4UCddnTkNhD+IKFTBnW5yPmguNFWeO+iUP5owOt1lIR7iKvI+1nQ+YAKH0GK/Ds/WAcs4Cr7576t3YDTsHXBlVIiqSz3QTPkddy0rcvtE7ntBwKCWSVoKfpcsWYC1O8ZTNK77xLyrz5arPwiDJ/zdKRNkTdwRYwuGfXH+E6qErHKBXZF3XpOxPAwCKAaT2Tdm3ulWiEvV/1KvR5BPWW4FW34OHrRLaWJa1rnhjaAjbMe5xHcIHMZdimLrSkTl48SDi3aB0dTFG7ip9Z1mMndJba3IcfvZDu90Z5Nc1INS//b1jdmZEDy8V9eGyVu4y3Tf2b/oVJd5hLFsXxKdiXC21mOzpg8xGwrwJijB8RdKA0xPLez+y44OvTSVkuBoGC2z6OuUDyN4GxymJi4zLlzaDDDRs/zJBjrFAQW98DC7a+GM388wwckziYyEqcYFKh1xCLh9gjXfnR9RI9TFNMsE7g0kZ8joIFoipL2pijNPWmi/wzfGUeF1eWrggEbfELV8iho6k6sY+Z3+pARBxwWRfupsGs4ljgfSeV3daYVKEu7RSmlUNFyFRPwvmiy+9SQLrc+Z8/YtpxnzwDQdgJ4qG+rO+VA0MdZvYo27gSF8ZO0VPX/mkVXP8+u6c0z86Uov2BA+/ZgNeCaTQmRKtZ+gBIkTtPehK1fhoCyh+BCw",
        "Expiration": "2025-12-14T20:25:57+00:00"
    }
}
% export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
% export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
% export AWS_SESSION_TOKEN=IQoJb3JpZ2luX2VjEHQaDmFwLW5vcnRoZWFzdC0xIkYwRAIgEQTTXMYc2+B9uzEnevZ8WC7liHeLiczkvmXco6nuG2YCIF591sCYnO4iLM/YjNqf+3/JR8vjK1tctClRVNEIn6omKvICCD0QABoMOTIwMjMzNzczOTM2Igy3X14/ia9yMt2zfTEqzwLmq47s05+U3K15ZP7Zn2y7xMz9IZIksoTi2UuZfcH4UCddnTkNhD+IKFTBnW5yPmguNFWeO+iUP5owOt1lIR7iKvI+1nQ+YAKH0GK/Ds/WAcs4Cr7576t3YDTsHXBlVIiqSz3QTPkddy0rcvtE7ntBwKCWSVoKfpcsWYC1O8ZTNK77xLyrz5arPwiDJ/zdKRNkTdwRYwuGfXH+E6qErHKBXZF3XpOxPAwCKAaT2Tdm3ulWiEvV/1KvR5BPWW4FW34OHrRLaWJa1rnhjaAjbMe5xHcIHMZdimLrSkTl48SDi3aB0dTFG7ip9Z1mMndJba3IcfvZDu90Z5Nc1INS//b1jdmZEDy8V9eGyVu4y3Tf2b/oVJd5hLFsXxKdiXC21mOzpg8xGwrwJijB8RdKA0xPLez+y44OvTSVkuBoGC2z6OuUDyN4GxymJi4zLlzaDDDRs/zJBjrFAQW98DC7a+GM388wwckziYyEqcYFKh1xCLh9gjXfnR9RI9TFNMsE7g0kZ8joIFoipL2pijNPWmi/wzfGUeF1eWrggEbfELV8iho6k6sY+Z3+pARBxwWRfupsGs4ljgfSeV3daYVKEu7RSmlUNFyFRPwvmiy+9SQLrc+Z8/YtpxnzwDQdgJ4qG+rO+VA0MdZvYo27gSF8ZO0VPX/mkVXP8+u6c0z86Uov2BA+/ZgNeCaTQmRKtZ+gBIkTtPehK1fhoCyh+BCw

認証情報の確認と再作成を行います。

% aws iam get-login-profile   

An error occurred (NoSuchEntity) when calling the GetLoginProfile operation: Login Profile for User null cannot be found.
% aws iam create-login-profile
{
    "LoginProfile": {
        "CreateDate": "2025-12-14T20:12:06+00:00",
        "PasswordResetRequired": false
    }
}

再作成出来ました。マネジメントコンソール上からもルートユーザー認証情報が「存在する」になりましたね。

89BD23F6-B353-4A4A-A266-A50F294B3D13.png

あとはパスワードリセットや MFA の登録を行いつつコンソールからログインしてみましょう。

8061B45F-08A1-4206-971A-65346B976211.png

5B7DBDBB-F428-48B9-A9F8-CF289ADC9FB7.png

3091D0E5-0B55-4562-8494-DF0ADD1F0EB3.png

8CAAE0F1-6CFE-4252-B16C-B8489708CA6A.png

無事、ルートユーザーの認証情報を再作成してマネジメントコンソールへのアクセスが出来ました。

FDC042B2-9530-496A-969B-F0763D845896.png

さいごに

本日は AWS CLI でルートアクセス管理機能を使ってメンバーアカウントのルートユーザー認証情報の削除と回復を行ってみました。

これで AWS CLI のみでルートアクセス管理機能を使って、管理アカウントからメンバーアカウントのルートユーザー認証情報を確認、作成・削除が出来るようになりました。
今回の検証結果から、どうやらマネジメントコンソール上の「ルートユーザー認証情報」の存在する/しないって、単純にget-login-profileで情報が取得できるかどうかっぽいですね。

この記事をシェアする

FacebookHatena blogX

関連記事