【初心者向け】IAM設計を分かりやすく解説します

AWS全般

今回はIAM設計の基本的な考え方を解説します。AWS環境の構築において、IAM設計は必須です。IAM権限はカスタマイズが自由である半面、設計が難しくなるためバランスが必要となります。AWS初心者の方は、AWSで用意された権限を設定し、基本的な考え方が理解できてからカスタマイズをするようなやり方が良いのではないかと考えます。

私は現役のAWSエンジニアで、5年以上AWS環境の設計や構築業務を日々行っています。また、AWS認定ソリューションアーキテクトアソシエイトの資格保持者です。

IAM設計の基本を解説

この記事では、主にIAMユーザーにおける権限の設計について説明します。

IAM権限の考え方

IAM設計は「ユーザーに対して必要最小限の権限しか与えない」という考え方が基本となります。想定するユーザーが操作するAWSのサービス個別に対する権限を付与していくイメージです。そのためには、インラインポリシーでカスタマイズする必要があります。

AWS初心者のIAM設計

設計者のAWS経験が浅く、IAMポリシーのカスタマイズが難しい場合は、AWSが用意したポリシーを使いましょう。用途によって、下記の2種類のポリシーを使い分けましょう。AdministratorAccessは、ほとんどのAWSサービスの新規作成、設定変更、参照が可能となります。ReadOnlyAccessは、参照のみの権限となります。

・開発者、管理者:AdministratorAccess
・参照者    :ReadOnlyAccess

ユーザーへの権限付与方法

IAM Userに対しては、IAMポリシーで権限を付与しますが、直接ポリシーをアタッチするのではなく、IAMグループで権限を制御する方法が一般的です。IAMグループにポリシーをアタッチし、適切なグループにIAMユーザーを割り当てます。

IAM Roleの用途

IAM Roleについては、ユーザーではなくEC2やAWSのサービスに対して権限を与える時に使用するケースが多いです。例えば、特定のEC2からシステムログを保存するために、S3へのアップロード権限を持たせるような場合に使用します。

まとめ

IAMは最初の設計がブレてしまうと後々の運用が難しくなります。将来的にIAMユーザーの増加や権限のカスタマイズが見込まれるのであれば、汎用的な設計を心がけると良いと思います。

・IAMユーザーの権限は、IAMグループで制御。
・IAMグループに各種IAMポリシーをアタッチする
・IAM Roleはシステムにアタッチする
・慣れないうちは、AdministratorAccessとReadOnlyAccessを使い分ける

合わせて読みたい

タイトルとURLをコピーしました