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"]
}
}
}
]
}
我不确定这里的确切问题是什么,但如果有人可以在这里给我一些建议,那将非常有帮助?
我有一个 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"]
}
}
}
]
}