AWSでユーザーやロールに権限を付与するときに使うのが、IAM(Identity and Access Management)のポリシーです。ポリシーには、例えば「S3に保存したファイルを読み取れる」といった、許可・拒否する操作のルールを記述します。
しかしIAMポリシーには次の3種類があり、「どれを使えばいいの?」と迷ってしまう人が多いはずです。
- AWS管理ポリシー(AWS managed policy)
- カスタマー管理ポリシー(Customer managed policy)
- インラインポリシー(Inline policy)
名前が似ていますが、主な違いは「誰が作成・管理するか」と「複数のユーザーやロールで共有できるか」です。
この記事では、以下の内容をわかりやすく解説します。
- 3種類のポリシーの違い
- 各ポリシーの特徴・メリット・デメリット
- 用途に応じたポリシーの使い分け
「AWS管理ポリシー」と「カスタマー管理ポリシー」と「インラインポリシー」の違い
AWS管理ポリシーはAWSが管理する共通のポリシー、カスタマー管理ポリシーは利用者が管理する共通のポリシー、インラインポリシーは特定のユーザー・グループ・ロールに直接組み込むポリシーです。
それぞれの違いを以下の表にまとめます。
| 比較項目 | AWS管理ポリシー | カスタマー管理ポリシー | インラインポリシー |
| 作成・管理する人 | AWS | 利用者 | 利用者 |
| ポリシーの持ち方 | 独立したポリシー | 独立したポリシー | 特定のユーザー・グループ・ロールに組み込む |
| 複数の対象での共有 | できる | 同じAWSアカウント内でできる | 同じポリシーとしては共有できない |
| 利用者による内容の編集 | できない | できる | できる |
| IAMのバージョン管理 | AWSが管理する | 最大5つのバージョンを保存できる | 対応していない |
| 管理の手間 | 内容の更新はAWSが担当 | 内容の作成・更新を利用者が担当 | 対象ごとの作成・更新を利用者が担当 |
AWS管理ポリシーとカスタマー管理ポリシーは、まとめて管理ポリシーと呼ばれます。管理ポリシーをユーザー・グループ・ロールに関連付けることを「アタッチ」といいます。
例えば、2つのロールに同じ読み取り権限を設定する場合、管理ポリシーなら1つのポリシーを両方にアタッチできます。インラインポリシーなら、それぞれのロールに別々のポリシーを組み込みます。同じ内容をコピーしても、1つのポリシーを共有しているわけではありません。
AWS管理ポリシーとカスタマー管理ポリシーは再利用できるため、複数のユーザー・グループ・ロールで同じ権限を共有することができます。しかし、インラインポリシーは単一のユーザー・グループ・ロールのみに適用させるため、再利用することができません。
それぞれのポリシーの使い分けは以下のように行います。
- AWS管理ポリシー(AWS managed policy)
- 一般的な用途の権限を、用意されたポリシーから選んで付与したい場合。
- カスタマー管理ポリシー(Customer managed policy)
- 必要な操作や対象リソースを絞り、自分の環境に合わせて権限を管理したい場合。
- インラインポリシー(Inline policy)
- 特定のユーザー・グループ・ロールとポリシーを、一対一の関係で管理したい場合。
権限設計では、作業に必要な権限だけを付与する「最小権限の原則」が基本です。AWS管理ポリシーは導入時の出発点になりますが、用途によっては権限が広すぎるため、必要に応じてカスタマー管理ポリシーで範囲を絞ります。
では、各ポリシーの特徴・メリット・デメリットを順番に見ていきましょう。
AWS管理ポリシー(AWS Managed Policy)
AWS管理ポリシーはAWSが公式で提供しているポリシーです。複数のユーザー・グループ・ロールにアタッチできます。「簡単にアクセス権限を付けたいとき」や「権限の管理コストを下げたいとき」に使用します。
AWS管理ポリシーにはオレンジ色のAWSアイコンが付いています。

