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

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

Ich schaute durch dieoffizielle Dokumenteund konnte scheinbar 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 für diese eine bestimmte Instanz Bilder erstellen kann. Daher habe ich meine Richtlinie folgendermaßen 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>"
      ]
    }
  ]
} 

Aber ich bekam immer wieder Zugriffsverweigerungsfehler, wenn ich die EC2-CLI verwendete. Ich habe den ResourceTeil geändert "*"und jetzt funktioniert es, aber jetzt kann mein IAM-Benutzer AMIs für alle EC2-Instanzen in meinem Konto erstellen (und dadurch Neustarts verursachen).

Wie kann ich das sperren?

Antwort1

Leider kann man das derzeit nicht auf Ressourcenebene festlegen. Es gibt eineReihe von EC2-Aktionendas keine Berechtigungen auf Ressourcenebene unterstützt und ec2:CreateImageeines davon ist.

Antwort2

Beim Erstellen eines Images werden auch Snapshots erstellt, die an diese Instanz angehängt sind. Die folgende IAM-Richtlinie sollte funktionieren.

{     
  "Effect": "Allow",
  "Action": [
    "ec2:Describe*",
    "ec2:CreateSnapshot",
    "ec2:CreateImage"
  ],
  "Resource": [
    "*"
  ]
}

Antwort3

Sie können CreateImage nicht auf Ressourcenebene sperren/begrenzen und die Antwort von @nkryption war richtig. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html

Antwort4

CreateImage unterstützt jetzt Richtlinien auf Ressourcenebene. Die folgende Richtlinie ermöglicht das Erstellen eines Images, jedoch nur für die angegebene Instanz-ID:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCreateImage",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Sid": "RestrictCreateImageToInstance",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*:999999999999:instance/i-999999999",

        }
    ]
}

Aktualisieren Sie die Kontonummer und die Instanz-ID entsprechend Ihren Anforderungen. Sie können dies auch anhand der Instanz-Tags einschränken:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCreateImage",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Sid": "RestrictCreateImageToInstances",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*:999999999999:instance/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Name": "Test"
                }
            }
        }
    ]
}
            

verwandte Informationen