У меня есть два ведра, каждое со своими целями. Пока не могу разобраться в сложной настройке параметров ведра. Кажется, есть три вещи для настройки
- Заблокировать публичный доступ
- Политика корзины
- ACL-список
Я знаю, что если я выключу (1), все, что я хочу сделать, просто сработает. Несмотря на то, что это четыре самые бессмысленные настройки, которые я когда-либо видел (зачем мне ограничивать доступ к корзине на основе того, когда политика была изменена???)
Кажется, что то, что я добавляю к (2), не имеет большого значения. Например, у меня есть одна политика, которая разрешает только GetObject, но я могу DeleteObject и PutObject из SDK. У меня есть другая политика, которая разрешает DeleteObject, GetObject и PutObject, но работает только удаление, а установка выдает отказ в доступе (из учетной записи IAM, которая имеет административный доступ ко всему на свете).
Я даже не знаю смысла (3). Зачем мне когда-либо разрешать разрешения на Любые Пользователь АВС? Тем не мение..
У меня есть два ведра с двумя целями, и я не могу сообразить, что делать.
A: общедоступная корзина для статического веб-сайта.
Для этого у меня есть Бок с публичным доступом к ВЫКЛ, и такая политика (которая, я думаю, вообще ничего не делает). Любой может просматривать содержимое корзины (хорошо!), но эта политика не должна разрешать никакие объекты PutObject, хотя и разрешает.
{
«Версия»: «2012-10-17»,
"Идентификатор": "Политика1632669906301",
"Заявление": [
{
"Сид": "Stmt1632669869776",
«Эффект»: «Разрешить»,
"Главный": "*",
«Действие»: «s3: GetObject»,
"Ресурс": "arn:aws:s3:::publicwebsite/*"
}
]
}
Почему я могу загружать и удалять, когда определен только GetObject?
B: безопасное ведро для резервных копий
Это ведро предназначено для моего приложения, чтобы отправлять резервные копии данных. Так что единственное, что должно иметь возможность читать/писать, это мое приложение. Но если я включу Блокировать общий доступ, я не могу загружать, но могу удалить. Опять же, в этом нет никакого смысла. Если я выключу Блокировать общий доступ, я смогу сделать все это. Вот политика
{
«Версия»: «2012-10-17»,
"Идентификатор": "Политика1635858319261",
"Заявление": [
{
"Сид": "Stmt1635858317672",
«Эффект»: «Разрешить»,
"Главный": {
«AWS»: «arn:aws:iam::XXXXXXXXX:user/backup-user»
},
"Действие": [
"s3:УдалитьОбъект",
"s3:ПолучитьОбъект",
"s3:ПоместитьОбъект"
],
"Ресурс": "arn:aws:s3:::backups/*"
}
]
}
Почему я могу удалить, но не поставить?
Кроме того, Амазонка АДАМАНТ о постоянном блокировании общего доступа, но вы даже не можете изменить политику Bucket, если она включена! Это безумие!!!!!!!
Вот мои выводы после некоторых тестов.
Мои аккаунты такие
- учетная запись root, владелец ведра
- Аккаунт IAM (администратор) с административным всем
- IAM-аккаунт (Пользователь) без каких-либо полномочий вообще что-либо делать
Политики корзин см. во второй публикации выше.
Я изучаю, что делает комбинация политики и параметров блокировки общего доступа. Они по-прежнему не имеют никакого смысла.
Дело 1
- Блокировать весь публичный доступ: ВЫКЛ.
- Политика корзины: ПУСТО
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может загружать и удалять, Пользователь ничего не может сделать
Случай 2
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- Политика корзины: ПУСТО
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, но не загрузить, Пользователь ничего не может сделать
Случай 3
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- [x] любые списки контроля доступа
- Политика корзины: ПУСТО
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, но не загрузить, Пользователь ничего не может сделать
Случай 4
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- [x] любые списки контроля доступа
- [x] новые политики точек доступа
- Политика корзины: ПУСТО
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, но не загрузить, Пользователь ничего не может сделать
Случай 5
- Блокировать весь публичный доступ: ВКЛ.
- Политика корзины: ПУСТО
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, но не загрузить, Пользователь ничего не может сделать
Заключение: Блокировать общий доступ, если установлено значение ВКЛ, разрешает все. Любая другая конфигурация позволяет удалить (а может и больше, например получить), но не поставить.
Случай 6
- Блокировать весь публичный доступ: ВЫКЛ.
- Политика корзины: Администратор (получить/поместить/удалить объект) Пользователь (ничего)
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может загружать и удалять, Пользователь ничего не может сделать
Случай 7
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- Политика корзины: Администратор (получить/поместить/удалить объект) Пользователь (ничего)
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, Пользователь ничего не может сделать
Случай 8
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- [x] любые списки контроля доступа
- Политика корзины: Администратор (получить/поместить/удалить объект) Пользователь (ничего)
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, Пользователь ничего не может сделать
Случай 9
- Заблокировать весь публичный доступ:
- [x] новые списки контроля доступа
- [x] любые списки контроля доступа
- [x] новые политики точек доступа
- Политика корзины: Администратор (получить/поместить/удалить объект) Пользователь (ничего)
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, Пользователь ничего не может сделать
Случай 10
- Блокировать весь публичный доступ: ВКЛ.
- Политика корзины: Администратор (получить/поместить/удалить объект) Пользователь (ничего)
- ACL: владелец корзины (список, запись | чтение, запись)
Результат: Администратор может удалить, Пользователь ничего не может сделать
Заключение: политика ведра буквально ни на что не влияет
TLDR: кажется, что политика Bucket ничего не делает.Только блокировать общий доступ имеет какой-либо измеримый эффект, и единственный полезный вариант — отключить его. Я также удалил свою политику корзины из общедоступной корзины, и это также ничего не изменило.
Мой вывод таков: либо политика Bucket нарушена, либо документации недостаточно, либо сами настройки противоречат интуиции и на самом деле не делают того, о чем говорят. Или любая комбинация чего угодно.
На данный момент я бы предпочел разместить свой контент на FTP-сервере в моем подвале.