IAM PolicyのVersion要素ってなんぞ?
IAM PolicyのVersion要素について、ご存知ですか?
AmazonS3FullAccess { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] } |
"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要素をいじってみるとキチンとエラーが返ってきました。
The Policy must contain a valid version string が出てますね。
参考文献
この記事を書いた人
- よく訓練されたApple信者です。こぢんまりとプロマネをしているので、手を動かしていきたい。最近はコンテナまわりをやっています。
最近書いた記事
- 2019.05.21MacでECRにログインしようとすると怒られる
- 2018.12.13Recochoku Tech Night #09で4社合同re:Invent2018報告会を行いました。
- 2018.11.30【re:Invent 2018】Day4 - re:Playがアツい!!!
- 2018.11.30【re:Invent 2018】Day4 - Dr. Werner VogelsのKeynoteを聴いてきました!