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

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

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

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

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

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

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

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

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

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

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

カスタマー管理ポリシーのデフォルトバージョンはユーザーが設定できますが、AWS 管理ポリシーのデフォルトバージョンは AWS によって設定されます。カスタマー管理ポリシーのデフォルトバージョンは AWS マネジメントコンソール、AWS Command Line Interface、または 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 つのバージョンを持つことができます。管理ポリシーのバージョンを 5 つ以上にする必要がある場合は、1 つ以上の既存のバージョンを削除する必要があります。管理ポリシーのデフォルトバージョン以外の任意のバージョンを削除できます。

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