Electron-Updater and AWS S3 bucket policy - Error: HttpError: 403 Forbidden

Electron-Updater and AWS S3 bucket policy - Error: HttpError: 403 Forbidden

我正在创建一个 Electron.js 应用程序,我正在使用 S3 来托管我的应用程序的新版本。我不能让 S3 存储桶对 public 开放,并且需要将其限制为仅供使用该应用程序的公司中的用户使用。因此,我决定通过公司的IP地址来限制对bucket的访问。但是,当 Electron-updater 检查更新时,我收到错误:HttpError: 403 Forbidden。这是我正在使用的存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::BUCKETNAME",
                "arn:aws:s3:::BUCKETNAME/*"
            ],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "Company's IP Address"
                }
            }
        }
    ]
}

Electron-Updater 检查是否有新更新时,我收到错误:HttpError: 403 Forbidden。不应该,因为请求是来自公司的IP。我想知道是否出于某种原因请求来自不同的 IP。我尝试使用 S3 访问日志(我从未使用过它们),但我创建的用于存储这些日志的存储桶中没有保存任何内容。我不知道是什么问题。

如果我理解了这个问题,您想要仅允许特定 IP。

    {
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
      {
        "Sid": "IPAllow",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::BUCKETNAME",
            "arn:aws:s3:::BUCKETNAME/*"
        ],
        "Condition": {
          "IpAddress": {
            "aws:SourceIp": [
              "CIDR",
              "CIDR"
            ]
          }
        }
      }
    ]
  }