【发布时间】:2023-04-06 10:43:01
【问题描述】:
我正在尝试使用 iOS Swift 访问 Lambda 函数,这是我设置的 AWS 角色
- 角色名称:ALLOW_LAMBDA_EXECUTE
- 具有对 AWS Lambda 完全访问权限、AWS Lambda 执行、AmazonCognitoDeveloperAuthenticatedIdentities 的策略访问权限
- 信任关系:允许服务:lambda.amazonaws.com 并且条件具有“未经身份验证”的 Cognito 身份
- Cognito 身份池:在未经身份验证的角色下具有角色 ALLOW_LAMBDA_EXECUTE
- 未经身份验证的身份:已选中启用对未经身份验证的身份的访问
- 在 Lambda 中,对于函数 GetProcess(),具有 ExecutionRole:ALLOW_LAMBDA_EXECUTION
所有这些,当我使用我的 iPhone 应用程序(带模拟器)执行相同操作时,我收到此错误。
"x-amzn-errortype" = **AccessDeniedException**;
-[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response body:
**{"Message":"The role defined for the function cannot be assumed by Lambda."}**
我错过了什么吗?
【问题讨论】:
-
将您的信任关系设置为 Lambda。在 IAM 控制台中 -> 转到您的 IAM 角色 -> 单击信任关系选项卡 -> 并将信任更改为
lambda.amazonaws.com -
我在角色中确实有设置 --> 信任关系选项卡如下“主体”:{“服务”:“lambda.amazonaws.com”,“联合”:“认知身份。 amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-2:e565545e-44ca-4557 -baa5-56eb6e9f68ac" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated"
标签: amazon-web-services aws-lambda aws-ios aws-iam