amazon-web-services - 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,所以我希望它应该足够了。
出于安全考虑,我在错误消息中传递了假数字。
解决方案
您可以仅使用权限将内联策略添加到您的角色:ecr:GetAuthorizationToken
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ecr:GetAuthorizationToken",
"Resource": "*"
}
]
}
请不要更改:"Resource": "*"
。这就是它应该的样子ecr:GetAuthorizationToken
。
如果您传递此错误并获得其他访问拒绝,请将缺少的权限添加到策略中。
推荐阅读
- javascript - 如何从 Google 表格导出和验证数据?
- http - 为什么 HttpRequest 在 Dart 中返回 ProgressEvent 错误
- arrays - 从数组中获取指定对象并将其作为变量
- gitlab - 我可以对多个 gitlab 实例使用相同的 gitlab-runner 吗?
- sql - 如何在 SQL Server 中使用 CASE WHEN 函数
- css - 仅使用 css 如何选择第二级 li
- selenium - 使用自定义属性进行 Xunit 测试时,Selenium 浏览器启动两次
- swift - Swift 5 Conversion UnsafeBufferPointer 的这些内存功能是否相同
- r - 使用融化功能
- python - 在 Pandas 中为一组列设置新值