

# 管理ポリシーとインラインポリシー
<a name="access_policies_managed-vs-inline"></a>

IAM ID のアクセス許可を設定する必要がある場合は、AWS 管理ポリシー、カスタマー管理ポリシー、またはインラインポリシーを使用するかどうかを決定します。以下のトピックでは、各種のアイデンティティベースのポリシーとそれぞれの用途について詳しく説明します。

次の表は、これらのポリシーの概要を示しています。


| ポリシータイプ | 説明 | 誰がポリシーを管理しますか? | アクセス許可を変更しますか? | ポリシーに適用されたプリンシパルの数 | 
| --- | --- | --- | --- | --- | 
| [AWS マネージドポリシー](#aws-managed-policies) | AWS によって作成および管理されるスタンドアロンポリシー。 | AWS | 不可 | 多数 | 
| [カスタマー管理ポリシー](#customer-managed-policies) | 特定のユースケースのために作成したポリシーは、何度でも変更や更新が可能です。 | You | はい | 多数 | 
| [インラインポリシー](#inline-policies) | ポリシーとアイデンティティの間に一対一リレーションシップを維持する、単一の IAM アイデンティティ (ユーザー、グループ、またはロール) 用に作成されたポリシー。 | You | はい | 1 | 

**Topics**
+ [AWS マネージドポリシー](#aws-managed-policies)
+ [カスタマー管理ポリシー](#customer-managed-policies)
+ [インラインポリシー](#inline-policies)
+ [管理ポリシーとインラインポリシーのいずれかを選択する](access_policies-choosing-managed-or-inline.md)
+ [インラインポリシーを管理ポリシーに変換する](access_policies-convert-inline-to-managed.md)
+ [非推奨の AWS 管理ポリシー](access_policies_managed-deprecated.md)

## AWS マネージドポリシー
<a name="aws-managed-policies"></a>

*AWS 管理ポリシー*は、AWS が作成および管理するスタンドアロンポリシーです。スタンドアロンポリシーとは、ポリシー名が含まれている独自の Amazon リソースネーム (ARN) の付いたポリシーです。たとえば、`arn:aws:iam::aws:policy/IAMReadOnlyAccess` は AWS 管理ポリシーです。ARN の詳細については、[IAM ARN](reference_identifiers.md#identifiers-arns)を参照してください。AWS のサービス に対する AWS マネージドポリシーのリストについては、「[AWS マネージドポリシー](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)」を参照してください。

AWS 管理ポリシーは、ユーザー、IAM グループおよびロールに適切な権限を割り当てるのに便利です。ポリシーを自分で作成するよりも簡単で、多くの一般的なユースケースに対応したアクセス許可が含まれています。

AWS 管理ポリシーで定義されているアクセス許可は変更できません。AWS は、AWS 管理ポリシーで定義されているアクセス許可を不定期に更新します。AWS によるこの更新は、ポリシーがアタッチされているすべてのプリンシパルエンティティ (IAM ユーザー、IAM グループ、および IAM ロール) に影響を与えます。AWS は、新しい AWS サービスが開始されたときや既存のサービスで新しい API コールが利用可能になったときに、AWS 管理ポリシーを更新する可能性が最も高くなります。例えば、**ReadOnlyAccess** という AWS マネージドポリシーは、すべての AWS のサービスとリソースへの読み取り専用アクセスを許可します。AWS は新しいサービスを開始すると、AWS により **ReadOnlyAccess** ポリシーを更新して、新しいサービスに対する読み取り専用アクセス許可を追加します。更新されたアクセス権限は、ポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。

フルアクセス AWS マネージドポリシー: フルアクセスをサービスに付与して、サービス管理者のアクセス許可を定義します。以下に例を示します。
+ [AmazonDynamoDBFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess.html)
+ [IAMFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/IAMFullAccess.html)

AWS パワーユーザーマネージドポリシー: AWS のサービスとリソースへのフルアクセスを提供しますが、ユーザーと IAM グループの管理は許可しません。以下に例を示します。
+ [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeCommitPowerUser.html) 
+ [AWSKeyManagementServicePowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html)

部分的なアクセス AWS マネージドポリシー: [アクセス許可管理](access_policies_understand-policy-summary-access-level-summaries.md#access_policies_access-level)アクセスレベルの許可を与えることなく、AWS のサービスに特定のアクセスレベルを付与します。以下に例を示します。
+ [AmazonMobileAnalyticsWriteOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonMobileAnalyticsWriteOnlyAccess.html)
+ [AmazonEC2ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html) 

ジョブ機能 AWS マネージドポリシー: IT 業界でよく使用されているジョブ機能と密接に連携し、簡単な操作でそうしたジョブ機能に対するアクセス許可を付与できます。ジョブ機能ポリシーを使用する重要な利点としては、新しいサービスとして AWS によってこれらの保守や更新が行われ、API オペレーションが導入されることが 1 つ挙げられます。たとえば、[AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html) ジョブ関数は、AWS の各サービスおよびリソースへのフルアクセスを許可し、アクセス許可の委任が可能です。このポリシーは、アカウント管理者のみに使用することをお勧めします。IAM と AWS Organizations への制限されたアクセスを除き、すべてのサービスへのフルアクセスを必要とするパワーユーザーの場合は、[PowerUserAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/PowerUserAccess.html) ジョブ関数を使用します。ジョブ機能ポリシーのリストと説明については、[AWSジョブ機能の 管理ポリシー](access_policies_job-functions.md) を参照してください。

次の図は AWS 管理ポリシーを示しています。図には、**AdministratorAccess**、**PowerUserAccess**、**AWS CloudTrailReadOnlyAccess** の 3 つの AWS 管理ポリシーが示されています。1 つの AWS 管理ポリシーを複数の AWS アカウント のプリンシパルエンティティに、また、1 つの AWS アカウント の複数のプリンシパルエンティティにアタッチできることに注意してください。

![\[AWS 管理ポリシーの図\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/policies-aws-managed-policies.diagram.png)


## カスタマー管理ポリシー
<a name="customer-managed-policies"></a>

プリンシパルエンティティ ((IAM ユーザー、IAM グループ、および IAM ロール) にアタッチできる単独のポリシーを独自の AWS アカウント に作成することができます。これらの*カスタマー管理ポリシーは*、特定のユースケースに合わせて作成し、何度でも変更および更新が可能です。AWS 管理ポリシーのように、プリンシパルエンティティにアタッチすると、ポリシーで定義されたアクセス権限がエンティティに付与されます。ポリシーに含まれるアクセス許可が更新されると、その変更はポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。

お客様が管理するポリシーを作成する優れた方法は、既存の AWS 管理ポリシーをコピーして開始することです。この方法で、最初の段階でポリシーが正しいことがわかっていれば、ご使用の環境に合わせて必要なカスタマイズを行うことができます。

次の図は、カスタマー管理ポリシーを示しています。各ポリシーは、IAM 内の独自の [Amazon リソースネーム (ARN)](reference_identifiers.md#identifiers-arns) (ポリシー名を含む) を持つエンティティです。同じポリシーを複数のプリンシパルエンティティにアタッチできること (たとえば、同じ **DynamoDB-books-app** ポリシーが異なる 2 つの IAM ロールにアタッチされていること) に注目してください。

詳細については、[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](access_policies_create.md)を参照してください。

![\[カスタマー管理ポリシーの図\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/policies-customer-managed-policies.diagram.png)


## インラインポリシー
<a name="inline-policies"></a>

インラインポリシーは、1 つの IAM アイデンティティ (ユーザー、ユーザーグループ、ロール) に埋め込まれたポリシーです。インラインポリシーは、ポリシーとIDの間の厳密な1対1の関係を維持します。これらは、ID を削除すると削除されます。ID の作成時、またはそれ以降で、ポリシーを作成して ID に埋め込むことができます。ポリシーが複数のエンティティに適用される可能性がある場合は、管理ポリシーを使用することをお勧めします。

次の図はインラインポリシーを示しています。各ポリシーは本質的にユーザー、グループ、またはロールの一部です。2 つのロールが同じポリシー (**DynamoDB-books-app** ポリシー) を含んでいますが、1 つのポリシーを共有していないことに注意してください。各ロールには、独自のポリシーのコピーがあります。

![\[インラインポリシーの図\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/policies-inline-policies.diagram.png)


# 管理ポリシーとインラインポリシーのいずれかを選択する
<a name="access_policies-choosing-managed-or-inline"></a>

管理ポリシーとインラインポリシーのどちらを選ぶかは、ユースケースを考慮して決定します。通常、インラインポリシーではなく、管理ポリシーを使用することをお勧めします。

**注記**  
管理ポリシーとインラインポリシーの両方を併用して、プリンシパルエンティティに共通および固有のアクセス許可を定義することができます。

管理ポリシーは次の機能を備えています。

**再利用可能性**  
1 つの管理ポリシーを複数のプリンシパルエンティティ (ユーザー、グループ、ロール) にアタッチすることができます。AWS アカウント にとって有用なアクセス許可を定義するポリシーのライブラリを作成し、これらのポリシーを必要に応じてプリンシパルエンティティにアタッチできます。

**一元化された変更管理**  
管理ポリシーを変更すると、変更はポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。例えば、新しい AWS API のアクセス許可を追加する場合、カスタマー管理ポリシーを更新するか、AWS 管理ポリシーを関連付けてアクセス許可を追加します。AWS 管理ポリシーを使用している場合は、AWS がポリシーを更新します。管理ポリシーが更新されると、変更はその管理ポリシーがアタッチされているすべてのプリンシパルエンティティに適用されます。一方、インラインポリシーを変更するには、そのインラインポリシーを含む各アイデンティティを個別に編集する必要があります。たとえば、グループとロールの両方に同じインラインポリシーがある場合、両方のプリンシパルエンティティを個別に編集して、ポリシーを変更する必要があります。

**バージョニングとロールバック**  
カスタマー管理ポリシーを変更しても、変更されたポリシーによって既存のポリシーが上書きされることはありません。代わりに、IAM は管理ポリシーの新しいバージョンを作成します。IAM は、最大 5 つのバージョンのカスタマー管理ポリシーを保存します。ポリシーバージョンを使用し、必要に応じてポリシーを以前のバージョンに戻すことができます。  
ポリシーのバージョンは、`Version` ポリシーの要素とは異なります。`Version` ポリシー要素は、ポリシー内で使用され、ポリシー言語のバージョンを定義します。ポリシーのバージョンの詳細については、「[IAM ポリシーのバージョニング](access_policies_managed-versioning.md)」を参照してください。`Version` ポリシー要素の詳細については、「[IAM JSON ポリシー要素Version](reference_policies_elements_version.md)」を参照してください。

**アクセス許可管理の委任**  
ポリシーで定義されたアクセス許可を制御しながら、AWS アカウント のユーザーにポリシーのアタッチとデタッチを許可できます。これを行うには、一部のユーザーを完全な権限を持つ管理者 (ポリシーの作成、更新、削除が可能な管理者) として指定します。次に、権限が制限された管理者として他のユーザーを指定できます。他のプリンシパルエンティティにポリシーをアタッチできる限定管理者ですが、アタッチを許可したポリシーに限ります。  
アクセス許可の委任の詳細については、「[ポリシーへのアクセスの制御](access_controlling.md#access_controlling-policies)」を参照してください。

**より大きいポリシー文字制限**  
管理ポリシーの最大文字サイズ制限は、グループインラインポリシーの文字制限よりも大きいです。インラインポリシーの文字サイズの上限に達した場合は、さらに IAM グループを作成し、管理ポリシーをそのグループにアタッチできます。  
クォータと制限の詳細については、「[IAM と AWS STSクォータ](reference_iam-quotas.md)」を参照してください。

**AWS 管理ポリシーの自動更新**  
AWS は、AWS 管理ポリシーを維持し、新しい AWS サービスのアクセス許可を追加するなど、必要に応じて更新することで、お客様が変更することなく、サービスを提供することができます。更新は、AWS 管理ポリシーをアタッチしているプリンシパルエンティティに自動的に適用されます。

## 管理ポリシーで開始する
<a name="access_policies-get-started-managed-policy"></a>

[最小権限を付与する](access_policies.md#grant-least-priv)ポリシーを使用するか、タスクの実行に必要なアクセス許可のみを付与することをお勧めします。最小特権を付与する最も安全な方法は、チームに必要な権限のみを使用してカスタマー管理ポリシーを作成することです。必要に応じて、チームがより多くの権限を要求できるようにプロセスを作成する必要があります。チームに必要な権限のみを提供する [IAM カスタマーマネージドポリシーを作成する](access_policies_create-console.md)には時間と専門知識が必要です。

IAM ID (ユーザー、ユーザーのグループ、およびロール) にアクセス許可を追加するために、[AWS マネージドポリシー](access_policies_managed-vs-inline.md#aws-managed-policies) を使用できます。AWS 管理ポリシーは、最小特権のアクセス許可を付与しません。プリンシパルにジョブに必要な以上のアクセス許可を付与すると、セキュリティ上のリスクを考慮する必要があります。

ジョブ機能を含む AWS 管理ポリシーを任意の IAM ID にアタッチできます。詳細については、「[IAM ID のアクセス許可の追加および削除](access_policies_manage-attach-detach.md)」を参照してください。

最小特権のアクセス許可に切り替えるには、AWS Identity and Access Management and Access Analyzer を実行して、AWS マネージドポリシーでプリンシパルをモニタリングします。どのアクセス許可を使用しているかを学習したら、チームに必要なアクセス許可のみを持つカスタマー管理ポリシーを作成または生成することができます。これは安全性が低くなりますが、チームが AWS をどのように使用しているかを学習するにつれて柔軟性が高まります。詳細については、「[IAM Access Analyzer ポリシーの生成](access-analyzer-policy-generation.md)」を参照してください。

AWS 管理ポリシーは、多くの一般的ユースケースでアクセス許可を提供できるように設計されています。特定のジョブ機能用に設計された AWS 管理ポリシーの詳細については、[AWSジョブ機能の 管理ポリシー](access_policies_job-functions.md) を参照してください。

AWS 管理ポリシーの一覧については、「[AWS 管理ポリシーリファレンスガイド](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)」を参照してください。

## インラインポリシーの使用
<a name="policies-using-inline-policies"></a>

インラインポリシーは、ポリシーとそれが適用されている ID との厳密な 1 対 1 の関係を維持する必要がある場合に便利です。たとえば、ポリシー内のアクセス許可が意図したアイデンティティ以外のアイデンティティに間違って割り当てられないようにする必要がある場合などです。インラインポリシーを使用すると、ポリシーのアクセス許可が間違ったアイデンティティにアタッチされることはありません。また、AWS マネジメントコンソール を使用してアイデンティティを削除すると、そのアイデンティティに組み込まれたポリシーもプリンシパルエンティティの一部であるため、同様に削除されます。

# インラインポリシーを管理ポリシーに変換する
<a name="access_policies-convert-inline-to-managed"></a>

アカウントにインラインポリシーがある場合は、管理ポリシーに変換することができます。これを行うには、ポリシーを新しい管理ポリシーにコピーします。次に、インラインポリシーを持つ ID に新しいポリシーをアタッチします。次に、インラインポリシーを削除します。

## インラインポリシーを管理ポリシーに変換する
<a name="access_policies-convert-inline-to-managed-procedure"></a>

**インラインポリシーを管理ポリシーに変換するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. ナビゲーションペインで、**[ユーザーグループ]**、**[ユーザー]**、または **[ロール]** を選択します。

1. リストで、削除するポリシーを持つユーザーグループ、ユーザー、またはロールの名前を選択します。

1. [**アクセス許可**] タブを選択します。

1. IAM グループで、削除するインラインポリシーの名前を選択します。ユーザーおよびロールで、[**Show *n* more**] を選択し、 必要であれば、削除するインラインポリシーを展開します。

1. [**コピー**] を選択し、ポリシーの JSON ポリシードキュメントをコピーします。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. [**ポリシーの作成**] を選択し、[**JSON**] オプションを選択します。

1. 既存のテキストを JSON ポリシーテキストに置き換え、[**次へ**] を選択します。

1. ポリシーの名前と説明 (省略可能) を入力し、**[ポリシーを作成]** を選択します。

1. ナビゲーションペインで、[**ユーザーグループ**]、[**ユーザー**]、または [**ロール**] を選択し、削除するポリシーを含むグループ、ユーザー、またはロールの名前を再度選択します。

1. [**アクセス許可**] タブを選択してから、[**アクセス許可を追加**] を選択します。

1. IAM グループで、新しいポリシーの名前の横にあるチェックボックスをオンにし、**[アクセス許可の追加]** に続いて **[ポリシーのアタッチ]** を選択します。ユーザーまたはロールで、[**アクセス許可の追加**] を選択します。次のページで、**[既存のポリシーを直接アタッチ]** を選択し、新しいポリシーの名前の横にあるチェックボックスをオンにしたら、**[次へ]**、**[アクセス許可を追加]** の順に選択します。

   ユーザーグループ、ユーザー、またはロールの [**概要**] ページに戻ります。

1. 削除するインラインポリシーの横にあるチェックボックスをオンにして、**[削除]** を選択します。

# 非推奨の AWS 管理ポリシー
<a name="access_policies_managed-deprecated"></a>

アクセス許可の割り当てを簡素化するために、AWS は[管理ポリシー](access_policies_managed-vs-inline.md)を提供します。このポリシーは、IAM ユーザー、グループ、およびロールへのアタッチが可能な状態の事前定義されたポリシーです。

新しいサービスの導入時など、AWS で既存のポリシーに新しいアクセス許可を追加する必要が生じる場合があります。既存のポリシーに新しいアクセス権限を追加しても、機能や働きを中断または削除されることはありません。

ただし、既存のポリシーに必要な変更を適用した場合にそれらが顧客に影響するときに、AWS で*新しい*ポリシーを作成してもかまいません。たとえば、既存のポリシーからアクセス許可を削除すると、そのアクセス許可に依存していたすべての IAM エンティティまたはアプリケーションのアクセス許可が破棄されて、重大なオペレーションを中断する可能性があります。

したがって、このような変更が必要な場合、AWS では完全に新しいポリシーを作成して必要な変更を適用し、顧客が使用できるようにします。古いポリシーは、*非推奨*としてマークされます。マネージドポリシーの詳細については、「AWS マネージドポリシーリファレンスガイド」の「[非推奨の AWS 管理ポリシー](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/about-managed-policy-reference.html#deprecated-managed-policies)」を参照してください。