我正在尝试使用存储在我的aws-vault钥匙链中的凭据部署无服务器。
但是当我运行aws-vault exec myprofile -- sls deploy
时,我收到以下错误:
An error occurred: MyLambdaFunction - AccessDenied. User doesn't have permission to call iam:GetRole.
用户有AdministratorAccess,我也给了他IAMFullAccess(不应该需要)
当我使用~.aws/credentials
与sls deploy
存储的相同凭据进行部署时它的工作原理。
根据文档aws-vault
生成的会话令牌有一些限制:
- 您不能调用任何IAM API操作,除非请求中包含MFA认证信息。
- 您不能调用任何AWS STS API,除了假设角色或GetCallerIdentity。
一种解决方法是使用——no-session
所以aws-vault exec myprofile --no-session -- sls deploy
工作没有任何错误。