Бакет – это контейнер верхнего уровня, в котором хранятся S3-объекты. В веб-интерфейсе PC-Storage бакеты отображаются на главной странице S3-хранилища; после выбора бакета можно работать с объектами и дополнительными настройками доступа.
Если вы настраиваете права: IAM определяет, может ли пользователь работать с сервисом S3 в целом. Bucket Policy определяет права этого пользователя внутри конкретного бакета.
1. Правила именования бакетов
Имя бакета должно быть:
- Уникальным в системе;
- минимальная длина 3 символа;
- для имени используются латинские буквы, цифры, дефис и точки.
- если интерфейс не принимает имя, ориентируйтесь на подсказку проверки в форме создания.

2. Создание бакета через веб-интерфейс
- Откройте S3-хранилище.
- На странице со списком бакетов выберите действие «Создание нового бакета».
- Введите имя бакета.
- Подтвердите создание.
После создания бакет появляется в списке и становится доступен для загрузки объектов и настройки дополнительных параметров.
Создание через AWS CLI
Если на компьютере установлен и настроен AWS CLI с ключами доступа PC-Storage, бакет можно создать из командной строки. Откройте Terminal в macOS/Linux или PowerShell / командную строку в Windows и выполните команду ниже. Вместо example-bucket укажите имя создаваемого бакета:
aws s3api create-bucket --bucket example-bucket --endpoint-url=https://eu-s3.platformcraft.com
- awss3apicreate-bucket – команда AWSCLI для создания бакета;
- —bucket example-bucket – имя создаваемого бакета, example-bucket нужно заменить на свое;
- —endpoint-url=https://eu-s3.platformcraft.com – адрес S3 API PlatformCraft.
При успешном создании API возвращает Location нового бакета:
{
"Location": "/example-bucket"
}
Перед выполнением команды AWS CLI должен быть установлен и настроен с вашими S3 Access Key и S3 Secret Key. Инструкция по настройке приведена в разделе «Работа с S3-хранилищем PC-Storage».
3. Просмотр бакета и его параметров
Выберите бакет в веб-интерфейсе. В правой панели отображаются его endpoint и дата создания, а также дополнительные разделы: CORS, Versioning, Policies и Presigned upload URL.
aws s3api list-buckets --endpoint-url=https://eu-s3.platformcraft.com
Получить список бакетов
Если AWS CLI уже установлен и настроен с вашими S3-ключами PC-Storage, откройте Terminal в macOS/Linux или PowerShell / командную строку в Windows и выполните команду:
| aws s3api list-buckets —endpoint-url=https://eu-s3.platformcraft.com |
Здесь:
- aws s3api list-buckets – команда для получения списка бакетов;
- —endpoint-url=https://eu-s3.platformcraft.com – адрес S3 API PlatformCraft, менять его не нужно.
Команда возвращает доступные бакеты учетной записи, их имена и даты создания.
Проверить существование бакета и доступ
Чтобы проверить, существует ли конкретный бакет и есть ли у вашей учетной записи доступ к нему, выполните:
aws s3api head-bucket --bucket bucket-name --endpoint-url=https://eu-s3.platformcraft.com
Особенность head-bucket: если бакет существует и у пользователя есть к нему доступ, запрос завершается с HTTP-кодом 200. Если бакет не существует либо прав недостаточно, возвращается 403 Forbidden без тела ответа, поэтому только по результату head-bucket нельзя определить, какая именно из этих двух причин вызвала ошибку.
4. Удаление бакета
Удалить можно только пустой бакет. Если в нем остаются объекты или версии объектов, сначала удалите их, а затем повторите удаление бакета:
aws s3api delete-bucket --bucket example-bucket --endpoint-url=https://eu-s3.platformcraft.com
| Ошибка | Что означает |
|---|---|
| NoSuchBucket | Бакета с таким именем не существует. |
| AccessDenied | У текущей учетной записи нет доступа к бакету. |
| BucketNotEmpty | В бакете остаются объекты; перед удалением его нужно очистить. |
5. Bucket Policy: права на бакет и объекты
Bucket Policy применяется к конкретному бакету и содержит одно или несколько правил. Каждое правило определяет пользователя, действия, ресурсы и результат правила:
- Statement ID – идентификатор правила.
- Principal – user ID пользователя, к которому применяется правило.
- Actions – S3-действия, которые разрешаются или запрещаются.
- Resources – бакет и/или объекты, на которые распространяется правило.
- Effect – Allow (разрешить); Deny (запретить).
Приоритет запрета: если на пользователя одновременно действуют разрешающее и запрещающее правила для одного действия и ресурса, запрещающее правило имеет приоритет.
Настройка Bucket Policy через веб-интерфейс
- Выберите нужный бакет.
- В правой панели разверните раздел Policies.
- Нажмите «Добавить правило».
- Заполните Statement ID, Actions, Effect, Resources и Principal.
- При необходимости добавьте дополнительные правила.
- Нажмите «Сохранить».

