我正在设置私有(private) AWS API 网关,并配置了资源策略以允许所有流量,如下所示。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:*",
"Resource": "arn:aws:execute-api:*:*:*"
}
]
}
我在 Principal
、Action
和 Resource
中应用了通配符,但是,我收到 403 Forbidden 错误。此外,即使我为私有(private) API 配置了资源策略,CloudWatch 仍会记录错误 Api with endpointType PRIVATE has no resourcespolicy Defined
。
我关注了this guide to setup resource policy ,但我做错了什么吗?或者,错误消息是否还有其他含义?
最佳答案
事实上,您的 cloudwatch 日志记录显示“端点类型为 PRIVATE 的 Api 未定义资源策略”,这表明它没有看到您已保存资源策略或尚未 deployed the API资源政策发生变化后?
另请注意,策略中的资源是指允许主体访问的资源(换句话说,即应用策略的 API)。对于我的测试,我这样做了,并且在部署 API 后效果很好:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:ACCID:APIID/*/*/*" } ] }
注意:您需要相应地设置 ACCID 和 APIID。
关于amazon-web-services - 端点类型为 PRIVATE 的 Api 未定义资源策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084964/