AWS IAMでS3やEC2に限定したアクセス権を設定する方法を完全解説!初心者でもわかる権限管理
生徒
「AWSを触り始めたんですが、IAMって何をする仕組みなんですか?」
先生
「AWS IAMは、AWSの中で『誰が』『何に』『どこまで操作していいか』を決めるための仕組みです。」
生徒
「S3だけ操作できて、EC2は触れない、みたいな設定もできるんですか?」
先生
「できます。IAMを使えば、S3だけ、EC2だけ、といったアクセス権の制限が細かく設定できます。」
生徒
「それは便利そうですね。具体的な設定方法を知りたいです。」
先生
「では、IAMの基本から順番に見ていきましょう。」
1. AWS IAMとは何か?基本の考え方
AWS IAM(アイエーエム)は、AWS Identity and Access Managementの略で、AWSの利用者やシステムに対してアクセス権を管理するサービスです。簡単に言うと、AWSの中にある入退室管理システムのような存在です。
会社の建物に例えると、受付で渡される社員証によって「入れる部屋」「使える設備」が決まります。IAMも同じで、ユーザーや役割ごとに、S3やEC2などのAWSサービスをどこまで操作できるかを決めます。
2. IAMで管理する3つの要素
AWS IAMでは、主に「ユーザー」「グループ」「ポリシー」という3つの要素を使って権限を管理します。ユーザーは実際に操作する人やプログラム、グループはユーザーをまとめた箱のようなものです。
ポリシーは「この操作は許可する」「この操作は禁止する」といったルールを文章で書いたものです。このポリシーをユーザーやグループに関連付けることで、アクセス権が決まります。
3. S3やEC2に限定したアクセス権とは
S3はファイル置き場、EC2は仮想サーバーです。AWSでは非常に多くのサービスがあるため、すべてを自由に操作できる状態は危険です。そこで「S3だけ操作可能」「EC2は閲覧のみ」といった限定的なアクセス権を設定します。
初心者のうちは、必要最低限の権限だけを与える考え方が重要です。これを最小権限の原則と呼び、セキュリティ事故を防ぐ基本的な考え方になります。
4. IAMポリシーの基本構造を理解しよう
IAMポリシーはJSON形式で書かれますが、最初は難しく感じるかもしれません。内容は「どのサービスに」「どんな操作を」「許可するか、しないか」を書いているだけです。
例えば、S3の一覧表示だけを許可する、EC2の起動は禁止するといったルールを文章として定義します。AWSでは、あらかじめ用意された管理ポリシーもあるため、初心者はそれを使うのがおすすめです。
5. S3だけ操作できるIAMポリシーの例
ここでは、S3に対してのみ操作を許可するポリシーの例を見てみます。この設定を使うことで、EC2や他のサービスにはアクセスできなくなります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
このポリシーは、S3に関するすべての操作を許可する内容です。実務では、さらに操作を絞ることで安全性を高めます。
6. EC2に限定したアクセス権の設定例
次は、EC2だけを操作できるようにするポリシーの考え方です。サーバー管理担当者にはEC2の操作権限だけを与えたい、という場面で使われます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
}
]
}
このようにサービス名を変えるだけで、対象となるAWSサービスを切り替えられます。
7. IAMユーザーとグループへの設定手順
IAMポリシーを作成したら、それをユーザーやグループに関連付けます。AWS管理コンソールからIAMを開き、ユーザーまたはグループを選択してポリシーを追加します。
複数人が同じ権限を使う場合は、グループにポリシーを設定し、ユーザーをグループに入れる方法が管理しやすくなります。
8. アクセス権を限定するメリットと注意点
S3やEC2に限定したアクセス権を設定することで、誤操作や不正利用のリスクを大きく下げられます。特に初心者や外部委託の作業者には重要な設定です。
ただし、権限を絞りすぎると作業ができなくなる場合があります。その場合は、必要な操作だけを少しずつ追加して調整するのがポイントです。