当前位置: 首页 > 知识库问答 >
问题:

IAM用户上lambda ListFunctions的AWS AccessDeniedException

呼延曜灿
2023-03-14

注意:我通过IAM用户控制台帐户执行所有AWS设置,该帐户基本上拥有AWS/Amazon帐户所有者的所有特权。我将此IAM用户称为根帐户。

发行说明:

  • 从根帐户中,我创建了以下IAM-user,仅具有编程访问权限:lambda-test
  • 我在我的~/. aws/*文件中添加了IAM访问密钥(作为配置文件条目)。
  • 现在到lambda-test帐户,我接下来创建了一个内联/嵌入式策略,允许以下AWS-Lamdba操作:列表函数、GetFunction、更新函数代码、更新函数配置

正确验证的策略语句如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1111111111111",  # <--- Altered for this post.
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:ListFunctions",
                "lambda:UpdateFunctionCode",
                "lambda:UpdateFunctionConfiguration"
            ],
            "Resource": [
                "arn:aws:lambda:*"
            ]
        }
    ]
}

回到laptop CLI,我发出以下命令,生成AccessDeniedException:

user@linux$ aws lambda list-functions --profile lambda-test

例外情况如下:

An error occurred (AccessDeniedException) when calling the ListFunctions operation: User: arn:aws:iam::<AWS-Account-ID>:user/lambda-test is not authorized to perform: lambda:ListFunctions

我错过什么了吗?(当然有了。=:)提前谢谢!

共有2个答案

崔琦
2023-03-14

这不是OP的问题,但对于其他从Google遇到这一问题的人:
确保为您正在使用的IAM用户启用了控制台登录。这可以在IAM下设置-

黄沈浪
2023-03-14

有两种类型的访问策略可以与AWS lambda一起使用:

1) 基于身份的策略(IAM策略)您正在使用的是IAM策略。如果您阅读了AWS lambda访问控制概述文档,当您使用基于IAM的访问时,AWS目前仅支持*作为资源。因为“lambda:ListFunctions”不能用完整ARN调用(请参阅本文档,其中可以用完整ARN调用,也可以用*)调用),所以需要给出*。

在当前实现中,Lambda不支持为某些API操作使用资源ARN(也称为资源级别权限)标识特定资源,因此必须指定通配符(*)。

2)基于资源的策略(Lambda函数策略)

每个Lambda函数都可以具有与之关联的基于资源的权限策略。对于Lambda,Lambda函数是主要资源,这些策略称为Lambda函数策略。可以使用Lambda函数策略授予跨帐户权限,以替代对IAM角色使用基于标识的策略。例如,您可以通过简单地向Lambda函数策略添加权限来授予Amazon S3调用Lambda函数的权限,而不是创建IAM角色。

这里有更多的例子

 类似资料:
  • 我有一个AWS帐户,其中包含我所有的东西,并想保护它。 我想创建一个包含一些拒绝操作的IAM策略,并将该策略应用于所有现有和未来用户。我该怎么做? 我试图使用IAM组,但是有人可以创建一个没有特定组的用户。此外,我尝试了组织SCP,但它似乎与主帐户不工作。

  • 我试图根据在OAuth2凭证中设置的角色来限制Spring boot服务上的特定endpoint。 这是endpoint 然后使用SecurityConfiguration bean对其进行保护 我调试了委托人,可以在属性列表中看到正确的 IAM 列表 然而,当我点击endpoint时,我得到一个HTTP 403未授权。这意味着用户已经成功地通过了身份验证,但是Spring不能识别或理解属性或者如

  • Amazon标识管理iam=Amazon标识管理客户端Builder.standard()。US_EAST_1)。 有人能告诉我怎么做吗? 我试图在下面的程序中列出一个用户的标签,但我得到了下面的错误:我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档。 公共类ListUserTags{ }

  • 问题内容: 我有骆驼休息API。我试图使用apache骆驼框架创建IAM用户。代码像这样-> 我收到此错误。正确的做法是什么?它在骆驼文档中显示使用这样的URL 。我们怎样看待呢? 问题答案: 该示例中报告的iamClient(#amazonIAMClient)是IAMClient的一个实例,您需要使用绑定名称amazonIAMClient将其放入Camel注册表中。 我认为您需要为此特定组件将区

  • 我正在试用 AWS API Gateway,从 Swagger 导入/导出 API 定义非常容易。 但是,我已将我的API设置为需要AWS_IAM授权,因此它不是公开的。但是我找不到如何使其与Swagger UI一起工作。Swagger UI似乎只接受API Key,而不是IAM用户的访问密钥和Sigv4签名的秘密。 有人知道有一种方法可以配置Swagger UI以接受Access Key/Sec

  • IAM

    IAM = Identity and Access Management IAM 是一个基于 Go 语言开发的身份识别与访问管理系统,用于对资源访问进行授权。最新稳定版本为:v1.6.2,建议基于稳定版安装测试。企业级的 Go 语言实战项目(可作为Go项目开发脚手架) 这里需要注意: 如果你是极客时间《Go 语言项目开发实战》专栏的读者,请使用 v1.1.0 版本(tag) 如果你是图书《从零构建