【问题标题】:lambda execution role vs aws_iamlambda 执行角色与 aws_iam
【发布时间】:2018-10-27 17:18:21
【问题描述】:

我有一个使用 cognito 联合用户的无服务器应用程序。 对于 api 网关,我使用 aws_iam 授权器,并为对 a​​pi 网关的每个请求提供 aws 凭据。

现在,当我的 lambda 被执行时,我假设分配给我的 cognito 用户的角色将被使用,并且我将有权访问所需的资源。 但似乎 lambda 执行角色仍然需要具有执行这些资源的权限。

我真的需要拥有两个具有相同权限集的角色吗? 如果是这样,认知角色的意义何在?

【问题讨论】:

    标签: lambda serverless cognito aws-iam


    【解决方案1】:

    您传递给 API Gateway 的 IAM 凭证在 API Gateway 级别进行评估(如果您向 IAM 角色添加权限以授予对特定端点的访问权限,它将在 aws_iam_authorizer 进行评估)。

    但是,假定的 Cognito IAM 角色和 Lambda 执行权限之间存在脱节。

    使用附加到 Lambda 函数的角色的权限执行 Lambda,而不是假定调用 API 的 Cognito Identity IAM 角色。

    【讨论】:

      【解决方案2】:

      我有一个类似的问题。我有一个无服务器应用程序,其中有管理员用户和普通用户。

      我有查询 Dynamo 的 lambda 函数。 API Gateway 传入一个用户令牌,我可以从中检索凭据(id、secret、token)并使用调用 API 的用户(即管理员或普通用户)的凭据相应地调用 Dynamo。我的普通用户有一个政策角色,只允许他们使用“dynamodb:LeadingKeys”条件访问他们的数据。管理员用户可以查询表中的任何内容。

      在这种情况下 - 如果我始终使用令牌中的这些凭据进行 dynamo 调用,Lambda 执行角色是否仍需要 dynamo 权限?如果是这样,当进行发电机调用时,实际使用的是什么凭据? Lambda 执行角色或令牌中的凭证?

      如果我从令牌中检索凭据,并使用这些凭据查询 dynamo,我不确定为什么我的 Lambda 执行角色需要 dynamo privs。

      【讨论】:

      • 也许我可以更简洁地问这个问题。与此同时,我发现了这篇有用的文章:aws.amazon.com/premiumsupport/knowledge-center/…。我没有使用用户池授权方。我正在使用自定义令牌授权器。但是,如果我使用令牌中包含的凭据来执行诸如从 dynamo 读取、在 s3 中查找内容、lambda 执行角色是否需要 s3 和 dynamo 权限之类的操作,或者如果我不需要,我可以返回基本的 lambda 执行角色吗? t“使用”它来访问这些服务?
      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 2022-01-21
      • 2020-03-07
      • 2021-05-18
      • 2021-11-26
      相关资源
      最近更新 更多