0

我正在创建一个 Electron.js 应用程序,并且我正在使用 S3 来托管我的应用程序的新版本。我不能将 S3 存储桶向公众开放,我需要将其仅限于将使用该应用程序的公司中的用户。因此,我决定通过公司的 IP 地址来限制对存储桶的访问。但是,当 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 访问日志(我从未使用过它们),但在我创建的存储这些日志的存储桶中没有保存任何内容。我不知道问题是什么。

4

1 回答 1

1

如果我理解了这个问题,您希望只允许来自特定 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"
            ]
          }
        }
      }
    ]
  }
于 2020-07-27T16:48:26.197 回答