Welche IAM-Berechtigungen werden für ec2-create-image benötigt?

8

Ich habe die offiziellen Dokumente durchgesehen und konnte anscheinend keinen Hinweis darauf finden, welche Berechtigungen der IAM-Benutzer benötigt, um diesen Befehl verwenden zu können.

Ich möchte, dass der IAM-Benutzer nur Bilder für diese eine bestimmte Instanz erstellen kann. Daher habe ich meine Richtlinie wie folgt eingerichtet:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt999",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateImage"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:ec2:us-east-1:<my account id>:instance/<my instance id>"
      ]
    }
  ]
} 

Bei der Verwendung der EC2-CLI wurden jedoch immer wieder Fehler beim Zugriff verweigert. Ich habe das ResourceTeil auf "Nur" geändert "*"und jetzt funktioniert es. Jetzt kann mein IAM-Benutzer AMIs für alle EC2-Instanzen in meinem Konto erstellen (daher Neustarts verursachen).

Wie kann ich das sperren?

wwarren
quelle

Antworten:

7

Leider können Sie dies derzeit nicht auf Ressourcenebene sperren. Es gibt eine Reihe von EC2-Aktionen , die keine Berechtigungen auf Ressourcenebene unterstützen und ec2:CreateImageeine davon sind.

Bazze
quelle
1
Boo! Hoffen wir, dass sie das irgendwann zulassen - ich mag es nicht, übermäßig breite Berechtigungen zu erteilen. Danke für den Link
wwarren
1
@wwarren: Hoffen wir sicher, ich könnte nicht mehr zustimmen. Wenn es um Berechtigungen geht, sind Sterne selten ideal.
Bazze
7

Das Erstellen eines Images umfasst auch das Erstellen von Snapshots, die an diese Instanz angehängt sind. Die unten stehende IAM-Richtlinie sollte funktionieren.

{     
  "Effect": "Allow",
  "Action": [
    "ec2:Describe*",
    "ec2:CreateSnapshot",
    "ec2:CreateImage"
  ],
  "Resource": [
    "*"
  ]
}
nkryption
quelle
Hinweis: Der Inhalt des Abschnitts "Anweisung" wurde dort aufgegeben, es handelt sich nicht um die vollständige IAM-Richtlinie.
Fabien Haddadi
0

Verwenden Sie die IAM-Rolle wie angegeben. Setzen Sie das Flag "--no-reboot", während Sie "create-image" verwenden. Dadurch wird verhindert, dass Ihr Server beim Erstellen von AMIs neu gestartet wird, z. B.:

 ## Nehmen Sie das eigentliche Ami-Backup und speichern Sie die Ami-ID in "AMI".
 AMI = $ (aws ec2 create-image --Instanz-ID $ {Instanz-ID} - Name $ {Zufallsname} .AutoScript. $ {DATE} - Beschreibung 'Dies wird von amibackup.sh erstellt' - kein Neustart | $ {GREP} -i ami)
Baibhav Vishal
quelle