使用aws角色执行无服务器部署

时间:2019-08-28 14:10:26

标签: amazon-web-services amazon-iam serverless-framework serverless aws-serverless

我正在尝试使用无服务器框架部署一个简单的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

即使该角色在Error: Profile myrole does not exist/.aws/credentials中定义,我也得到~/.aws/config

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案,可以正常工作。显然,您需要将AWS_SDK_LOAD_CONFIG设置为一个真值,这样才能从共享配置(〜/ .aws / config)和共享凭证(〜/ .aws / credentials)文件中的配置值创建会话。

export AWS_SDK_LOAD_CONFIG=1

然后使用

执行
serverless deploy --aws-profile myrole