メニュー
AWS Identity and Access Management
ユーザーガイド

管理ポリシーのバージョニング

ユーザーがカスタマー管理ポリシーを変更した場合、または AWS が AWS 管理ポリシーを変更した場合、変更されたポリシーで既存のポリシーは上書きされません。代わりに、IAM は管理ポリシーの新しいバージョンを作成します。IAM では、最大 5 つのバージョンのカスタマー管理ポリシーが保存されます。これを図示すると次のようになります。

 管理ポリシーを変更するとポリシーのバージョンが新しくなる

ポリシーのバージョンは、Version ポリシーの要素とは異なります。Version ポリシー要素は、ポリシー内で使用され、ポリシー言語のバージョンを定義します。Version ポリシー要素の詳細については、「Version」を参照してください。

バージョンを使用して、管理ポリシーの変更を追跡できます。たとえば、管理ポリシーに変更を加えた後で、その変更が意図しない結果をもたらしたことに気付く場合があります。この場合、以前のバージョンをデフォルトのバージョンとして設定することで、管理ポリシーを以前のバージョンにロールバックできます。

以下のセクションでは、管理ポリシーにバージョニングを使用する方法を説明しています。

デフォルトバージョンの設定

管理ポリシーのバージョンのうちの 1 つはデフォルトバージョンに設定されています。ポリシーのデフォルトバージョンは動作バージョン、つまり管理ポリシーをアタッチするすべてのプリンシパルエンティティ(ユーザー、グループ、ロール)に対して有効なバージョンです。

カスタマー管理ポリシーを作成すると、ポリシーは v1 として識別される単一バージョンから始まります。管理ポリシーのバージョンが 1 つのみの場合は、そのバージョンが自動的にデフォルトとして設定されます。カスタマー管理ポリシーに複数のバージョンがある場合は、デフォルトとして設定するバージョンを選択します。AWS 管理ポリシーのデフォルトバージョンは AWS によって設定されます。次の図にその概念を示します。

 管理ポリシーのバージョンが 1 つのみの場合は、そのバージョンがデフォルトバージョンになる

 カスタマー管理ポリシーに 3 つのバージョンがある場合は、v2 がデフォルトバージョンになる

カスタマー管理ポリシーのデフォルトバージョンはユーザーが設定できますが、AWS 管理ポリシーのデフォルトバージョンは AWS によって設定されます。AWS マネジメントコンソール を使用してカスタマー管理ポリシーのデフォルトバージョンを設定するには、「カスタマー管理ポリシーのデフォルトバージョンの設定」を参照してください。AWS Command Line Interface または IAM API については、「AWS CLI または IAM API での管理ポリシーの使用」を参照してください。

バージョンを使用して変更をロールバックする

カスタマー管理ポリシーを変更すると、変更内容はポリシーのバージョンとして保存されます。変更をロールバックした方がいい場合もあります。たとえば、次のシナリオを考えてみます。

AWS マネジメントコンソール を使用して特定の Amazon S3 バケットの管理をユーザーに許可するカスタマー管理ポリシーを作成するとします。作成した時点では、存在するバージョンは v1 として識別される 1 つのバージョンのみであり、そのバージョンが自動的にデフォルトとして設定されます。ポリシーは目的どおりに機能します。

後から、ポリシーを更新して 2 つ目の Amazon S3 バケットを管理するアクセス権限を追加します。IAM はポリシーの新しいバージョンとして v2 を作成し、このバージョンに変更が含まれます。v2 をデフォルトのバージョンとして設定してからしばらくして、Amazon S3 コンソールを使用する権限がないという報告をユーザーから受けたとします。この場合は、ポリシーのバージョンを、目的どおりに機能することがわかっている v1 にロールバックできます。これを行うには、デフォルトのバージョンとして v1 を設定します。ユーザーは Amazon S3 コンソールを使用して元のバケットを管理できるようになりました。

後で、ポリシーのバージョン v2 のエラーを確認してから、再度ポリシーを更新して 2 つ目の Amazon S3 バケットを管理するアクセス権限を追加します。IAM はポリシーのもう一つの新しいバージョンとして v3 を作成します。デフォルトのバージョンとして v3 を設定すると、このバージョンは目的どおりに機能します。この時点で、ポリシーのバージョン v2 を削除します。

バージョンの制限

管理ポリシーは最大 5 つのバージョンを持つことができます。AWS Command Line Interface または IAM API を使用して、管理ポリシーのバージョンを 5 つ以上にする必要がある場合は、まず既存のバージョンを 1 つ以上削除する必要があります。AWS マネジメントコンソール を使用している場合は、ポリシーを編集する前にバージョンを削除する必要はありません。6 番目のバージョンを保存する際、デフォルト以外のポリシーのバージョンを 1 つ以上削除することを求めるダイアログボックスが表示されます。確認しやすいように、各バージョンの JSON ポリシードキュメントを表示します。このダイアログボックスについては、「カスタマー管理ポリシーの編集」を参照してください。

管理ポリシーのデフォルトバージョン以外の任意のバージョンを削除できます。バージョンを削除しても、残りのバージョンのバージョン ID は変更されません。その結果、バージョン ID はシーケンシャルではなくなる場合があります。たとえば、管理ポリシーのバージョン v2 と v4 を削除して 2 つの新しいバージョンを追加すると、残ったバージョンの ID は v1、v3、v5、v6、v7 となる可能性があります。