アカウント一元管理を目指すイオンネクストの取り組みをご紹介します
はじめに
はじめまして、イオンネクスト株式会社様にてSREチームを支援させていただいてる合同会社YSTエンジニアリングの下井倉(@ikura5555)です。
この記事は、AEON Advent Calendar 2024の15日目であり、YSTエンジニアリングの初めてのTech Blogです!!
早速ですが、新規メンバーの参画や退場時の各システムのアカウント作成から権限管理、削除といった運用管理はどうしてますか?
システムを開発運用するうえでみなさんの会社では様々な外部サービスを利用しており、それらはそれぞれアカウントを必要とします。
アカウントは、ガバナンスの観点から適切に権限を管理する必要があり、アカウント作成や削除は対応自体がトイルの代表格だったりします。
イオンネクストでは以下のようなサービスを利用しており、アカウントの管理運用は、いわゆる情シスのような専属担当ではなくプロダクトを運用してるSREチームをはじめIT部が行っています。
- Azure
- Google Cloud
- AWS
- GitHub
- Slack
- Notion
- Jira
- Re:dash
- Superset
- PowerBI
- OSP(Ocado Smart Platform)
- Zendesk
- Salesforce(Lightning Platform)
- Box
- Tableau
- STIBO
↓参考: イオンネクストの技術スタックです。
今回は、これらのアカウントの管理について、課題と取り組みを紹介します。
課題
イオンネクストは、Green Beansをサービスローンチしてはや1年半が経過しようとしていますが、サービスローンチ前後はどうしても機能開発に重点が高くなり、アカウント管理については仕組み化が不十分で属人化が進んでる状況でした。
具体的には、、
-
アカウントの発行/削除の状況が不透明
- アカウント発行/削除時の依頼フローが未整備で、各システムで管理方法も異なるため、最新のアカウント状況を把握できていない。
- サービス毎に対応者が異なると、誰が担当なのか確認するところから始まり、依頼方法もJira、Slack、Teams、時には口頭と統制が取れていない。
-
退職者アカウントの削除漏れ
- アカウント管理を手動で行っているシステムがあり、退職時に削除依頼がないものはアカウントも残ったままになっている。
-
権限の未整備
- 各アカウントに対して必要な権限が整理されておらず、多くのアカウントが過剰な権限を有している。
- 権限を持っている人がよしなにアカウント発行している。
こういった課題がある中でイオンネクストが取り組んだことの一部として、2点を紹介します。
取り組み
1. Entra IDのグループや権限を整理してSSOで一元化
イオンネクストではIdPとしてMicrosoft Entra IDを使用してます。
基本中の基本で一番はじめにやっておくべきものですが、まずこのEntra IDのグループと権限の設計を行ないました。
グループ設計
イオンネクストはシステムを構成する領域として12のコンポーネントを定義しているのですが、基本的なグループ設計としては、このコンポーネントグループ毎にプロパーと業務委託用に用意しました。
組織図ベースのグループ構成は組織変更の度に修正が必要になるため、原則として、組織図ベースのグループではなく、ロール(担当コンポーネント・権限)ベースでグループを構成しました。
外部サービスのSSO設定
利用してる外部サービスの多くは、SSOをサポートしています。
SSOの機能を使用するには料金プランをアップグレードする必要があるサービスも多いため、全てのサービスでSSOを使用は難しいですが、基本的にはEntra IDのグループを活用してSSOする方針としています。
SSOを利用する上で、各サービスそれぞれ特徴に応じて、独自のEntra IDグループを作成したり、サービス側にもグループを作成したり、サービスが持つグループや権限にマッピングするといった一手間が必要にはなります。
ここではそれぞれのサービスでどのような設計を行ったかの詳細については、割愛しますが、イメージは以下の通りです。
その他
グループ設計やSSO設定の話とは異なりますが、そのほかにMFAやPW再利用禁止などEntra IDユーザーポリシーから、Entra IDグループポリシー、セキュリティ監視などの設計設定も合わせて実施しました。
また、自社でEntra IDを所有してる業務委託等の外部ベンダーには、B2Bコラボレーションという機能を使用することでライセンス費用を節約するようにしました。
2. アカウントの発行と削除を自動化
前述した通り、イオンネクストではたくさんの外部サービスを利用しており、各サービスのアカウント申請フローは未整備で現在も整理を進めている段階です。
そういった状況の中で、トイル削減の営みでもありますが、同時並行でアカウントの発行と削除の自動化に取り組んでいます。
実際に、運用を開始した事例として、外部サービスのSSOでも利用するため一番初めに用意する必要があるEntra IDの発行です。(削除も自動化済み。)
Jira Service Management のポータルで申請受付
イオンネクストでは、インシデント報告や機能追加改善要望、お問合せといったものを受け付けるための、ITヘルプデスクポータルと呼ばれるJira Service Management のポータルを運用しています。
それを活用し、アカウント作成申請専用の項目を追加し、窓口を設けました。
申請者には、最低限の項目のみ入力してもらいます。
Jira automation → Github actions → MicroSoft Graph API
申請を受けた後、入力内容を元に、Jira automationをキックしてさらにGithub actionsのwebhook をキックして、MicroSoft Graph APIを実行するスクリプトを実行して、Entra IDの招待を送信します。
ユーザが招待を承諾すると、New Relicアカウントなど一部サービスのアカウントは、そこから自動プロビジョニングされます。
さいごに
上記の対応は現在(2024/12/15執筆時点)全てのサービスのアカウントで対応出来てるわけではありませんし、自動化も一部の対応が完了しましたが、まだまだ今後の事業拡大に備えてやるべきことがいっぱいです!
イオンネクストに少しでも興味がある方はカジュアル面談から受け付けてるようですので、ぜひ!
Discussion