Q1: I am trying to create user in IAM AWS console that has restricted permissions only to start new instances using knife ec2 method. Currently only full access with policy "Amazon EC2 Full access" works. Creating user and granting start/stop instances and describe images does not work.
Q2: How i can debug this
ERROR: Fog::Compute::AWS::Error: UnauthorizedOperation => You are not authorized to perform this operation.
and trace down which exactly permission do i need. (-V -V -V didnt work)
Q1: I had to debug knife-ec2 gem in order to find out the minimal IAM permissions required to start an EC2 instance. Here is the minimal policy:
Please note the Sid should be unique.
Q2: My knowledge of Ruby is quite limited so possibly there is not convenient way for debugging. Personally I used binding.pry as a debugger. Please refer to the following article for more info.
You will need to allow RunInstances.
I had to allow access in IAM to the user of which we are using "Access Key Id" and "Secret Access Key"
The policy I came up with is:
I think it might depend on exactly what features/options you use of knife ec2 create. I tried the policy from the other answer (with iam:PassRole and some extra polices) but was getting hit specifically on ec2:DescribeAddress.
You can see why your role failed to do something by checking out my ButtTrail logs.