2015-12-12 5 views
19

Ich versuche Serverless AWS Lambdas zu erstellen und beim Erstellen eines Projekts mit dem Befehl serverless project create bekomme ich den folgenden Fehler.Benutzer ist nicht berechtigt, durchzuführen: cloudformation: CreateStack

AccessDenied: User: arn:aws:iam::XXXXXXXXX:user/XXXXXXXXX is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:us-east-1:XXXXXXXXX:stack/XXXXXXXXX-development-r/* 

Ich habe einen Benutzer erstellt und gewährt dem Benutzer die folgenden Berechtigungen.

  1. AWSLambdaFullAccess
  2. AmazonS3FullAccess
  3. CloudFrontFullAccess
  4. AWSCloudFormationReadOnlyAccess (Es gab keine AWSCloudFormationFullAccess zu gewähren)

Wie kann ich vorgehen? Welche weiteren Berechtigungen muss ich gewähren?

Antwort

30

Der nächste, den Sie erwähnt haben, ist AWSCloudFormationReadOnlyAccess, aber natürlich ist das für readonly und Sie brauchen cloudformation:CreateStack. Fügen Sie Folgendes als Benutzerrichtlinie hinzu.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1449904348000", 
      "Effect": "Allow", 
      "Action": [ 
       "cloudformation:CreateStack" 
      ], 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

Es ist durchaus möglich, Sie werden zum Beispiel mehr permissions- benötigen, eine EC2-Instanz zu starten, (wieder) konfigurieren, Sicherheitsgruppen usw.

+0

Wie kann ich 'cloudformation: CreateStack' gewähren? Ich verwende die AWS-Benutzeroberfläche nicht CLI. –

+5

Sie fügen den Text, den ich eingegeben habe, als benutzerdefinierte Benutzerrichtlinie ein. – tedder42

+1

Sie können Aws Policy Generator verwenden, um diese konkrete Richtlinie oder andere – Centurion

10

Was @ tedder42 sagte, aber ich hatte auch Fügen Sie meiner Gruppenrichtlinie Folgendes hinzu, bevor ich sie von Visual Studio aus auf Lambda bereitstellen konnte.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1449904348000", 
      "Effect": "Allow", 
      "Action": [ 
       "cloudformation:CreateStack", 
       "cloudformation:CreateChangeSet", 
       "cloudformation:ListStacks", 
       "cloudformation:UpdateStack", 
       "cloudformation:DescribeChangeSet", 
       "cloudformation:ExecuteChangeSet" 
      ], 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 
+1

Sie benötigen 'cloudformation: DescribeStacks 'auch, wenn Sie' servlerless info' planen. – pdeschen

+0

Diese Antwort sollte upvoted werden und +1 zu @pdeschen sagen, dass Sie auch 'cloudformation: DescribeStacks' hinzufügen müssen, wenn Sie versuchen, mit Serverless zu implementieren. Ich musste auch 'cloudformation: DescribeStackResource',' cloudformation: ValidateTemplate' hinzufügen – theartofbeing

Verwandte Themen