【问题标题】:execute serverless deploy with aws role使用 aws 角色执行无服务器部署
【发布时间】: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


【解决方案1】:

好的,我找到了一个解决方案来解决这个问题。显然,您需要将 AWS_SDK_LOAD_CONFIG 设置为真实值,这样会话将从共享配置 (~/.aws/config) 和共享凭证 (~/.aws/credentials) 文件中的配置值创建。

export AWS_SDK_LOAD_CONFIG=1

然后用

执行
serverless deploy --aws-profile myrole

【讨论】:

  • 是的,是的,是的!我正在与政策和角色作斗争,问题出在环境变量中。斯特凡,你让我开心。谢谢!
  • 你能让 EKS 在 Fargate 配置文件中运行一个 pod 吗?
  • 谢谢你节省了我 2 小时的时间,伙计 ;)
猜你喜欢
  • 2022-07-21
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2020-08-07
  • 2018-02-13
  • 2019-08-04
相关资源
最近更新 更多