Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I limit EC2 describe images permissions?

I'm trying to constrain the images which a specific IAM group can describe. If I have the following policy for my group, users in the group can describe any EC2 image:

{
    "Effect": "Allow",
    "Action": ["ec2:DescribeImages"],
    "Resource": ["*"]
}

I'd like to only allow the group to describe a single image, but when I try setting "Resource": ["arn:aws:ec2:eu-west-1::image/ami-c37474b7"], I get exceptions when trying to describe the image as a member of the group:

AmazonServiceException Status Code: 403,
  AWS Service: AmazonEC2,
  AWS Request ID: 911a5ed9-37d1-4324-8493-84fba97bf9b6,
  AWS Error Code: UnauthorizedOperation,
  AWS Error Message: You are not authorized to perform this operation.

I got the ARN format for EC2 images from IAM Policies for EC2, but perhaps something is wrong with my ARN? I have verified that the describe image request works just fine when my resource value is "*".

like image 280
Josh Glover Avatar asked May 23 '14 15:05

Josh Glover


1 Answers

Unfortunately the error message is misleading, the problem is that Resource-Level Permissions for EC2 and RDS Resources aren't yet available for all API actions, see this note from Amazon Resource Names for Amazon EC2:

Important

Currently, not all API actions support individual ARNs; we'll add support for additional API actions and ARNs for additional Amazon EC2 resources later. For information about which ARNs you can use with which Amazon EC2 API actions, as well as supported condition keys for each ARN, see Supported Resources and Conditions for Amazon EC2 API Actions.

In particular, all ec2:Describe* actions are absent still from Supported Resources and Conditions for Amazon EC2 API Actions at the time of this writing, which implies that you cannot use anything but "Resource": ["*"] for ec2:DescribeImages.

The referenced page on Granting IAM Users Required Permissions for Amazon EC2 Resources also mentions that AWS will add support for additional actions, ARNs, and condition keys in 2014 - they have indeed regularly expanded resource level permission coverage over the last year or so already, but so far only for actions which create or modify resources, but not any which require read access only, something many users desire and expect for obvious reasons, including myself.

like image 63
Steffen Opel Avatar answered Nov 02 '22 16:11

Steffen Opel