2015-12-12 14 views
19

Sto provando Serverless per creare AWS Lambdas e durante la creazione di un progetto utilizzando il comando serverless project create Ho ricevuto il seguente errore.L'utente non è autorizzato a eseguire: 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/* 

Ho creato un utente e ho concesso le seguenti autorizzazioni all'utente.

  1. AWSLambdaFullAccess
  2. AmazonS3FullAccess
  3. CloudFrontFullAccess
  4. AWSCloudFormationReadOnlyAccess (non c'era AWSCloudFormationFullAccess a concedere)

Come posso procedere? Quali altre autorizzazioni devo concedere?

risposta

30

Il più vicino che hai menzionato è AWSCloudFormationReadOnlyAccess, ma ovviamente quello è per readonly e hai bisogno di cloudformation:CreateStack. Aggiungi quanto segue come politica utente .

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

è del tutto possibile avrete bisogno di più permissions- per esempio, di lanciare un'istanza EC2, di (ri) configurare gruppi di protezione, ecc

+0

Come posso concedere 'cloudformation: CreateStack'? Sto usando l'interfaccia utente di AWS e non la CLI. –

+5

Si incolla il testo che ho fornito come criterio utente personalizzato. – tedder42

+1

È possibile utilizzare Aws Policy Generator per generare questa politica concreta o qualsiasi altro – Centurion

10

Cosa tedder42 @ detto, ma ho anche dovuto aggiungi quanto segue alla mia politica di gruppo prima di poter essere distribuito a lambda all'interno di Visual Studio.

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

Avresti anche bisogno di 'cloudformation: DescribeStacks' se pensi di fare' info senza servitori'. – pdeschen

+0

Questa risposta dovrebbe essere upvoted e +1 a @pdeschen dicendo che è necessario aggiungere anche 'cloudformation: DescribeStacks' se si sta tentando di distribuire con serverless. Ho anche dovuto aggiungere 'cloudformation: DescribeStackResource',' cloudformation: ValidateTemplate' – theartofbeing

Problemi correlati