这让我完全疯了
我试图从一个angular应用程序调用api-gateway休息服务,我已限制使用IAM访问api-gateway。所以我需要使用IAM身份验证进行呼叫。我正在使用我已经获得的临时IAM凭据
我对该服务的调用失败,表示没有Access Control Allow Origin标头。当我试图从邮递员那里打电话给我的服务时,我没有在回复上看到所需的标题。在我的邮递员电话中,我得到了403状态,因为我的身份验证实际上失败了,但我仍然期待着标头。如果我在它工作的方法上删除IAM身份验证,我会返回我要查找的响应字符串和标头。
我在这里错过了什么?当然,即使我的身份验证失败,我仍然必须取回那个标头,这样我才能真正看到表明您的身份验证成功的消息。
任何帮助都将不胜感激
感谢
从AWS论坛上的这个链接来看,似乎有一个悬而未决的问题与我在这里的经历有关。。。不确定我正在寻找的是否是当前可能的
您是否允许您的Cognito角色访问API端点?
对于Cognito角色,您必须使用与此类似的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:invoke"
],
"Resource": [
"arn:aws:execute-api:<API_REGION>:<ACCOUNT_ID>:<API_ID>/*"
]
}
}
}
如果您对端点使用IAM身份验证,并且不允许Cognito角色访问您的API,API网关将生成403响应此响应未由您的API定义定义,因为请求在API处理之前被API网关拒绝这就是您的CORS配置不适用的原因。
请确保您的OPTIONS方法上没有启用AWS_IAM身份验证,否则浏览器将无法发出飞行前请求,您的请求将失败。您应该仍然在其他方法上启用AWS_IAM。