Friday, August 24, 2018

Why won't IAM “AmazonEC2FullAccess” policy allow user to launch instances?

Leave a Comment

The policies attached to the IAM developers group I've set up are as follows:

enter image description here

However, launching new instances won't work. Just after a user in this group selects the key pair to associate with it, i.e. reaches the final step, they get the following message on the next page:

Launch Failed

You are not authorized to perform this operation. Encoded authorization failure message: WZzytnkJ4T3-nkMYslM...

What's preventing developers to launch new instances, given these policies?

2 Answers

Answers 1

It could be that the instance is being launched with an IAM Role, and the group does not have iam:PassRole permissions (which are outside of the ec2:* permissions space).

You should add a policy like this:

{     "Version": "2012-10-17",     "Statement": [         {             "Sid": "PassRoleToEC2",             "Effect": "Allow",             "Action": "iam:PassRole",             "Resource": "*"         }     ] } 

This saying "Allow this user to pass any (*) role to an EC2 instance".

Actually, you should limit such permissions only to specific roles, otherwise a normal user could select an Admin role. Then, if they logged into the instance, they would have access to credentials that have Admin permissions on the whole AWS Account.

Alternatively, do not select a Role when launching the instance. It should then launch okay (assuming that this is the issue causing the error).

Answers 2

The user needs a PassRole permission.

A Role must be associated with the "Launch" of the EC2 instance.

The PassRole permission helps you make sure that a user doesn’t pass a role to an EC2 instance where the role has more permissions than you want the user to have.

As in the following example, if the EC2 Launch requires access to S3 you User must be able to pass the S3 role required.

{   "Effect":"Allow",   "Action":"iam:PassRole",   "Resource":"arn:aws:iam::123456789012:role/S3Access" } 

Link to documentation: https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment