【发布时间】:2020-01-01 19:10:33
【问题描述】:
我正在尝试使用无服务器框架部署一个简单的 lambda 函数。我的 IAM 用户没有运行 cloudformation 的必要权限:
User: arn:aws:iam::xxx:user/xxx is not authorized to perform: cloudformation:DescribeStacks on resource: arn:aws:cloudformation:us-east-1:xxx:stack/xx
这或多或少是有意的,因为我们的设置是使用 IAM 角色来执行某些任务。我已经在我的 ~/.aws/config 中配置了这些角色 文件,对于 aws cli 操作,我可以例如打电话
aws s3 ls --profile myrole
通过这种方式,我将来自角色“myrole”的所有策略附加到我的 IAM 用户以执行 aws-cli 命令。
有没有办法为无服务器做类似的事情,即将一个角色(不是不同的用户)附加到
serverless depoly
声明?
如果我通过导出更改角色
AWS_PROFILE=myrole
或致电
serverless deploy --aws-profile myrole
即使角色在/.aws/credentials 和~/.aws/config 中定义,我也会得到Error: Profile myrole does not exist
【问题讨论】:
-
您需要一个 IAM 用户或角色,该用户或角色拥有部署所需的所有权限。
-
感谢@WaltDe,但我如何将该角色附加到我的部署命令中?
-
在运行无服务器之前,您需要承担您的部署角色,您可以通过环境变量 AWS_PROFILE 来执行此操作,详情docs.aws.amazon.com/cli/latest/userguide/…
-
没有成功,我得到
Error: Profile myrole does not exist。我刚刚发现这里描述的类似问题:[github.com/serverless/serverless/issues/5474]
标签: amazon-web-services amazon-iam serverless-framework serverless aws-serverless