Welche Berechtigungen in IAM benötige ich, um EC2-Instanzen mit Kochmesser zu starten?

7

F1: Ich versuche, einen Benutzer in der IAM AWS-Konsole zu erstellen, der nur eingeschränkte Berechtigungen zum Starten neuer Instanzen mit der Messer-ec2-Methode besitzt. Derzeit funktioniert nur der Vollzugriff mit der Richtlinie "Amazon EC2 Vollzugriff". Das Erstellen von Benutzern und das Gewähren von Start / Stopp-Instanzen und das Beschreiben von Bildern funktioniert nicht.

F2: Wie kann ich das debuggen?

ERROR: Fog::Compute::AWS::Error: UnauthorizedOperation => You are not authorized to perform this operation.

und finde heraus, welche Erlaubnis ich genau brauche. (-V -V -V hat nicht funktioniert)

Andrei Mikhaltsov
quelle

Antworten:

7

Frage 1: Ich musste Messer-Ec2-Juwel debuggen, um die minimalen IAM-Berechtigungen herauszufinden, die zum Starten einer EC2-Instanz erforderlich sind. Hier ist die minimale Richtlinie:

{
  "Statement": [
    {
      "Sid": "Stmt123",
      "Action": [
        "ec2:RunInstances",
        "ec2:DescribeInstances",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeImages",
        "ec2:CreateTags",
        "ec2:DescribeTags"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ]
}

Bitte beachten Sie, dass der Sid einzigartig sein sollte.

F2: Meine Kenntnisse über Ruby sind sehr begrenzt, daher gibt es möglicherweise keine bequeme Möglichkeit zum Debuggen. Persönlich habe ich binding.pry als Debugger verwendet. Weitere Informationen finden Sie im folgenden Artikel .

smith3v
quelle
3

Sie müssen RunInstances zulassen .

Panagiotis PJ Papadomitsos
quelle
0

Ich musste dem Benutzer, für den wir "Access Key ID" und "Secret Access Key" verwenden, den Zugriff in IAM gewähren.

vikas027
quelle
0

Die Politik, die ich mir ausgedacht habe, ist:

    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateTags",
                "ec2:DescribeInstances",
                "ec2:DescribeImages",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeAddresses"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": <You should list the roles you want to be able to create here
 or use '*' but that is dangerous because if it allows for privilege escalation>
        }
    ]
}

Ich denke, es könnte genau davon abhängen, welche Funktionen / Optionen Sie mit dem Messer ec2 erstellen. Ich habe die Richtlinie aus der anderen Antwort ausprobiert (mit iam: PassRole und einigen zusätzlichen Richtlinien), wurde jedoch speziell auf ec2: DescribeAddress getroffen.

Sie können sehen, warum Ihre Rolle etwas nicht getan hat, indem Sie meine ButtTrail-Protokolle überprüfen.

Patrick Riordan
quelle