AWS CLI でルートアクセス管理機能を使ってメンバーアカウントのルートユーザー認証情報の削除と回復を行ってみた
いわさです。
前回までで AWS CLI を使ってルートアクセス管理機能の有効化・無効化やその確認、各ルートユーザー認証情報の有無の確認を行いました。
今回は実際にルートアクセス管理の特権アクションを AWS CLI から操作して、各メンバーアカウントのルートユーザー認証情報の削除や再作成を行ってみます。
ルートユーザー認証情報の削除
まずは次のルートユーザー認証情報が存在するアカウントに対して無効化を行ってみます。

マネジメントコンソールの作りから、Organizations API でルートユーザー認証情報削除コマンドがあるのかなと思いきやそうではなくて、前回の記事のようにメンバーアカウントのルートユーザーの認証セッションを取得して、そこからdelete-login-profileコマンドで認証情報を削除すれば、それがルートユーザー認証情報の無効化になるみたいです。ほう。
ということでまずはセッションを取得します。タスクポリシーには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-key、delete-signing-certificate、deactivate-mfa-deviceも必要に応じて実行しましょう。
- delete-login-profile — AWS CLI 2.32.16 Command Reference
- delete-access-key — AWS CLI 2.32.16 Command Reference
- delete-signing-certificate — AWS CLI 2.32.16 Command Reference
- deactivate-mfa-device — AWS CLI 2.32.16 Command Reference
% 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": []
}
マネジメントコンソールを確認してみると、対象メンバーアカウントのルートユーザー認証情報が「存在しない」に変わりました。

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

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

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

なので情報の確認をしつつ、状況次第で削除も行いたい場合はIAMDeleteRootUserCredentialsタスクポリシーを使ったひとつのセッション内で行っても良さそうですね。
ルートユーザー認証情報を再作成する
では今度は次のメンバーアカウントに対してルートユーザー認証情報の再作成を行って、認証まで行ってみます。
AWS CLI ではcreate-login-profileを行うだけです。

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

- get-login-profile — AWS CLI 2.32.16 Command Reference
- create-login-profile — AWS CLI 2.32.16 Command Reference
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
}
}
再作成出来ました。マネジメントコンソール上からもルートユーザー認証情報が「存在する」になりましたね。

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




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

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






