AWSRESTAPI在使用API资源策略与前端(HTML+Javascript)时显示403错误:访问被拒绝。
创始人
2024-09-26 21:02:26
0
  1. 确认使用的IAM用户具有访问API的权限。可以通过将用户添加到API所在的访问策略组来实现。

  2. 检查API资源策略是否正确配置。API资源策略是一种用于授权访问API的AWS Identity and Access Management(IAM)策略。确保相关的API操作与HTTP方法允许使用。

例如,下面是一个示例API资源策略,它授予IAM用户对特定API资源执行GET操作的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/username"
         },
         "Action": "execute-api:Invoke",
         "Resource": "arn:aws:execute-api:us-east-1:123456789012:abcdefghij/test/GET/secureResource"
      }
   ]
}
  1. 检查API Gateway的CORS设置是否正确。CORS是一种授权机制,允许客户端从不同的域名或协议访问资源。确保API Gateway的CORS设置正确,以便允许从客户端域名或协议访问资源。

例如,下面是一个示例CORS设置,它允许http://example.com域名访问资源:

{
    "corsEnabled": true,
    "corsOrigins": [
        "http://example.com"
    ],
    "corsMethods": [
        "OPTIONS",
        "GET"
    ]
}
  1. 确保使用的签名版本正确。AWS REST API支持v2和v4两个版本的签名。如果客户端使用的版本与API Gateway不同,则可能会导致访问被拒绝。

例如,要使用v4签名,客户端可以使用以下代码示例对请求进行签名: