设置 AWS CloudFormation 模板验证的能力

43

我正在尝试验证Cloudformation模板。我输入的命令是:

▶ aws cloudformation validate-template --template-body file://template.json

然而,我收到的回应是:

"CapabilitiesReason": "The following resource(s) require capabilities: 
  [AWS::IAM::Role]", 

很不幸,我找不到设置权限的方法。

你如何设置权限?


2
我有同样的问题。使用“create-stack”cli命令和“--capabilities=CAPABILITY_IAM”可以创建堆栈,但“validate-stack”似乎也需要这个功能,但没有cli选项来添加它。 - Vorsprung
5
这不是错误,而是通知您在执行 create-stackupdate-stack 时必须指定 CAPABILITY_IAM 能力。 - jzonthemtn
1个回答

51
CapabilitiesCapabilitiesReasonvalidate-template的正常输出,不是错误。它们列出了需要指定能力(通过--capabilities)的资源,以便在将来运行create-stackupdate-stack时使用。
您可以通过检查返回代码是否为0来确认验证成功且无错误,表示命令已成功完成。 validate-template输出的文档如下:

Capabilities -> (列表)

模板中包含的功能。如果您的模板包含IAM资源,则在使用create-stackupdate-stack操作时,必须为此参数指定CAPABILITY_IAMCAPABILITY_NAMED_IAM值;否则,这些操作将返回一个InsufficientCapabilities错误。 更多信息,请参见确认AWS CloudFormation模板中的IAM资源

CapabilitiesReason -> (字符串)

生成Capabilities响应元素中的值的资源列表。


41
设计很糟糕。输出结果明显表明某些必要的东西丢失了。 - Michael M
11
使用 AWS 一段时间后,我必须说 AWS 的很多 UI 和 cli 设计都比较糟糕,只是需要习惯它的怪癖 :) - Millenjo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接