我正在设置私有AWS API网关,并且我将资源策略配置为允许所有流量,如下所示。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:*",
"Resource": "arn:aws:execute-api:*:*:*"
}
]
}
我在Principal
,Action
和Resource
中应用了通配符,但是,我收到403 Forbidden错误。另外,即使我为私有API配置了资源策略,CloudWatch也会记录错误Api with endpointType PRIVATE has no resource policy defined
。
我关注了this guide to setup resource policy,但是我做错了吗?或者,错误消息是否还意味着其他内容?
答案 0 :(得分:1)
您的Cloudwatch日志显示“ Api的终结点类型为PRIVATE且未定义资源策略”这一事实表明,在更改资源策略后,您并未看到您已保存资源策略或没有deployed the API ?
此外,请注意,策略中的资源是指允许Principal访问的资源(换句话说,将策略应用到的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。