IAMユーザーを特定のEC2に制限する

2019-08-09

前提条件

  • IAMユーザーからのアクセスを全てのEC2インスタンスではなく、特定のEC2インスタンスに制限したい。
  • EC2の管理操作は、起動・停止・再起動など一般的な操作を対象としています。

設定方法

  • 当初、”Resource”にインスタンスのid を指定して、”Action”に”ec2:*” を指定したのですが権限のエラーとなりました。「You are not authorized to perform this operation.」
  • どうやら、”Action”の”ec2:Describe*”はリソース単位で制御ができないため、”Resource”を”*”としなければいけない様です。他に、CreateSnapshot、CreateImageもリソース単位の制御ができないアクションの様です。
  • 下記のようにアクション毎に”Resource”の指定を変えることで上手く行きました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:::instance/i-01234567890123456"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:*",
                "ec2:Describe*",
                "cloudwatch:*"
            ],
            "Resource": "*"
        }
    ]
}
 

参考情報