AccessDenied当通过aws-vault部署无服务器时



我正在尝试使用存储在我的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/credentialssls deploy存储的相同凭据进行部署时它的工作原理。

根据文档aws-vault生成的会话令牌有一些限制:

  • 您不能调用任何IAM API操作,除非请求中包含MFA认证信息。
  • 您不能调用任何AWS STS API,除了假设角色或GetCallerIdentity。

一种解决方法是使用——no-session

所以aws-vault exec myprofile --no-session -- sls deploy工作没有任何错误。