IAMポリシーでできること・アクション一覧・条件の書き方まとめ【初心者向けAWS IAM】
生徒
「IAMポリシーで具体的に何ができるのか、行動(アクション)や条件設定の書き方がよくわかりません…」
先生
「IAMポリシーを理解するためには、許可できるアクションや条件式の書き方を押さえておくことが大切です。一緒に整理しましょう。」
生徒
「お願いします!初心者にもわかりやすく、IAMポリシーの使い方を教えてください!」
先生
「それでは、IAMポリシーでできること、指定できるアクション一覧、条件の書き方について丁寧に解説していきます!」
1. IAMポリシーでできることとは?基本機能の概要
AWS IAMポリシーを使うと、AWSリソースに対して
- どのアクションを許可または拒否するか(例:s3:GetObject)
- どのリソースに対して適用するか(例:ARN指定)
- どの条件で適用するか(例:特定のIPからのアクセスのみ許可)
という三要素で、アクセスをきめ細かく制御できます。これによりセキュリティを強化しつつ、柔軟な運用が可能になります。
2. AWSで使える主なアクション一覧と分類
AWSのサービスごとに、使用できるアクション(Action)は多数あります。代表的なアクションをサービス別にまとめると以下のようになります:
+------------+-----------------------------+
| サービス | 主なアクション名 |
+------------+-----------------------------+
| S3 | s3:ListBucket, s3:GetObject, s3:PutObject |
| EC2 | ec2:StartInstances, ec2:StopInstances |
| RDS | rds:DescribeDBInstances, rds:CreateDBInstance |
| Lambda | lambda:InvokeFunction, lambda:CreateFunction |
| IAM | iam:CreateUser, iam:AttachRolePolicy |
+------------+-----------------------------+
これらはほんの一例ですが、最初に知っておきたいよく使うアクションです。ActionはAWSドキュメントで正式名称を確認しましょう。
3. IAMポリシーにおける条件(Condition)の使い方
Conditionを使うことで、条件に応じたアクセス制御ができます。たとえば「指定されたIPアドレスからのアクセスだけ許可」「特定のタグ付きリソースに限定して許可」などです。
Conditionの基本構文は以下のとおりです:
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*",
"Condition": {
"IpAddress": { "aws:SourceIp": "203.0.113.0/24" },
"StringEquals": { "aws:RequestTag/Project": "MyProject" }
}
}
主なCondition演算子には:
- IpAddress/NotIpAddress:IPアドレス帯で制限する
- StringEquals/StringNotEquals:文字列一致、タグやAWSヘッダーで絞る
- Bool:属性が真偽値である場合の制御
4. 条件による細かなアクセス制御の例
以下は、特定のVPCエンドポイント経由でのアクセスのみ許可する例です:
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-bucket",
"Condition": {
"StringEquals": { "aws:sourceVpce": "vpce-1234567890abcdef0" }
}
}
これにより、安全なネットワークからのみS3バケットの一覧を取得できるようになります。
5. IAMポリシー設計のポイントまとめ
- 最小権限の原則:必要なActionだけを許可する
- リソース指定の精細化:ワイルドカードを必要以上に使わない
- Conditionを活かす:IP、タグ、日付など状況に応じた制限をうまく使う
- ActionとConditionの組み合わせを意識:柔軟な制御とセキュリティを両立させる設計を心がける
これらがIAMポリシー運用における基本の考え方です。