Разрешения, которые вы видите в Консоль управления AWS напрямую, основаны на исходных и сравнительно простых списках контроля доступа (ACL) , доступных для S3, которые существенно различаются ЧИТАТЬ и ЗАПИСАТЬ разрешения, см. Указание разрешения :
- READ - позволяет получателю перечислять объекты в корзине
- WRITE - позволяет получателю создавать, перезаписывать и удалять любые объекты в
Ковш
Эти ограничения были устранены путем добавления Политики корзины (разрешения, применяемые на уровне корзины) и Политики IAM (разрешения, применяемые на уровне пользователя), и все три можно использовать вместе (что может стать довольно сложным, как указано ниже), см. Контроль доступа для всей картины.
Ваш вариант использования, вероятно, запрашивает соответствующую политику корзины, которую вы также добавляете непосредственно из консоли S3. При нажатии на Добавить политику корзины открывается Редактор политики корзины , который содержит ссылки на пару примеров, а также настоятельно рекомендуемый Генератор политики AWS , который позволяет вам составить политику для вашего варианта использования.
Для заблокированной корзины простейшая форма может выглядеть так (пожалуйста, убедитесь, что Principal и Resource под свои нужды):
{
"Statement": [
{
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket_name>/<key_name>",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
В зависимости от вашего варианта использования вы можете легко составлять довольно сложные политики, комбинируя различные Разрешить и Запретить действия и т. Д. ключ как обычно; поэтому, пожалуйста, позаботьтесь о последствиях при использовании Совместное использование ACL и политик Bucket или Совместных политик IAM и Bucket .
Наконец, возможно, вы захотите взглянуть на мой ответ на Проблемы с указанием отдельного сегмента в простой политике пользователя AWS , которая устраняет другую часто встречающуюся ошибку с политиками.