STORES 技術基盤グループの id:atpons です。普段は STORES 全体のパブリッククラウドや開発で利用している SaaS の管理をしています。今回は STORES で管理している AWS Organizations のメンバーアカウントのルートユーザーを全部削除したので、進め方について書いていきます。
この記事は STORES Product Blog Advent Calendar 2024 11日目 の記事です。
はじめに
STORES では、プロダクトの開発や運用に AWS を採用しています。その上で、AWS Organizations を導入しており、各アカウントへのログインは IAM Identity Center と Okta を経由した SSO により、IAM ユーザーを利用しない方針で運用しています。STORES における AWS Organizations の活用内容については AWS Organizations & IAM Identity Center利用をオススメしてみる(AWS Organizations活用のリアル補足) という記事もあるので、ぜひご覧ください。
AWS ルートユーザーについて
AWS アカウントにはルートユーザーという IAM ユーザーが存在します。このユーザーは、すべてのリソースにアクセスできる上、他の IAM ユーザーでも実行できない特権操作がいくつか可能になっています。また、当然ながら IAM ユーザーとして管理していく必要があるため、仮に AWS Organizations を導入してもユーザーは消えず、パスワードや MFA の管理が必要となります。
STORES では、プロダクトやプロジェクト、環境ごとに AWS アカウントが存在します。技術基盤グループではそのアカウントや MFA の管理を引き受けていましたが、パスワードや MFA の管理が煩雑になっていました。その中で、AWS から Root access management という機能がリリースされたことによってこの問題が解決しました。
Root access management を利用したルートユーザー削除に向けて
2024 年 11 月に発表された Root access management を使うことで、AWS Organizations 配下のメンバーアカウントのルートユーザーを削除し、管理アカウントからルートユーザーが行えていた操作が一部可能になりました。
STORES ではルートユーザーを使った操作は基本行わないため、削除しても問題ないと思いましたが、全社の各プロダクトで AWS を利用しているので、技術基盤グループのみで判断は一旦は難しいと感じました。
一方で、STORES には全体の技術に関する意思決定を行う System Design Meeting という会議体があります。ここに以下のように議題を持ち込み、ルートユーザー削除の方向で進めることになりました。
もしかするとプロダクトでもルートユーザーの利用があったかもしれないということで、過去の事例などを洗い出ししてもらうことになりました。
また、上記の画像にあるとおり、とある AWS アカウントのエイリアス名が実態と変わったため、それを変更したいという Issue が以前から存在していました。この作業は Root access management で行える特権操作には含まれていないので、ルートユーザーの削除を行うと、この操作ができなくなります。そのため、事前にルートユーザーでログインした後、エイリアス名を変更してから削除を行いました。
実際にルートユーザーの削除を行う
ルートユーザーの削除は、AWS Organizations の管理アカウントから IAM を開いて行うだけなので簡単でしたが、いくつか課題がありました。
まず、STORES では GuardDuty による監視をしていますが、Root access management の管理画面を開くと各メンバーアカウントのルートユーザーを使って GetAccountSummary API がコールされてアラートになってしまうということが分かりました。このため STORES では各メンバーアカウントにおいて個別に削除を行うのではなく、実施日を定めて一斉に削除し、アラートが出てしまう日が長引かないようにしました。
また、削除後に Security Hub による監視にも変化がありました。具体的には、CIS AWS Foundations Benchmark のチェックにおいて Hardware MFA should be enabled for the root user というコントロールに失敗するようになってしまいました。まだ AWS のアップデートに追従できていないものとして、こちらの失敗については無視しています。
以上の 2 つの点は課題でしたが、ルートユーザーの削除については実際のワークロードには影響せず、進めることができました。
まとめ
STORES では AWS Organizations 配下のメンバーアカウントのルートユーザーを削除することで MFA の管理の手間が省け、より安全に AWS を利用できるようになりました。Root access management を導入すると、新規アカウントはルートユーザーが最初からない状態になります。すでに導入後から新規アカウントの作成もしており、これも併せて便利だと感じているところです。
この記事が AWS Organizations を導入している組織におけるルートユーザーの取扱いの参考になれば幸いです。