6. Типовые сценарии доступа
Ниже приведены базовые шаблоны. Замените USER_ID и example-bucket своими значениями.
Только чтение: список объектов и скачивание
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadBucket",
"Effect": "Allow",
"Principal": {"AWS": ["USER_ID"]},
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::example-bucket"]
},
{
"Sid": "ReadObjects",
"Effect": "Allow",
"Principal": {"AWS": ["USER_ID"]},
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::example-bucket/*"]
}
]
}
Только загрузка
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "UploadOnly",
"Effect": "Allow",
"Principal": {"AWS": ["USER_ID"]},
"Action": ["s3:PutObject"],
"Resource": ["arn:aws:s3:::example-bucket/*"]
}
]
}
Если нужен список объектов: добавьте отдельное разрешение s3:ListBucket для ресурса arn:aws:s3:::example-bucket.
Полный доступ к бакету
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "FullAccess",
"Effect": "Allow",
"Principal": {"AWS": ["USER_ID"]},
"Action": ["s3:*"],
"Resource": [
"arn:aws:s3:::example-bucket",
"arn:aws:s3:::example-bucket/*"
]
}
]
}
7. Bucket Policy через S3 API
Для работы с Bucket Policy через S3 API в примерах используется AWS CLI. Заменяйте example-bucket и путь к JSON-файлу своими значениями; endpoint PlatformCraft оставляйте без изменений.
Применить или заменить политику
aws --endpoint https://eu-s3.platformcraft.com s3api put-bucket-policy --bucket example-bucket --policy file:///path/to/policy.json
Одна политика на бакет: повторный вызов put-bucket-policy заменяет текущую политику бакета новой. Если нужно сохранить существующие правила, включите их в новый JSON перед отправкой.
Получить политику
aws s3api get-bucket-policy --bucket example-bucket --endpoint-url=https://eu-s3.platformcraft.com
Удалить политику
aws s3api delete-bucket-policy --bucket example-bucket --endpoint-url=https://eu-s3.platformcraft.com
8. Типовые ошибки
| Ошибка | Что проверить |
|---|---|
| Invalid bucket name | Имя бакета не прошло проверку формата. |
| BucketAlreadyOwnedByYou | Бакет с таким именем уже принадлежит текущей учетной записи. |
| BucketAlreadyExists | Имя бакета уже занято в системе. |
| NoSuchBucket | Указанного бакета не существует. |
| AccessDenied / 403 | Нет прав на операцию либо используются недействительные ключи доступа. |
| BucketNotEmpty | Бакет нельзя удалить, пока в нем есть объекты. |
| Policy has invalid resource | В Bucket Policy некорректно указан ресурс. |
9. Быстрая диагностика доступа
| Ситуация | Что проверить |
|---|---|
| Пользователь не открывает S3 | Проверьте доступ к сервису S3 в IAM. |
| S3 открывается, но бакет недоступен | Проверьте Bucket Policy, Principal, Actions и Resources. |
| Allow не дает ожидаемого доступа | Проверьте, нет ли отдельного Deny для того же действия или ресурса. |
| head-bucket возвращает 403 | Проверьте и существование бакета, и права: HEAD не различает эти причины. |
| put-bucket-policy удалил старые правила | Метод заменяет текущую политику целиком; сформируйте единый JSON со всеми нужными правилами. |
