我正试图将我的公司项目从CDK V1升级到CDK V2。
我在部署到CloudFormation时遇到了问题,因为我的公司对IAM角色和命名约定有严格的规定。
CDK V1的一切都很好,考虑到一个角色就足以构建和部署一切到CloudFormation。
有了CDK V2,现在有必要通过引导程序创建不同的IAM角色(由于这些限制,我是手工完成的,但这里没有问题(,并将它们与StackSynthesizer一起使用。
问题是:在不违反我公司规则的情况下,这些角色不能以任何方式扮演正确的iam:PassRole。当我的角色";部署";试图允许我的角色";cfn exec;把所有东西都放在CloudFormation上,我得到了一个错误
那么,对于CDK V2,有没有任何方法可以绕过iam:PassRole,同时在每个";cdk部署";步骤?就像CDK V1一样。
请注意,在每个StackSynthesizer属性中放置一个角色不会绕过iam:PassRole默认行为。
有几个合成器选项不使用通常的现代引导角色。
LegacyStackSynthesizer
此合成器将为每个引用的资产生成CloudFormation参数,并使用CLI的当前凭据来部署堆栈。
CliCredentialsStackSynthesizer
(首选(
一个合成器,它使用传统的资产位置,但不使用传统的部署角色。
所有堆栈操作都将使用CLI的当前凭据执行,而不是承担引导部署角色。
选项2应该适用于您的用例。