AWS REST API 给出 403:使用 API 前端资源策略时出现访问被拒绝错误 (HTML+Javascript)

AWS REST API Gives 403 : Access denied Error when using API Resource policy with Front End (HTML+Javascript)

我不确定这里的确切问题是什么,但如果有人可以在这里给我一些建议,那将非常有帮助?

我有一个 post 方法 AWS rest API 好的,我已经将它与 AWS API 资源策略集成,允许所有 ip 地址访问此 API除了一些特定的 ip 地址,下面是我正在使用的资源策略。

当我用 POSTMAN 或一些 Python 脚本 运行 在任何 IDE 上测试它时,整个设置工作得非常好,但是当我集成这个 POST API 我的前端是 HTML + JAVASCRIPT 它给了我 403 : Access Denied Error

下面是 API 对浏览器的响应:

content-length: 159
content-type: application/json
date: Sun, 13 Jun 2021 07:25:50 GMT
x-amz-apigw-id: A2jnxEQihcwFWaA=
x-amzn-errortype: AccessDeniedException
x-amzn-requestid: 8ca8eaa8-453e-44dd-a94a-ed5754aabf5f

使用的资源策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:ap-south-1:xxxxxxxxxxx:yyyyyyy/*/POST/",
            "Condition": {
            "NotIpAddress": {
              "aws:SourceIp": ["192.191.12.44/32"]
            }
          }
        }
    ]
}

下面的任何一位都是上面失败的原因,我能够识别它。我错过了包含在资源策略中的 OPTIONS 方法,下面是应该使用的更新策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": ["arn:aws:execute-api:ap-south-1:xxxxxxxxxxx:yyyyyyy/*/POST/","arn:aws:execute-api:ap-south-1:xxxxxxxxxxx:yyyyyyy/*/OPTIONS/"],
            "Condition": {
            "NotIpAddress": {
              "aws:SourceIp": ["192.191.12.44/32"]
            }
          }
        }
    ]
}