首页 > 解决方案 > AWS lambda 部署问题 - 权限不足

问题描述

当我尝试从 Visual Studio 部署 AWS lambda 时,出现此错误

Fetching ECR authorization token to use to login with the docker CLI
Error logging on with the docker CLI: User: arn:aws:sts::123456789012:assumed-role/@Infra/aws-toolkit-visualstudio-637706142753914780 is not authorized to perform: ecr:GetAuthorizationToken on resource: * because no identity-based policy allows the ecr:GetAuthorizationToken action

我使用的 IAM 角色具有以下权限:

AmazonS3FullAccess

AmazonAPIGateway 管理员

AmazonElasticContainerRegistryPublicFullAccess

AWSLambda_FullAccess

如果我通过添加 AdministratorAccess 扩展此列表,则部署成功,但我想将权限限制为仅需要的权限。

知道如何扩展权限来解决这个问题吗?我已经有了 AmazonElasticContainerRegistryPublicFullAccess,所以我希望它应该足够了。

出于安全考虑,我在错误消息中传递了假数字。

标签: amazon-web-servicesaws-lambda

解决方案


您可以仅使用权限将内联策略添加到您的角色:ecr:GetAuthorizationToken

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ecr:GetAuthorizationToken",
            "Resource": "*"
        }
    ]
}

不要更改"Resource": "*"。这就是它应该的样子ecr:GetAuthorizationToken

如果您传递此错误并获得其他访问拒绝,请将缺少的权限添加到策略中。


推荐阅读