AWS IAM権限とは?IAMグループを作成する目的について
1. IAMとは?
IAM(Identity and Access Management)は、AWSのサービスやリソースに対して、誰がどのような操作を行えるかを管理するサービスです。
AWSでは、EC2やS3などのさまざまなリソースを利用できます。
しかし、すべてのユーザーがすべてのリソースを自由に操作できてしまうと、セキュリティ上の問題が発生します。
例えば、以下のような問題が考えられます。
- 必要のないユーザーがEC2インスタンスを削除してしまう
- S3に保存されているデータを閲覧できてしまう
- 管理者以外のユーザーがAWSの設定を変更してしまう
このような問題を防ぐために、IAMを使用してユーザーごとのアクセス権限を管理します。
2. IAM権限とは?
IAM権限とは、AWSのリソースに対して許可されている操作のことです。
例えば、EC2に対して以下のような権限を設定できます。
| 権限 | 内容 |
|---|---|
| DescribeInstances | EC2インスタンスの情報を確認する |
| StartInstances | EC2インスタンスを起動する |
| StopInstances | EC2インスタンスを停止する |
| TerminateInstances | EC2インスタンスを削除する |
例えば、EC2インスタンスの情報を確認するだけのユーザーには、閲覧に必要な権限だけを付与します。
一方、EC2の起動や停止を行うユーザーには、それらの操作に必要な権限を付与します。
このように、ユーザーの役割に応じて権限を設定することが重要です。
最小権限の原則
IAM権限を設定する際には、「最小権限の原則」が重要です。
最小権限の原則とは、ユーザーやサービスに対して、業務に必要な最低限の権限だけを付与する考え方です。
例えば、EC2の状態を確認するだけのユーザーに、EC2を削除する権限まで付与する必要はありません。
必要最低限の権限にすることで、誤操作や不正アクセスによる被害を抑えることができます。
3. IAMポリシーとは?
IAMポリシーとは、どのAWSリソースに対して、どのような操作を許可するかを定義したものです。
IAMポリシーでは、主に以下の内容を設定します。
| 項目 | 内容 |
|---|---|
| Effect | 操作を許可するか拒否するか |
| Action | 許可・拒否する操作 |
| Resource | 対象となるAWSリソース |
例えば、EC2の情報を閲覧する権限を定義する場合、以下のようなJSON形式で記述します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}
このポリシーでは、EC2インスタンスの情報を取得する操作を許可しています。
※ Resource: "*" は対象リソースを限定しない指定です。実際の運用では、可能な範囲で対象を限定することが望ましいです。
4. IAMグループとは?
IAMグループとは、複数のIAMユーザーをまとめて管理するためのグループです。
IAMグループを作成する目的は、主にユーザーの権限管理を効率化することです。
例えば、会社でAWSを利用する場合、以下のようなユーザーがいるとします。
- 開発担当者
- 運用担当者
- 管理者
それぞれのユーザーに個別で権限を設定すると、ユーザー数が増えるほど管理が複雑になります。
そこで、役割ごとにIAMグループを作成します。
IAMグループの例
| IAMグループ | 所属するユーザー | 主な権限 |
|---|---|---|
| Development | 開発担当者 | 開発用EC2や関連リソースの操作 |
| Operations | 運用担当者 | EC2の状態確認や起動・停止 |
| Administrators | 管理者 | AWS環境の管理に必要な権限 |
IAMグループにIAMポリシーを設定することで、そのグループに所属するユーザーに共通の権限を付与できます。
5. IAMユーザー・IAMグループ・IAMポリシーの関係
それぞれの関係を図にすると、以下のようになります。
IAMポリシー
(許可する操作を定義)
|
v
IAMグループ
/ \
/ \
IAMユーザーA IAMユーザーB
| |
v v
AWSリソース AWSリソース
(EC2・S3) (EC2・S3)
例えば、Developmentグループに「EC2の情報を閲覧する権限」を設定した場合、そのグループに所属するユーザーは、グループ経由でその権限を利用できます。
このように、IAMグループを利用することで、複数のユーザーに同じ権限をまとめて付与できます。
※ IAMユーザーは複数のIAMグループに所属することもできます。また、ユーザーに直接ポリシーを設定することも可能です。
6. IAMグループを作成するメリット
IAMグループを作成するメリットは、以下の3つです。
① 権限管理を効率化できる
複数のユーザーに同じ権限を付与する場合、グループにポリシーを設定することで、一人ずつ設定する必要がなくなります。
② 権限の変更が簡単になる
例えば、開発担当者にEC2の起動権限を追加したい場合、Developmentグループにポリシーを追加することで、グループ経由で権限を付与できます。
③ ユーザーの役割ごとに管理できる
開発担当者、運用担当者、管理者など、業務内容に応じてグループを分けることで、誰がどのような権限を持っているかを把握しやすくなります。
7. まとめ
IAMは、AWSのリソースに対して「誰が何をできるのか」を管理するサービスです。
IAM権限は、AWSのリソースに対して許可される操作を定義します。
IAMグループは、複数のIAMユーザーをまとめ、共通の権限を効率的に管理するために使用します。
それぞれの役割を整理すると、以下のようになります。
| 用語 | 役割 |
|---|---|
| IAM | AWSのアクセス管理を行うサービス |
| IAMユーザー | AWSを利用する個人やアプリケーションのための識別主体 |
| IAMグループ | 複数のIAMユーザーをまとめる |
| IAMポリシー | 許可・拒否する操作を定義する |
| IAM権限 | AWSリソースに対して実行できる操作 |
IAMを利用することで、ユーザーごとに適切な権限を設定し、AWS環境を安全に管理することができます。