我有一个使用 cognito 联合用户的无服务器应用程序。对于 api 网关,我使用 aws_iam 授权器,并为对 api 网关的每个请求提供 aws 凭证。
现在,当我的 lambda 被执行时,我假设将使用分配给我的 cognito 用户的角色,并且我将可以访问所需的资源。但似乎 lambda 执行角色仍然需要具有执行这些资源的权限。
我真的需要拥有两个具有相同权限集的角色吗?如果是这样,认知角色的意义何在?
我有一个使用 cognito 联合用户的无服务器应用程序。对于 api 网关,我使用 aws_iam 授权器,并为对 api 网关的每个请求提供 aws 凭证。
现在,当我的 lambda 被执行时,我假设将使用分配给我的 cognito 用户的角色,并且我将可以访问所需的资源。但似乎 lambda 执行角色仍然需要具有执行这些资源的权限。
我真的需要拥有两个具有相同权限集的角色吗?如果是这样,认知角色的意义何在?
您传递给 API Gateway 的 IAM 凭证在 API Gateway 级别进行评估(如果您向 IAM 角色添加权限以授予对特定端点的访问权限,它将在aws_iam_authorizer进行评估)。
但是,假定的 Cognito IAM 角色和 Lambda 执行权限之间存在脱节。
Lambda 使用附加到 Lambda 函数的角色的权限执行,而不是假定调用 API 的 Cognito Identity IAM 角色。
我有一个类似的问题。我有一个无服务器应用程序,其中有管理员用户和普通用户。
我有查询 Dynamo 的 lambda 函数。API Gateway 传入一个用户令牌,我可以从中检索凭据(id、secret、token)并使用调用 API 的用户(即管理员或普通用户)的凭据相应地调用 Dynamo。我的普通用户有一个政策角色,只允许他们使用“dynamodb:LeadingKeys”条件访问他们的数据。管理员用户可以查询表中的任何内容。
在这种情况下 - 如果我始终使用令牌中的这些凭证进行 dynamo 调用,Lambda执行角色是否仍需要 dynamo 权限?如果是这样,当进行发电机调用时,实际使用的是什么凭据?Lambda 执行角色或令牌中的凭证?
如果我从令牌中检索凭据,并使用这些凭据查询 dynamo,我不确定为什么我的 Lambda 执行角色需要 dynamo privs。