2016-04-12 28 views
1

Ich muss eine Richtlinie erstellen, die es dem Benutzer ermöglicht, Spot-Anfragen zu erstellen, aber nur mit bestimmten Subnetz- und Sicherheitsgruppen. Das ist, was ich tat:AWS EC2: IAM-Richtlinie für ec2: RequestSpotInstances

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": "ec2:RequestSpotInstances", 
      "Resource": [ 
       "arn:aws:ec2:us-east-1:123456789012:image/ami-*", 
       "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-af016c92", 
       "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-12a34d3c", 
       "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-f0e844cd", 
       "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-026ae728", 
       "arn:aws:ec2:us-east-1:123456789012:key-pair/*", 
       "arn:aws:ec2:us-east-1:123456789012:security-group/sg-b5dd94cd", 
       "arn:aws:ec2:us-east-1:123456789012:security-group/sg-3bda8c42" 
      ] 
     } 
    ] 
} 

Aber meine Stelle Anfrage Schöpfung immer noch nicht:

botocore.exceptions.ClientError: An error occurred (UnauthorizedOperation) when calling the RequestSpotInstances operation: You are not authorized to perform this operation. 

Was ist die minimale Teilmenge der Berechtigungen für RequestSpotInstances Aktion?

Gibt es eine Möglichkeit, dies zu debuggen?

Antwort

0

Gemäß EC2-Dokumentation (here) ist ec2: RequestSpotInstances eine Aktion, die in die Kategorie "Nicht unterstützte Ressourcenberechtigungen" fällt. Leider werden Sie die Ressource-Tag auf alle Ressourcen setzen müssen, wie folgt aus:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": "ec2:RequestSpotInstances", 
      "Resource": [ "*" ] 
     } 
    ] 
} 

Soweit das Debuggen geht, nicht über die IAM-Politik Simulator vergessen, die von der AWS-Konsole zugegriffen werden kann => IAM => Benutzerseite.

1

Ich weiß, das ist ein altes Problem, aber ich habe gerade das gleiche Problem in meiner Umgebung. Die Lösung für mich war eine IAM Erlaubnis für "PassRole"

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "Stmt1479335761363", 
     "Action": [ 
     "ec2:DescribeInstances", 
     "ec2:RequestSpotInstances", 
     "ec2:RunInstances", 
     "iam:PassRole" 
     ], 
     "Effect": "Allow", 
     "Resource": "*" 
    } 
} 
hinzuzufügen