代表的なAWS管理ポリシーには、次のようなものがあります。
AdministratorAccessAmazonS3ReadOnlyAccessAmazonEC2FullAccessAWSLambdaBasicExecutionRole
例えば、S3の読み取りに関する権限を付与するポリシーとして、AmazonS3ReadOnlyAccessがあります。ただし、特定のバケットだけを対象にしたい場合には、カスタマー管理ポリシーで必要な範囲に絞ることを検討します。
AWS管理ポリシーの特徴・メリット・デメリットを以下に示します。
特徴
- AWSが必要に応じてポリシーの内容を更新します。
- 更新された内容は、そのポリシーをアタッチしている対象にも適用されます。
- 利用者がポリシーの内容を直接編集することはできません。
メリット
- 用意されたポリシーを選ぶことで、権限設定を始めやすい。
- ポリシーの内容を自分で一から作成する手間を減らせる。
- ポリシー自体の更新はAWSが行う。
デメリット
- 自分の用途に必要な権限より、許可範囲が広い場合がある。
- 特定のリソースだけに限定するなど、内容を直接カスタマイズできない。
- AWSによる更新で権限が変わる可能性があるため、付与内容の確認が必要になる。
注意点
注意点:AWS管理ポリシーだからといって、どの用途でも安全とは限りません。特にAdministratorAccessは非常に強い権限を付与するため、単に設定が簡単という理由で選ばず、管理者として必要な対象に限定して使用します。
カスタマー管理ポリシー(Customer Managed Policy)
カスタマー管理ポリシーは、利用者が自分のAWSアカウント内で作成・管理するポリシーです。同じアカウント内の複数のユーザー・グループ・ロールにアタッチできます。
例えば、「特定のS3バケット内のファイルだけを読み取れる」という権限を作成し、複数のアプリケーション用ロールで共通利用できます。AWS管理ポリシーでは権限が広すぎる場合や、組織独自の権限をまとめて管理したい場合に適しています。
カスタマー管理ポリシーの特徴・メリット・デメリットを以下に示します。
特徴
- 許可する操作や対象リソース、条件を自分で設定できます。
- JSON形式のポリシーを記述するほか、IAMコンソールのビジュアルエディターでも作成できます。
- 適用するバージョンを変更すると、そのポリシーをアタッチしているすべての対象に反映されます。
- IAMのバージョン管理に対応しています。
メリット
- 自分の環境に合わせて、最小権限を目指したポリシーを作成できる。
- 同じ権限を複数のユーザーやロールで共通利用できる。
- 共通の権限を1か所で更新でき、対象ごとの修正を減らせる。
- 保存済みのバージョンを使って、以前の内容に戻せる。
デメリット
- 必要な操作や対象リソースを把握し、適切な権限を設計する必要がある。
- アプリケーションや運用の変更に合わせて、内容を見直す必要がある。
- 共通利用しているポリシーの変更は、複数のユーザーやロールに影響する。
インラインポリシー(Inline Policy)
インラインポリシーは、特定のユーザー・グループ・ロールに直接組み込むポリシーです。独立した管理ポリシーとして、複数の対象へアタッチすることはできません。
例えば、ある処理専用のロールに権限を設定し、そのロールとポリシーを一対一で管理したい場合に使います。
インラインポリシーの特徴・メリット・デメリットを以下に示します。
例えば、ある処理専用のロールに権限を設定し、そのロールとポリシーを一対一で管理したい場合に使います。
特徴
- 組み込んだユーザー・グループ・ロールに紐づきます。
- 組み込み先を削除すると、インラインポリシーも削除されます。
- 同じポリシーを複数の対象で共有することはできません。
- IAMのバージョン管理には対応していません。
メリット
- 特定の対象とポリシーを、一対一の関係で管理できる。
- 独立したポリシーとして選択・アタッチできないため、別の対象へ誤ってアタッチすることを防げる。
- 組み込み先の削除とあわせて、その専用ポリシーも削除される。
デメリット
- 同じ権限を複数の対象に設定したい場合、個別に作成・管理する必要がある。
- 内容を変更しても、別の対象にコピーしたポリシーには反映されない。
- IAMのバージョン管理を使って、以前の内容へ戻すことはできない。
なお、同じ内容をコピーして、別の対象に新しいインラインポリシーを作成することはできます。つまり、別の対象へのアタッチは防げても、内容のコピーまで禁止する仕組みではありません。
また、「1つのロールだけで使う」という理由だけで、必ずインラインポリシーにする必要はありません。カスタマー管理ポリシーを1つのロールだけにアタッチすることもできます。
本記事のまとめ
この記事では「AWS管理ポリシー」「カスタマー管理ポリシー」「インラインポリシー」の違いについて、以下の内容を説明しました。
- AWS管理ポリシーはAWSが作成・管理し、利用者は内容を直接編集できない。
- カスタマー管理ポリシーは利用者が作成・管理し、同じアカウント内で共通利用できる。
- インラインポリシーは特定のユーザー・グループ・ロールに組み込み、一対一で管理する。
一般的な用途の権限を手早く設定したい場合はAWS管理ポリシー、自分の環境に合わせて権限を絞りたい場合はカスタマー管理ポリシーが候補になります。インラインポリシーは、対象とポリシーを一対一で管理する必要がある場合に検討しましょう。
お読みいただきありがとうございました。