AWS s3: изменение разрешений с общедоступных на приватные в одной папке в корзине - PullRequest
0 голосов
/ 05 апреля 2019

Как изменить общедоступную форму ACL на частную в одной папке в AWS s3?

Сейчас я использую эту команду

aws s3 ls --recursive s3://<bucket-name> | cut -d' ' -f5- | awk '{print $NF}' | while read line; do
    echo "$line"
    aws s3api put-object-acl --acl private --bucket <bucket> --key "$line"
done

Но это изменит разрешения для всехпапки в ведре

1 Ответ

2 голосов
/ 05 апреля 2019

Существует три способа предоставления публичного доступа к объектам в Amazon S3:

  • Списки контроля доступа (ACL) для отдельного объекта - хорошо для обеспечения одноразового доступак определенным объектам
  • A Политика корзины на корзине S3 - подходит для предоставления доступа ко всей корзине или ее части
  • A Политика наПользователь IAM или роль IAM - подходит для предоставления доступа определенным пользователям

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

Все данные в Amazon S3 по умолчанию являются частными.Итак, чтобы ответить на ваш вопрос «Как мне перейти с публичного на частный доступ», ответ - , вам следует отменить все, что вы сделали, чтобы сделать его общедоступным .Итак, если вы предоставили доступ через ACL, вы должны удалить публичный доступ через ACL.(Между прочим, не рекомендуется использовать ACL для предоставления общего доступа. Вместо этого рассмотрите возможность использования политики Bucket или IAM.)

Если вы хотите изменить ACL на существующих объектах, вы можете скопировать объекты навершина себя, но укажите другой ACL.Вам также может понадобиться указать другое поле, такое как метаданные, чтобы изменения вступили в силу.

Например, см .: Amazon S3 изменяет права доступа к объектам задним числом

...