IAMポリシーで特定のEC2インスタンスへの操作権限付与
表題の通り、IAMポリシーで特定のEC2インスタンスのみに操作権限を付ける
ことが可能になったみたいです。(2013/07時点)
http://aws.typepad.com/aws_japan/2013/07/resource-permissions-for-ec2-and-rds-resources.html
以下のIAMポリシーは、全EC2インスタンスの参照権限 + インスタンスID1、2
への再起動、起動、停止の権限を付与した例です。
ActionとResourceが重要です!
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EC2DESC", "Action": ["ec2:describe*"], "Resource": ["*"], "Effect": "Allow" }, { "Sid": "EC2BOOT", "Action": ["ec2:RebootInstances","ec2:StartInstances","ec2:StopInstances"], "Resource": ["arn:aws:ec2:ap-northeast-1:アカウントID:instance/インスタンスID1","arn:aws:ec2:ap-northeast-1:アカウントID:instance/インスタンスID2"], "Effect": "Allow" } ] }
今回はインスタンスID指定の例ですが、Conditionを使えばインスタンスID以外にタグでの
指定もできます。
あと全EC2インスタンスを見せたくないのが本心ですが、参照権限が無いと、
コンソールからインスタンス自体が見えません・・・。
仕様上、2013/07時点では、
1. インスタンス - 再起動(Reboot)、開始(Start)、停止(Stop)、終了(Terminate)
2. EBSボリューム - アタッチ(Attach)、削除(Delete)、デタッチ(Detach)
しか出来ない模様です。
って、この仕様で使う場面がイマイチ・・・
↑ 2013/11/26 加筆
仕様追加で再起動など以外の操作をコントロールする事が可能になりました!
さすが・・・
http://aws.typepad.com/aws_japan/2013/11/amazon-ec2-resource-level-permissions-for-runinstances.html
AWSのことだから何でも出来ると思っており、色んな権限付けて試してたら
完全にハマりました。
ポリシー作成の時はエラー出ないけど、動作確認したら想定と異なったり。。。
そんな時は、IAMポリシーシュミレータ が便利です。
https://policysim.aws.amazon.com/home/index.jsp?#
と言いつつ、リソース指定のIAMポリシーの場合、チェックが想定通りに行かないようです。
前述のポリシーは全てシュミレータでは、deniedになりました。
(その内対応されそう。)
・参考
http://www.slideshare.net/AmazonWebServicesJapan/20130716-aws-meisterregenerateiampublic
http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
以上です。