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

摘要: В этой базе знаний описывается концепция списков контроля доступа к контейнерам (ACL) для пользователя, не являющегося владельцем, с точки зрения доступности только для чтения в S3 Browser. ...

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

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

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

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

  1. Контейнер был создан с назначенным пользователем владельцем объекта.
  2. Некоторые файлы были загружены в контейнер пользователем-владельцем объекта.
  3. Пользователь, не являющийся владельцем, был добавлен в контейнер с доступом только для чтения с помощью списка контроля доступа контейнера.
  4. При попытке получить доступ к контейнеру пользователь, не являющийся владельцем, может вывести список вновь загруженных объектов и скачать их, но не может скачивать объекты, загруженные до списка контроля доступа для контейнера только для чтения. Мы видим, что права пользователей на объекты не установлены в браузере S3 в соответствии с конфигурацией в пользовательском интерфейсе ECS.

Ошибка, возникающая при щелчке по объекту, не являющемуся владельцем, с помощью браузера S3 выглядит следующим образом: (Отказано в доступе: Доступ запрещен):
Ошибка, когда пользователь, не являющийся владельцем объекта, щелкает по объекту через браузер S3, выглядит следующим образом: (Отказано в доступе: Доступ запрещен) 

Ниже приведена настройка списка контроля доступа контейнера для пользователя-владельца объекта (a_s3user) и пользователя-невладельца объекта (a_s3test).
Ниже приведена настройка списка контроля доступа контейнера для пользователя-владельца объекта (a_s3user) и пользователя-объекта без владельца (a_s3test)

原因

Разрешения S3 можно задать на уровне контейнера или объекта. ECS придерживается тех же принципов, что и AWS S3, в зависимости от типа применяемой политики. Он определяет тип операций, которые будут разрешены на уровне контейнера или объекта.

  1. Если ACL чтения и чтения предоставлены на уровне контейнера ECS, список объектов в контейнере будет предоставлен лицом, не являющимся владельцем контейнера, а пользователь, не являющийся владельцем контейнера, не сможет скачивать данные из контейнера
  2. При записи объекта в контейнер разрешение на чтение имеет только пользователь, который записывает объект. Для того, чтобы другие пользователи могли читать объекты, владелец должен явно предоставить разрешение пользователям.
  3. Чтобы предоставить разрешение владельцам, не являющимся владельцами контейнеров, необходимо использовать политики корзины S3 

Разрешения ACL, которые можно назначить, приведены в следующей таблице. Применимые разрешения зависят от типа контейнера.

Таблица 1. Списки ACL контейнера
ACL Разрешение
Чтение Позволяет пользователю получить список объектов в контейнере
Чтение ACL Позволяет пользователю читать ACL контейнера
Запись Позволяет пользователю создавать или обновлять любые объекты в контейнере
Запишите список контроля доступа. Позволяет пользователю записать список контроля доступа для контейнера.
Выполнить Задает разрешение на выполнение при доступе к файловой системе. Это разрешение не действует при доступе к объекту с использованием протоколов объектов ECS.
Полный контроль Позволяет пользователю считывать и записывать данные в контейнер, считывать списки ACL и делать в них новые записи.
ПРИМЕЧАНИЕ.  Лица, не являющиеся владельцами, могут выполнять операции чтения, записи, чтения и записи списка контроля доступа, если им предоставлено такое разрешение, или могут только выводить список объектов.
Привилегированная запись Позволяет пользователю выполнять запись в контейнер или объект, если у него нет обычного разрешения на запись — требуется для контейнеров CAS
Удаление Позволяет пользователю удалять контейнеры и объекты — обязательно для контейнеров CAS
None У пользователя нет прав для контейнера.

AWS поддерживает несколько типов политик.  

Справочник по ACL корзины AWS

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

Разрешение При предоставлении для контейнера При предоставлении объекта
READ Позволяет получателю прав получать список объектов в контейнере Позволяет получателю гранта считывать данные объекта и его метаданные
WRITE Позволяет получателю прав создавать, перезаписывать и удалять любые объекты в контейнере Неприменимо
READ_ACP Позволяет получателю прав считывать ACL контейнера Позволяет получателю прав читать список контроля доступа объекта
WRITE_ACP Позволяет получателю прав записывать список контроля доступа для соответствующего контейнера. Позволяет получателю прав записать список контроля доступа для соответствующего объекта
FULL_CONTROL Предоставляет получателю прав разрешения READ, WRITE, READ_ACP и WRITE_ACP для контейнера Предоставляет получателю прав READ, READ_ACP и WRITE_ACP для объекта


Документация по Amazon S3

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

Разрешение ACL Соответствующие разрешения политики доступа, когда для контейнера предоставлено разрешение ACL Соответствующие разрешения политики доступа, когда для объекта предоставлено разрешение ACL
READ s3:ListBuckets3:ListBucketVersionsи s3:ListBucketMultipartUploads s3:GetObjects3:GetObjectVersionи s3:GetObjectTorrent
WRITE

s3:PutObject и s3:DeleteObject

Кроме того, если получатель прав является владельцем контейнера, предоставление WRITE в бакете ACL позволяет s3:DeleteObjectVersion action, которое будет выполнено с любой версией в этом контейнере.

Неприменимо
READ_ACP s3:GetBucketAcl s3:GetObjectAcl и s3:GetObjectVersionAcl
WRITE_ACP s3:PutBucketAcl s3:PutObjectAcl и s3:PutObjectVersionAcl
FULL_CONTROL Эквивалентно предоставлению READWRITEREAD_ACPи WRITE_ACP Разрешения ACL — таким образом, это разрешение ACL сопоставляется с сочетанием соответствующих разрешений политики доступа. Эквивалентно предоставлению READREAD_ACPи WRITE_ACP Разрешения ACL. Таким образом, это разрешение ACL сопоставляется с комбинацией соответствующих разрешений политики доступа.

解析度

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

Справка по AWS S3:

https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.htmlВ разделе UI-Manage-Bucket>>-> Edit bucket policy введите в редакторе политик что-то похожее на это: 

{
  "Version": "2012-10-17",
  "Id": "Policy1593674317613",
  "Statement": [
    {
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "bucket_name/*",
      "Effect": "Allow",
      "Principal": "read-only_user",
      "Sid": "Stmt1593673962638"
    }
  ]
}
Где: «S3:GetObject» — это действие, которому будет разрешено скачивать объекты.
Где: "Разрешить"
где ресурс": «bucket_name/*» — имя контейнера.
Где Принципал": «read-only_user» — пользователь, не являющийся владельцем контейнера. 

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

其他資訊

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

受影響的產品

ECS Appliance

產品

ECS Appliance, ECS Appliance Hardware Gen1 U-Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption
文章屬性
文章編號: 000070218
文章類型: Solution
上次修改時間: 10 9月 2025
版本:  5
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。