web-dev-qa-db-fra.com

Erreur de mise à jour AWS Stack: Requiert des capacités: [CAPABILITY_IAM]

Lors de la création d'une pile avec CloudFormation, j'obtiens cette erreur:

Stack update error: Requires capabilities : [CAPABILITY_IAM]

Je ne trouve pas de modèle pour ajouter CAPABILITIES_IAM à la configuration CloudFormation.

Quelles sont les options pour résoudre les erreurs CAPABILITIES_IAM

35
Eric Nord

Il s'avère que vous devez cocher une case sur le dernier écran de la création de la pile.

Dans CodePipeline CloudFormation, vous pouvez l'ajouter comme ceci pour permettre l'exécution du change_set créé dans l'action de déploiement:

Configuration:
        StackName: !Ref GitHubRepository
        ActionMode: CHANGE_SET_REPLACE
        Capabilities: CAPABILITY_NAMED_IAM
        RoleArn: arn:aws:iam::818272543125:role/events-list-codepiplinerole
        ChangeSetName: !Join ["",[!Ref GitHubRepository, "-changeset"]]
        TemplatePath: MyAppBuild::sam_post.yaml

Dans les aws cli append

--capabilities CAPABILITY_IAM

ou

--capabilities CAPABILITY_NAMED_IAM

Pour votre commande comme ceci:

aws cloudformation create-stack --stack-name message-store --template-body file://bucket_with_keys.yaml --parameters file://cfg_bucket_with_keys.json --capabilities CAPABILITY_NAMED_IAM

Ceci ne s'applique pas à cloudformation --validate-template car il ne crée pas les ressources.

66
Eric Nord

Si vous utilisez l'AWS CLI, vous pouvez ajouter un paramètre supplémentaire à l'interface aws cloudformation create-stack commande qui indique explicitement que vous souhaitez que ces fonctionnalités soient fournies.

(C’est l’équivalent CLI de cocher la case dans l’autre réponse ici).

Le paramètre est --capabilities CAPABILITY_IAM, votre commande ressemblerait à ceci:

aws cloudformation create-stack --stack-name $STACK_NAME --capabilities CAPABILITY_IAM

J'espère que ça t'as aidé

9
gsaslis