AWSでユーザを発行するために、IAMユーザを作成したのですが、権限はIAMグループでつけるのでしょうか。IAMロールというものもあり、違いが分かりません。
上記の疑問についてお答えします。私は現役のAWSエンジニアとして、5年近くAWS環境の設計や構築を行っています。また、AWS認定ソリューションアーキテクトアソシエイトの資格保持者です。
IAMグループとIAMロールの違いを分かりやすく解説
IAMグループとIAMロールの違いについて
初心者の方向けの説明となりますが、IAMグループとIAMロールの違いは下記の通りです。
・IAMグループ:IAMユーザに使用する権限グループとなります。
・IAMロール :IAMユーザではなく、AWSリソースに対して権限を付与するロールとなります。
上記より、IAMユーザに権限を付与する場合は、IAMグループを使用します。
IAMまわりの用語説明
・IAMユーザ
AWSを操作する為のユーザです。IAMユーザを発行すると、AWS環境へのログイン情報や認証情報が生成されます。サーバに認証情報を登録することで、AWS CLI等を使用して、サーバからAWSリソースにアクセスできるようになります。
・IAMグループ
IAMユーザの権限を、グループ単位で制御するために使用します。例えば、管理者権限を持つグループを作成し、管理者業務を行うユーザの、IAMユーザを管理者グループに所属させます。IAMグループの権限は、IAMポリシーをアタッチするとで付与できます。
・IAMロール
AWSリソースに対して、他のAWSリソースへの実行権限を付与する場合に使用します。権限はIAMポリシーのアタッチにて付与できます。例えば、EC2サーバからS3のファイルを取得できるようにするためには、S3のファイル取得権限を持つIAMロールを、対象のEC2サーバに割り当てます。
・IAMポリシー
AWSリソースに対する実行権限を記述したポリシーとなります。AWSが用意したポリシーが多々ありますが、利用者自身でカスタマイズすることも可能です。
IAMユーザへの権限追加方法
IAMユーザに対しては、直接IAMポリシーをアタッチすることが可能です。しかし、AWSではIAMユーザにIAMポリシーをアタッチする方法は推奨していません。AWSで推奨している方法は、IAMグループにIAMポリシーをアタッチし、IAMユーザをグループに所属させることです。実際の現場でも、IAMユーザにIAMポリシーを直接割り当てることは少ないです。
セキュリティ上の注意点
IAMユーザやIAMロールを作成するときの原則として、「必要最小限の権限しかアタッチしないこと」というものがあります。例えば、IAMユーザがEC2とS3だけしか操作しないのであれば、RDSやその他リソースを操作できる権限は不要しないということです。AWS環境構築の実業務では、基本的な考え方になります。
その他、IAMユーザについては、ログイン時にMFA(多要素認証)を設定することが可能です。AWSのルートアカウントやIAMユーザは、MFAの設定が推奨されています。セキュアな環境構築や運用が求められる現場では、MFAは必須の設定となっています。
まとめ
IAMグループとIAMロールの違いについて説明しました。IAMはAWSを使う上では必須の知識となります。知識が無いまま使用すると、セキュリティ上の危険が伴いますので、基本的な知識は覚えておきたいところです。