如何在cdk部署命令中使用AWS角色ARN

时间:2020-06-03 01:24:18

标签: amazon-web-services aws-cdk cdk

我正在尝试使用aws cdk部署我的云形成堆栈。 我想使用其他IAM角色来部署我的堆栈,因为该角色在aws帐户中具有更多权限。 这是我正在尝试的

cdk deploy -r arn:aws:iam::1234567890:role/AWSCloudFormationStackSetExecutionRole

但是我遇到了错误

No stack found matching '–r'. Use "list" to print manifest

有人可以帮我在这里做什么错吗?

3 个答案:

答案 0 :(得分:1)

错误表明您的 cdk cli 版本认为 -r 是一个堆栈,所以我认为这取决于您的 cdk 版本

我的 cdk 版本:

cdk --version
1.94.1 (build 60d8f91)

它与选项 -r

配合良好
cdk deploy -r arn:aws:iam::123456789012:role/gitlab-runner 
test-sqs: deploying...
test-sqs: creating CloudFormation changeset...

答案 1 :(得分:0)

在这里,您需要将 -r(或 --role-name)选项应用于 cdk 本身(而不是部署 选项):

cdk --role-arn arn:aws:iam::1234567890:role/MY_ROLE_NAME deploy

cdk 将生成一个 Cloud Formation 模板并使用您指定的角色部署它。

答案 2 :(得分:-1)

cdk deploy中一样,没有-r这样的选项。 CDK认为这是CDK堆栈名称。

我相信您需要使用具有不同IAM权限的其他IAM角色。这与CDK本身无关。您需要首先承担角色并获得STS令牌。请研究承担STS的AWS CLI角色。

cdk deploy [STACKS..]

Deploys the stack(s) named STACKS into your AWS account

Options:

  --build-exclude, -E    Do not rebuild asset with the given ID. Can be

                         specified multiple times.         [array] [default: []]



  --exclusively, -e      Only deploy requested stacks, don't include

                         dependencies                                  [boolean]



  --require-approval     What security-sensitive changes need manual approval

                         [string] [choices: "never", "any-change", "broadening"]



  --ci                   Force CI detection (deprecated)

                                                      [boolean] [default: false]



  --notification-arns    ARNs of SNS topics that CloudFormation will notify with

                         stack related events                            [array]



  --tags, -t             Tags to add to the stack (KEY=VALUE)            [array]



  --execute              Whether to execute ChangeSet (--no-execute will NOT

                         execute the ChangeSet)        [boolean] [default: true]



  --force, -f            Always deploy stack even if templates are identical

                                                      [boolean] [default: false]



  --parameters           Additional parameters passed to CloudFormation at

                         deploy time (STACK:KEY=VALUE)     [array] [default: {}]



  --outputs-file, -O     Path to file where stack outputs will be written as

                         JSON                                           [string]



  --previous-parameters  Use previous values for existing parameters (you must

                         specify all parameters on every deployment if this is

                         disabled)                     [boolean] [default: true]