Проблема разрешения Amazon S3 - как установить разрешения для всех файлов сразу?


Я загрузил некоторые файлы через Amazon AWS mangement.

Я получил ошибку 403. Асесс отказал. Я узнал, что мне нужно установить permisson для просмотра.

Как это сделать для всех файлов на ведре? Я знаю, что это возможно разрешение настройки для каждого файла. Это занимает очень много времени, когда действительно много файлов, которые должны быть доступны для просмотра для всех.

9 73

9 ответов:

Я предлагаю вам применить политику ведра[1] к ведру, где вы хотите хранить общедоступный контент. Таким образом, вам не нужно устанавливать ACL для каждого объекта. Вот пример политики, которая сделает все файлы в ведро mybucket общественности.

{
    "Version": "2008-10-17",
    "Id": "http better policy",
    "Statement": [
        {
            "Sid": "readonly policy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
        }
    ]
}

это * in "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" допускает рекурсию.

[1] Обратите внимание, что политика корзины отличается от политики IAM. (Для одного вы получите сообщение об ошибке, если вы попытаетесь включить Principal в IAM Политика.) Политику корзины можно изменить, перейдя в корень корзины в веб-консоли AWS и развернув свойства > разрешения. Подкаталоги ведра также имеют свойства > разрешения, но нет возможности изменить политику ведра

Я использовал CloudBerry Explorer для выполнения этой работы :) то есть:http://cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx

вы можете выбрать, какой каталог вы хотите, чтобы это было публично.

нажмите на "больше" и отметьте его как общедоступный; это сделает каталог и все файлы доступными как общедоступные.

вы можете изменить только ACL для уникального элемента (ведро или элемент), поэтому вам придется изменить их по одному.

некоторые приложения управления S3 позволяют применять один и тот же ACL ко всем элементам в ведре, но внутренне он применяет ACL к каждому по одному.

Если вы загружаете свои файлы программно, важно указать ACL при загрузке файла, поэтому вам не нужно изменять его позже. Проблема использования приложения управления S3 (например Морошка, Передайте, ...) заключается в том, что большинство из них использует ACL по умолчанию (только для чтения) при загрузке каждого файла.

У меня была такая же проблема при загрузке файлов через программу (java) в ведро s3 ..

ошибка: на запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Происхождение'http://localhost:9000', следовательно, не разрешен доступ. Ответ имел код состояния HTTP 403

добавил происхождение удостоверение и изменил ведро политики и конфигурация CORS потом все работало штраф.

используя Браузер S3 вы можете обновить разрешения с помощью графического интерфейса, также рекурсивно. Это полезный инструмент и бесплатно для некоммерческого использования.

передача 5

Я хотел добавить это здесь для потенциальных пользователей macOS, у которых уже есть красиво созданное приложение FTP под названием Transmit by Panic.

у меня уже была паника, и он поддерживает ведра S3 (не уверен, что это версия, но я думаю, что обновления были бесплатными). Он также поддерживает рекурсивное обновление разрешений на чтение и запись.

вы просто щелкните правой кнопкой мыши на папке, которую вы хотите обновить и выберите чтение и запись разрешения, которые вы хотите установить их.

это не кажется ужасно быстрым, но вы можете открыть файл журнала, перейдя в окно > транскрипт, чтобы вы, по крайней мере, знали, что он что-то делает.

чтобы сделать большую часть файлов общедоступными, выполните следующие действия:

  1. на веб-интерфейс S3
  2. откройте необходимое ведро
  3. выберите необходимые файлы и папки, установив флажки в левой части списка
  4. Нажмите кнопку " Еще "в верхней части списка, нажмите кнопку"сделать общедоступным"
  5. подтвердите, нажав кнопку "сделать общедоступным". Файлы не будут иметь публичного доступа к записи, несмотря на предупреждение "...прочитайте этот объект, прочитайте и запись".

использовать AWS policy generator чтобы создать политику, которая соответствует вашим потребностям. Принципалом в генераторе политики должен быть пользователь/роль IAM, который вы будете использовать для доступа к объекту(ам). Ресурс должен быть Арн Арн:АРМ:С3:::mybucket/суб/каталоги/есть/поддерживаемые/*

далее нажмите на кнопку "Добавить заявление" и следуйте по. Вы, наконец, получите JSON, представляющий политику. Вставьте это в раздел управления политикой корзины s3, который находится на странице " ваша страница корзины s3 в AWS - > разрешения - > политика ведра".