Политика корзины Amazon S3 для анонимной загрузки фотографий в корзину - PullRequest
6 голосов
/ 29 ноября 2011

Я планирую использовать Amazon S3, чтобы пользователи могли загружать фотографии с iPhone, а затем делать их общедоступными.

У меня возникли проблемы с пониманием того, как установить следующие ограничения безопасности в политике корзины:

  • Каждый может прочитать каждый файл.
  • Каждый может загрузить новый файл размером не более 256 КБ.
  • Никто не может удалить любой файл.
  • Никто не может изменить любой файл.

Ответы [ 2 ]

8 голосов
/ 01 декабря 2011

Хорошо, в конце концов, вроде как. Единственное, что вы не можете устанавливать разные разрешения на добавление файлов и обновление файлов. Все они покрыты s3: PutObject. Кроме того, представляется невозможным ограничить размер файла.

{
    "Version": "2008-10-17",
    "Id": "policy",
    "Statement": [
        {
            "Sid": "allow-public-read",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        },
    {
            "Sid": "allow-public-put",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
  ]
}
0 голосов
/ 29 ноября 2011

Возможно, что-то похожее на приведенное ниже будет работать, но я не уверен, что вы можете ограничить размер загрузки.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal":"*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetObjectAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket",
      "Condition": {}
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...