2016-12-17 3 views
1

Ich habe n x EC2-Instanzen, die ich ec2-Aktionen auf Instanzen mit dem gleichen Schlüssel/Wert-Tag (IE platform = dev) begrenzen möchte.IAM-Richtlinie mit Bedingung ec2: ResourceTag funktioniert nicht

Ich suche diese bei tun eine IAM-Politik mit an die Gruppe gebunden ist ihre Standard IAM Benutzer in ist

Politik:.

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "ec2:*", 
     "Resource": "*", 
     "Condition": { 
      "StringEquals": { 
       "ec2:ResourceTag/tag:platform": "dev" 
      } 
     } 
    } 
]} 

ich dies gemäß den Online-AWS docs einrichten: Example Policies for Working With the AWS CLI or an AWS SDK

Ich überprüfe es im Policy Simulator und es funktioniert wie erwartet (übergeben Sie ein Dev und es ist erlaubt, sonst verweigert). Dann

auf einem der Server mit dem Tag key/Paar platform = dev, ich aws ec2 describe-instances laufen bekomme ich die Antwort:

An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation. 

aber wenn ich den Zustand entfernen es funktioniert. Ich verstehe nicht, was ich falsch mache. Jede Hilfe wäre dankbar erhalten!

Antwort

2

Das Problem ist, dass nicht jede API-Aktion & Ressource das ec2: ResourceTag/Tag in der Bedingung akzeptiert.

Ich denke, dass Sie wahrscheinlich übermäßig breite Berechtigungen gewähren (Aktion: ec2: *), also herauszufinden, welche Aktionen Ihre Instanzen tun müssen, und dann entscheiden, wie Sie sie einschränken können.

Die Liste der Aktionen, Ressourcen und Bedingungsschlüssel finden Sie unter Supported Resource-Level Permissions for Amazon EC2 API Actions.

+0

Danke Chris, ich habe das nur getestet. Ich habe die spezifischen Aktivitäten getestet und funktioniert ohne die Bedingung. Indem ich damit arbeitete, nahm ich an, dass ich die Faktoren reduzierte, die falsch sein könnten, aber gemäß der anderen Antwort kann ich mich nicht darauf verlassen, dass sie wahr sind (die Bedingung funktioniert möglicherweise nur mit spezifischeren Maßnahmen/Ressourcendefinitionen). . – the4thv

1

Ich habe dieses Problem schon einmal kennengelernt, es hatte etwas mit der Kombination von Platzhaltern und Bedingungen zu tun. Was es für uns gelöst hat, war deutlicher bei der Aktion (z. B. ["ec2:DescribeInstances"]) und auf der Ressource (arn:aws:ec2:region:accountid:instance/*).

+0

Danke - zwischen Ihren beiden Antworten habe ich es bekommen. – the4thv

Verwandte Themen