我如何实施 AWS WAF 规则来限制 api 网关对其他账户用户的访问?

How can I implement a AWS WAF rule to restrict access of api gateway to the users of other accounts?

我需要编写一个 WAF 规则,以阻止其他 AWS 账户的用户访问 API 网关。

现在,我正在探索 WAF 的实现,但我已经成功创建了 CfnWebCl,其中的规则语句为 ipSetReferenceStatement,这样我就创建了一个包含允许的 ip 的 IP 集,但这不是我想要的,我想要其他aws账户的用户 这是示例代码。

this.commserviceAllowedIpSet = new CfnIPSet(this, 'commservice-allowedIps', {
  name: 'allowed ips',
  ipAddressVersion: 'IPV4',
  addresses: [],
  scope: 'REGIONAL',
});

this.commserviceWebAcl = new CfnWebACL(this, 'commservice-webacl', {
  defaultAction: {
    block: {},
  },
  visibilityConfig: {
    cloudWatchMetricsEnabled: true,
    metricName: 'commservice-webacl',
    sampledRequestsEnabled: true,
  },
  scope: 'REGIONAL',
  rules: [
    {
      statement: {
        ipSetReferenceStatement: {
          arn: this.commserviceAllowedIpSet.attrArn,
        },
      },
      name: 'abc',
      priority: 0,
      visibilityConfig: {
        cloudWatchMetricsEnabled: true,
        metricName: 'allowed-requests',
        sampledRequestsEnabled: true,
      },
    },
  ],
});

除了 ipSetReferencesStatement 之外,还有其他我可以使用的规则语句吗?如果问题不清楚,我们深表歉意。

无法使用 WAF 执行此操作。正确的做法是使用 API Gateway resource policies。通过编写这样的策略,您可以将 API 的访问权限限制为您自己的帐户。