はじめに
先日、S3バケットポリシーの記述を誤ってS3バケットを削除できなくなりそうになった話を書きました。
この記事を書いた後に、AWS Organizations(以下、Organizations)配下のアカウントで「ルートアクセス管理」を有効にしていれば、ルートユーザーでなくてもバケットポリシーを削除できることが分かりました。
私は、おひとり様Organizations で個人利用アカウントを複数登録して使っています。しかし、この記事を書くまではルートアクセス管理を有効にしていませんでした。良い機会なので、ルートアクセス管理を有効にして、メンバーアカウントのルートユーザー認証情報管理と、バケットポリシーの削除をできるようにしました。
今回は、その「ルートアクセス管理」について書いていきます。
本記事は、筆者個人の見解です。個人利用の範囲で試した結果のため、参考程度に留めてください。内容に間違い等がありましたらご指摘いただけますと幸いです。
マネジメントコンソールの画面表示は、2025/9/27時点のものです。
ルートアクセス管理とは
2024年11月、IAMに追加されたアップデートです。Organizations 所属のメンバーアカウントの
- ルートユーザーの認証情報削除・追加を一元管理
- バケットポリシーの削除
- Amazon SQSのキューポリシーの削除
をすることができます。
ルートユーザーの認証情報を一括管理するメリット
Organizations を使わずにAWSアカウントを複数持つと、
- 複数のルートユーザーのパスワードと二要素認証(MFA)を管理
- 複数のIAMユーザーのパスワードとMFAを管理
する必要があります。ルートユーザーだけでなくIAMユーザーも管理し続けるのは、運用上負荷が大きいです。
メンバーアカウントのルートユーザーを管理できるようにすると、
- 利用頻度の低いルートユーザーの認証情報管理負荷の軽減
- ルートユーザーの不正利用リスクの軽減
といったメリットがあると思います。
ルートアクセス管理の有効化
ここからはルートアクセス管理を有効にして、ルートユーザー認証情報の管理、バケットポリシーの削除方法について書いていきます。
以降に示すことは、最初に書いた通り Organizations を使っていることが前提です。複数アカウント持っている場合は、Organizations を設定します。また、Organizations の設定手順は割愛します。
管理アカウントにログインし、IAMの「ルートアクセス管理」を開きます。
有効化をクリックします。
「ルート認証情報管理」「メンバーアカウントでの特権ルートアクション」にチェックを入れて有効にします。
- ルート認証情報管理:ルートユーザーの認証情報削除・登録を許可
- メンバーアカウントでの特権ルートアクション:バケットポリシーの削除とSQSキューポリシーの削除を許可
ルートアクセスを委任させたいメンバーアカウントがあれば、該当するAWSアカウントIDを指定します。
有効化をクリックし、「ルートアクセス管理が有効になっています」と表示されたら設定完了です。
メンバーアカウントのルートアカウント認証情報削除
あとからルートユーザーに認証情報を設定することもできますが、実行対象のルートユーザーにログインできなくなっても本当に良いかは、慎重に考えてから実行しましょう。
管理アカウントにログインし、IAMの「ルートアクセス管理」を開きます。ルートアクセス管理を有効にすると、Organizations の画面で表示されるようなツリー構造が表示されます。認証情報を削除したいルートユーザーを選択して、「特権的なアクションを実行する」ボタンをクリックします。
特権的なアクション欄の「ルートユーザー認証情報を削除」を選択して、「ルートユーザー認証情報を削除」ボタンをクリックします。
対象のアカウントIDで間違いなければ、「確認」を入力して「削除」をクリックします。
「ルート認証情報が削除されました」と表示されたら完了です。
以降は、ルートユーザーでログインしようとしても、「ルートユーザーの認証情報が無効」と表示されてログインできなくなります。
メンバーアカウントのルートユーザーにログインしたい場合
ルートユーザーの認証情報削除後、どうしてもルートユーザーでログインする必要が出た場合は、「パスワードの回復を許可」する必要があります。
ルートアクセス管理を有効化した後に新しくメンバーアカウントを作成した場合も、新規アカウントにルートユーザー認証情報は付与されません。 新規アカウントにルートユーザーでログインしたい場合もこの作業が必要です。
管理アカウントにログインし、IAMの「ルートアクセス管理」を開きます。削除したいバケットポリシーがあるアカウント名を選択して、「特権的なアクションを実行する」をクリックします。
特権的なアクション欄の「パスワード回復を許可」を選択し、「パスワード回復を許可」ボタンをクリックします。
以下のように表示されたら、完了です。
パスワードは自動で発行されませんので、自身でリセットする必要があります。ルートユーザーのパスワードリセットについては、公式ドキュメントに掲載されていますので、こちらをご確認ください。
ルートアクセス管理からのバケットポリシー削除
管理アカウントにログインし、IAMの「ルートアクセス管理」を開きます。削除したいバケットポリシーがあるアカウント名を選択して、「特権的なアクションを実行する」をクリックします。
「S3バケットポリシーを削除」を選択します。「S3を参照」から削除したいバケットポリシーがあるS3を選択し、「バケットポリシーを削除」をクリックします。
バケット名を確認し、間違いがなければ「確認」を入力して「削除」をクリックします。
「バケットポリシーが削除されました。」と表示されたら、削除完了です。
編集不可のバケットポリシー適用時とバケットポリシー削除後の比較
前回の記事のように、バケットポリシーを編集できないポリシーを適用したら、以下のような警告表示がされました。
バケットポリシーを削除したら、アクセス拒否の警告が表示されなります。その後は適切なバケットポリシーを設定します。
管理アカウントのルートユーザー管理はどうなる?
管理アカウント自身のルートユーザー認証情報は削除できません。ルートアクセス管理画面で、管理アカウントを選択しても「特権的なアクションを実行する」ボタンが活性化されませんでした。
従って、管理アカウントのルートユーザー認証情報管理は残ります。 従来同様、認証情報を厳重管理しなければなりません。ルートアクセスを権限委譲したメンバーアカウントにアクセスできるユーザーも同様に管理しなければなりません。
ルートアクセス管理を有効にした所見
誤って設定したバケットポリシーやSQSポリシーを削除できるようになっただけでなく、ルートユーザーごとにパスワード設定とMFA設定をしなくてよくなり、アカウント管理が楽になりました。 メンバーアカウントのルートユーザーの認証情報を適切に管理できるようになって、素晴らしい機能だと実感しました。
しかし、アップデート公開されたのが執筆時から1年くらい前なので、公開されてすぐ適用を検討した方が良かったと反省しました。日々のアップデートチェックの大切さを痛感しました。
また、当然ですが、メンバーアカウントのルートユーザーにログインできなくしても、IAMユーザーが無効になるわけではありません。その認証情報も管理しなければならないため、IAM Identity Center も有効にして、可能な限りIAMユーザーも減らした方が望ましいと思います。
※私は IAM Identity Center も有効にしていましたが、IAMユーザーはいくつか残していました。この記事執筆を機にIAMユーザーもすべて削除して、必要な時にだけIAMユーザーを作るようにしました。
最後に
個人利用でAWSアカウントを複数持っていて Organizations を有効にしていなかった方も、ルートアクセス管理を利用するだけでも Organizations での管理を有効にするメリットはあると思います。おひとり様Organizationsをはじめて、ルートアクセス管理の負荷軽減を検討してみてはいかがでしょうか?
この記事が少しでも参考になれば幸いです。
以上です。最後までお読みいただき、ありがとうございました!!








