管理ポリシーとインラインポリシー
IAM ID のアクセス許可を設定する必要がある場合は、AWS 管理ポリシー、カスタマー管理ポリシー、またはインラインポリシーを使用するかどうかを決定します。以下のトピックでは、各種のアイデンティティベースのポリシーとそれぞれの用途について詳しく説明します。
AWS マネージドポリシー
AWS 管理ポリシーは、AWS が作成および管理するスタンドアロンポリシーです。スタンドアロンポリシーとは、ポリシー名が含まれている独自の Amazon リソースネーム (ARN) の付いたポリシーです。たとえば、arn:aws:iam::aws:policy/IAMReadOnlyAccess
は AWS 管理ポリシーです。ARN の詳細については、IAM ARNを参照してください。AWS のサービス に対する AWS マネージドポリシーのリストについては、「AWS マネージドポリシー」を参照してください。
AWS 管理ポリシーは、ユーザー、IAM グループおよびロールに適切な権限を割り当てるのに便利です。ポリシーを自分で作成するよりも簡単で、多くの一般的なユースケースに対応したアクセス許可が含まれています。
AWS 管理ポリシーで定義されているアクセス許可は変更できません。AWS は、AWS 管理ポリシーで定義されているアクセス許可を不定期に更新します。AWS によるこの更新は、ポリシーがアタッチされているすべてのプリンシパルエンティティ (IAM ユーザー、IAM グループ、および IAM ロール) に影響を与えます。AWS は、新しい AWS サービスが開始されたときや既存のサービスで新しい API コールが利用可能になったときに、AWS 管理ポリシーを更新する可能性が最も高くなります。例えば、ReadOnlyAccess という AWS マネージドポリシーは、すべての AWS のサービスとリソースへの読み取り専用アクセスを許可します。AWS は新しいサービスを開始すると、AWS により ReadOnlyAccess ポリシーを更新して、新しいサービスに対する読み取り専用アクセス許可を追加します。更新されたアクセス権限は、ポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。
フルアクセス AWS マネージドポリシー: フルアクセスをサービスに付与して、サービス管理者のアクセス許可を定義します。その例を以下に示します。
AWS パワーユーザーマネージドポリシー: AWS のサービスとリソースへのフルアクセスを提供しますが、ユーザーと IAM グループの管理は許可しません。その例を以下に示します。
部分的なアクセス AWS マネージドポリシー: アクセス許可管理アクセスレベルの許可を与えることなく、AWS のサービスに特定のアクセスレベルを付与します。その例を以下に示します。
ジョブ機能 AWS マネージドポリシー: IT 業界でよく使用されているジョブ機能と密接に連携し、簡単な操作でそうしたジョブ機能に対するアクセス許可を付与できます。ジョブ機能ポリシーを使用する重要な利点としては、新しいサービスとして AWS によってこれらの保守や更新が行われ、API オペレーションが導入されることが 1 つ挙げられます。たとえば、AdministratorAccess ジョブ関数は、AWS の各サービスおよびリソースへのフルアクセスを許可し、アクセス許可の委任が可能です。このポリシーは、アカウント管理者のみに使用することをお勧めします。IAM と Organizations への制限されたアクセスを除き、すべてのサービスへのフルアクセスを必要とするパワーユーザーの場合は、PowerUserAccess ジョブ関数を使用します。ジョブ機能ポリシーのリストと説明については、AWSジョブ機能の 管理ポリシー を参照してください。
次の図は AWS 管理ポリシーを示しています。図には、AdministratorAccess、PowerUserAccess、AWS CloudTrailReadOnlyAccess の 3 つの AWS 管理ポリシーが示されています。1 つの AWS 管理ポリシーを複数の AWS アカウント のプリンシパルエンティティに、また、1 つの AWS アカウント の複数のプリンシパルエンティティにアタッチできることに注意してください。
カスタマー管理ポリシー
プリンシパルエンティティ ((IAM ユーザー、IAM グループ、および IAM ロール) にアタッチできる単独のポリシーを独自の AWS アカウント に作成することができます。これらのカスタマー管理ポリシーは、特定のユースケースに合わせて作成し、何度でも変更および更新が可能です。AWS 管理ポリシーのように、プリンシパルエンティティにアタッチすると、ポリシーで定義されたアクセス権限がエンティティに付与されます。ポリシーに含まれるアクセス許可が更新されると、その変更はポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。
お客様が管理するポリシーを作成する優れた方法は、既存の AWS 管理ポリシーをコピーして開始することです。この方法で、最初の段階でポリシーが正しいことがわかっていれば、ご使用の環境に合わせて必要なカスタマイズを行うことができます。
次の図は、カスタマー管理ポリシーを示しています。各ポリシーは、IAM 内の独自の Amazon リソースネーム (ARN) (ポリシー名を含む) を持つエンティティです。同じポリシーを複数のプリンシパルエンティティにアタッチできること (たとえば、同じ DynamoDB-books-app ポリシーが異なる 2 つの IAM ロールにアタッチされていること) に注目してください。
詳細については、「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
インラインポリシー
インラインポリシーは、1 つの IAM アイデンティティ (ユーザー、ユーザーグループ、ロール) に埋め込まれたポリシーです。インラインポリシーは、ポリシーとIDの間の厳密な1対1の関係を維持します。これらは、ID を削除すると削除されます。ID の作成時、またはそれ以降で、ポリシーを作成して ID に埋め込むことができます。ポリシーが複数のエンティティに適用される可能性がある場合は、管理ポリシーを使用することをお勧めします。
次の図はインラインポリシーを示しています。各ポリシーは本質的にユーザー、グループ、またはロールの一部です。2 つのロールが同じポリシー (DynamoDB-books-app ポリシー) を含んでいますが、1 つのポリシーを共有していないことに注意してください。各ロールには、独自のポリシーのコピーがあります。