IAM ポリシー JSON 完全ガイド|権限定義のベストプラクティス

IAM ポリシーは JSON 形式で書かれた権限ルール集。ユーザー / グループ / ロールに紐付け、`Effect` `Action` `Resource` `Condition` の組み合わせで権限を細かく制御する。AWS のアクセス制御の中核で、ポリシー設計力が AW...

JSON で記述する権限定義文書。誰が・何を・どこに対して・どんな条件で実行できるかを定義する。


1. 概要(端的に)

IAM ポリシーは JSON 形式で書かれた権限ルール集。ユーザー / グループ / ロールに紐付け、Effect Action Resource Condition の組み合わせで権限を細かく制御する。AWS のアクセス制御の中核で、ポリシー設計力が AWS 運用の質を決める。


2. 何ができるか

  • 権限の定義:許可 / 拒否を記述
  • きめ細かな制御:リソース ARN・条件で絞り込み
  • 再利用:管理ポリシーとして複数の ID に紐付け
  • 継承:グループ → ユーザー、ロール → 引き受けユーザー

6 種類のポリシー

種類適用先用途
アイデンティティベースユーザー/グループ/ロール「この人/サービスができること」
リソースベースS3 バケット・KMS 鍵等「このリソースにアクセスできる人」
パーミッションズバウンダリーユーザー/ロール上限権限の設定
SCP(Service Control Policy)Organizations組織全体のガードレール
アクセスコントロールリスト(ACL)S3・VPC 等レガシー・限定的
セッションポリシーAssumeRole 時一時的な権限制限

3. 特徴

観点特徴
記述形式JSON
追加料金無料
大きさ制限6,144 文字(管理ポリシー)
数の制限1 ユーザーに 10 管理ポリシーまで
評価ロジック明示的拒否 > 明示的許可 > 暗黙拒否
継承グループ・ロールから

ポリシー構造の基本要素

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AllowS3Read",         識別子(任意)
    "Effect": "Allow",             Allow / Deny
    "Action": "s3:GetObject",      操作
    "Resource": "arn:aws:s3:::*",  対象
    "Condition": {                 条件(任意)
      "IpAddress": {"aws:SourceIp": "10.0.0.0/8"}
    }
  }]
}

4. 仕組み

ポリシーは アクセスリクエストごとに評価され、結果として「許可 / 拒否」が決定される。

評価フロー

1. すべてのポリシーを集める(IAM ポリシー + リソースポリシー + SCP 等)
2. 明示的な Deny があるか?
   YES → 拒否(最終)
3. 明示的な Allow があるか?
   YES → 許可(最終)
4. なければ → 暗黙拒否

主な Condition

  • aws:SourceIp:送信元 IP
  • aws:CurrentTime:時刻
  • aws:MultiFactorAuthPresent:MFA 認証済みか
  • aws:RequestTag/…:タグベース
  • aws:PrincipalOrgID:Organizations 所属

NotAction / NotResource

  • NotAction:「これら以外の操作」
  • NotResource:「これら以外のリソース」
  • 用途:「S3 以外全部許可」のような書き方

ポリシー設計のベストプラクティス

  1. 最小権限の原則:必要最小限のみ
  2. AWS 管理ポリシーから始める
  3. * を避ける:明確に列挙
  4. タグベースの権限制御:リソース増加に強い
  5. アクセスアナライザー で検証

5. ユースケース

ユースケース 1:開発者用ポリシー

S3 / EC2 / Lambda の開発に必要な権限のみ付与。

ユースケース 2:本番アカウント保護

SCP で root を含む全員から特定操作を禁止。

ユースケース 3:S3 バケット公開

バケットポリシーで特定 IP からの公開アクセスを許可。

ユースケース 4:MFA 強制

Condition で MFA 必須化、ポリシー違反時は全操作拒否。

ユースケース 5:タグベースアクセス制御

「Project=A タグのリソースのみアクセス可」のチームスコープ制御。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFポリシーの概念
SAA最小権限設計、SCP 連携、Condition 活用
DVAポリシー JSON の読み書き(最頻出
SOAポリシー運用・監査