IAM PolicyのVersion要素について

AWS, IAM

この記事は最終更新日から1年以上が経過しています。

IAM PolicyのVersion要素ってなんぞ?

IAM PolicyのVersion要素について、ご存知ですか?

"Version": "2012-10-17",の部分です。

VersionといえばそりゃJSONのポリシーのバージョン管理をユーザー任意にできるんだろ!!!
と思っていましたが、どうやら違うようです。

IAM PolicyのJSON ポリシーエレメント:Version

AWSの公式には以下のように書いてあります。

Version ポリシーエレメントはポリシーバージョンとは異なります。Version ポリシー要素は、ポリシー内で使用され、ポリシー言語のバージョンを定義します。一方で、ポリシーバージョンは、IAM でカスタマー管理ポリシーを変更すると作成されます。変更されたポリシーによって既存のポリシーが上書きされることはありません。代わりに、IAM は管理ポリシーの新しいバージョンを作成します。管理ポリシーに対する複数のバージョンのサポートに関する情報を探している場合は、「IAM ポリシーのバージョニング」を参照してください。

Version エレメントは、このポリシーを処理するために使用される言語構文ルールを指定します。指定したバージョンで使用できない機能を含めると、ポリシーでエラーが生成されるか、ポリシーが意図したとおりに動作しません。一般的なルールとして、使用可能な最新のバージョンを指定してください (以降のバージョンで廃止された機能に依存する場合を除きます)。

ポリシーエレメント:Versionの要点

  • Version ポリシーエレメントはポリシー自体のバージョン管理(バージョニング)をする要素ではない。
  • ポリシーを処理するために使用するJSONの言語構文(ポリシー言語)のルール指定をするためのバージョンである。
  • Version 要素は、Statement 要素の前に表示する必要がある。
  • Version 要素は現在のところ2つだけある。(2008-10-17と2012-10-17)
  • Version 要素を含めない場合、デフォルトで2008-10-17となる。
  • ただし推奨しているのは2012-10-17なので、2012-10-17を記載しましょう!

※ちなみにポリシーのバージョン管理については更新するたびに最大5個までバージョニングをしてくれるようです。
詳しくは以下のIAMポリシーのバージョニングをどうぞ。

お試し

以下の通り、Version要素をいじってみるとキチンとエラーが返ってきました。

iam_policy1.png

iam_policy2.png

The Policy must contain a valid version string が出てますね。

参考文献

この記事を書いた人

権藤洋一郎
権藤洋一郎
よく訓練されたApple信者です。こぢんまりとプロマネをしているので、手を動かしていきたい。最近はコンテナまわりをやっています。

AWS, IAM