Object Storage
Статья создана
Обновлена 23 марта 2026 г.
Object Storage — S3-совместимое объектное хранилище на базе Yandex Object Storage. Хранилище можно использовать для данных любого формата. Взаимодействовать с ним можно с помощью инструментов, поддерживающих S3 API.
Основные возможности
- Хранение неструктурированных данных любого объема.
- Совместимость с S3 API — работа с любыми инструментами и SDK, поддерживающими протокол S3.
- Управление бакетами через Kubernetes CRD
Bucket. - Гибкая настройка публичного доступа к объектам.
- Поддержка CORS для веб-приложений.
- Интеграция с Identity and Access Management для управления доступом.
Ресурсная модель
Bucket
Бакет — контейнер для хранения объектов. Создавайте бакеты с помощью инструкции Создать бакет.
Пример манифеста:
apiVersion: storage.stackland.yandex.cloud/v1alpha1
kind: Bucket
metadata:
name: my-bucket
namespace: my-project
spec:
anonymousAccessFlags:
read: true
list: false
cors:
- allowedOrigins:
- "https://example.com"
allowedMethods:
- "GET"
- "PUT"
allowedHeaders:
- "*"
maxAgeSeconds: 3600
Где:
metadata.name— имя бакета. Должно быть уникальным в рамках всего хранилища. Допускаются строчные буквы латинского алфавита, цифры и дефисы.metadata.namespace— проект, в котором создается бакет.spec.anonymousAccessFlags— настройки публичного доступа к бакету:read— разрешает анонимным пользователям читать объекты в бакете.list— разрешает анонимным пользователям получать список объектов в бакете.configRead— разрешает анонимным пользователям читать конфигурацию бакета (CORS, lifecycle, website).
spec.cors— правила CORS для кросс-доменных запросов:allowedOrigins— список разрешенных источников запросов.allowedMethods— список разрешенных HTTP-методов.allowedHeaders— список разрешенных заголовков в preflight-запросах.exposeHeaders— список заголовков, доступных браузеру в ответе.maxAgeSeconds— время кэширования preflight-ответа в секундах.
Статус бакета
После создания бакета его статус отображается в поле status.phase:
Pending— бакет ожидает создания.Creating— бакет создается.Ready— бакет готов к использованию.Updating— бакет обновляется.Deleting— бакет удаляется.Failed— произошла ошибка.
Управление доступом
Доступ к Object Storage управляется через Identity and Access Management. Для работы с бакетами приложениям необходимы:
- Сервисный аккаунт — создайте ServiceAccount в проекте.
- Роль — назначьте сервисному аккаунту роль
storage.editorилиstorage.viewerс помощью ресурсаAccessBinding. - Статический ключ — получите ключ доступа для работы с S3 API.
Подробнее о создании ключей доступа см. в инструкции Создать ключ доступа.
Пример назначения роли
apiVersion: iam.stackland.yandex.cloud/v1alpha1
kind: AccessBinding
metadata:
name: app-storage-access
namespace: my-project
spec:
roleID: storage.editor
subject:
kind: ServiceAccount
name: my-app-sa
namespace: my-project
Подключение к хранилищу
Для подключения к Object Storage используйте следующие параметры:
- Endpoint:
storage.sys.<домен кластера>. - Access Key ID: получите из секрета сервисного аккаунта.
- Secret Access Key: получите из секрета сервисного аккаунта.
Пример настройки AWS CLI:
aws configure set aws_access_key_id <access-key-id>
aws configure set aws_secret_access_key <secret-access-key>
aws configure set default.region ru-central1
aws --endpoint-url=https://storage.sys.<cluster-domain> s3 ls