限制对 AWS S3 服务器上 JSON 文件的写入访问

Limit write access to JSON file on AWS S3 server

我正在开发一个应用程序,该应用程序能够读取位于 AWS S3 服务器上具有读写权限的存储桶中的 JSON 文件。应用程序还允许编辑该 JSON 文件中的一些值。

问题

问题是每个拥有 JSON 文件 URL 的人都可以更改包含的数据。我只想从这个应用程序修改文件。

JSON 文件

{
  "females": [
    {
      "id": 1,
      "name": "First Name",
      "actions": [
        {
          "action_1": 123,
          "action_2": 456,
          "action_3": 789
        }
      ]
    }, ...    
}

用户可以修改位于 actions 数组中的值。

关于如何将 JSON 文件的写入权限限制为仅对此应用程序的任何建议?

看看以下内容: Restricting Access to Amazon S3 Content by Using an Origin Access Identity

您可以使用 CloudFront 屏蔽 and/or 在您的内容(在 S3 中)和 user/s 之间创建一个层。这允许更好地控制访问管理,而不是存储和给出 S3 URLS 的实际链接。

Cloudfront 在这里无济于事。

解决方案是

  • 验证您的应用程序的用户(Amazon Cognito 会帮助您)或将 Amazon Cognito 与匿名用户一起使用。

  • 授予您的 Amazon Cognito 角色在您的 S3 存储桶上读取和写入的权限

  • 从 S3 中删除访问策略(使存储桶私有)

这样,只有应用程序用户才能读取和写入文件。