无效的政策文件。请检查策略语法并确保 Principals 有效

ian*_*ian 5 amazon-web-services amazon-iam aws-api-gateway

尝试为 API 网关创建资源策略文档。

我有以下几点:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:<acct id>:g2wpcs1pk8/*"
        },
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:<acct_id>:g2wpcs1pk8/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "192.0.2.0/24",
                        "198.51.100.0/24"
                    ]
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到标题错误:

Invalid policy document. Please check the policy syntax and ensure that Principals are valid.

在 API 网关 UI 中。

我试过包括ForAnyValue:IpAddress在条件中。

Hie*_*ron 0

认为问题在于您正在指定信任关系以及您的权限。因此,如果您删除委托人,该策略实际上是有效的。

这些权限是角色的吗?如果是这样,您应该在创建角色时删除委托人并选择您的信任关系。同样,您可以将策略附加到用户。