IAMユーザーがなぜ必要か?!
チームプロジェクトでAWSを使いたい
現在、Web Serviceの開発を勉強しているなら、誰もが一度はプロジェクトをしているはず。また、このような自分で作ったサービスを複数の人に共有してみたいと思うなら、AWSのようなCloud Computing Serviceを使うことになるだろう。この時、1人でプロジェクトをしたり、チームであっても1人だけサーバー管理を担当していれば、AWSアカウント1つだけでも十分にクラウド環境を管理できるだろう。
でも、チーム内で複数の人がBack-Endを役割分担して担当していると、1つのAWSアカウントに複数の人がアクセスしたいようになるだろう。だが、個人アカウントをチームメンバー全員と共有することはあまりしたくないし、AWSを使うチーム員全員がアカウントを生成すると頑張って構築したAWSリソースをアカウント間で共有できず悩みに陥るだろう。
私の実経験
実際に私も大学でAWSを初めて触ってみて、クラウド環境を構築しながら同じ悩みをした。毎回新しいチームメンバーとプロジェクトをする度に新しく共用AWSアカウントを作る面倒くさい作業を繰り返した。そして、決済情報で自分のクレジットカード情報が入っているので、もしチームメンバーのなかで誰が誤った操作をしてしまい、不必要な費用請求が発生すればどうしようかという悩みもあった。
それでも学生単位の小さなプロジェクトだったので、Free tier範囲内では問題なくプロジェクトを進めることができ、卒業するまで色々なアカウントをよく回して使用した。そのあと会社に入社すると、各社員別にIAMユーザーアカウントというものを発給してくれた。最初は何も考えずに使用しましたが、最近AWSの活用範囲が増えて始めた資格証の勉強を通じて「あ~こんな理由でIAMユーザーを使うんだ!!!」と感じたので、この記事を書いている。
IAMユーザーというのは?
IAMはIdentity and Access Managementの略。簡単に説明すると、AWSに別途のユーザー及びユーザーグループを作って、権限内でのAWSサービス、リソースに対するアクセスを安全制御できるサービスだ。AWSアカウントには2種類のユーザーがいますが、
- Rootユーザー
- 私たちが一般的に使用するAWSアカウント
- 最初のアカウント作成時に自動的に作られる
- ログインページに「Account owner that performs tasks requiring unrestricted access.」と説明されている。
- IAMユーザー
- RootユーザーまたはIAMユーザーのうち、管理者権限を持つ管理者が作成可能
- 各使用ごとにAWSサービスおよびリソースへのアクセス権限を制御
- アクセス可能な権限・レベルはユーザごとに設定も可能だが、グループ登録により制御できる。
そしてAWSでは、Rootユーザーを通じてAWSにアクセスするよりは、ユーザー別に最小限の権限が設定されたIAMユーザーを通じてサービスを使用することを推奨している。
IAMユーザー作成の事前設定
決済情報に対するIAMユーザーと役割アクセスを有効にする
最初のIAMユーザーを生成するため、まずRootユーザーとしてログインし、ナビゲーションバーでアカウント名を選択してアカウント設定ページを開く。
そして、アカウント設定ページを下にスクロールすると、決済情報に対するIAMユーザーおよび役割アクセス活性化(IAM User and Role Access to Billing Information)項目の右側にあるEditを押してIAMアクセスを活性化し、Updateをしてくれる。