Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструкции
      • Создание бакета
      • Удаление бакета
      • Ограничение максимального размера бакета
      • Шифрование бакета
      • Управление жизненными циклами объектов
      • Управление конфигурацией CORS
      • Настройка прав доступа с помощью IAM
      • Редактирование ACL бакета
      • Управление политикой доступа
      • Настройка публичного доступа к бакету
      • Доступ в бакет с помощью Security Token Service
      • Доступ в бакет с помощью сервисного подключения из VPC
      • Управление версионированием бакета
      • Включение механизма логирования
      • Управление блокировками версий объектов
      • Управление метками бакета
      • Получение информации и статистики о бакете
      • Просмотр метрик бакета
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Создайте сервисное подключение VPC
  • Настройте политику доступа для бакета
  • Настройте ограничение для доступа только из сервисных подключений
  • Копирование объектов на стороне сервера (Server Side Copy)
  1. Пошаговые инструкции
  2. Бакеты
  3. Доступ в бакет с помощью сервисного подключения из VPC

Доступ в бакет с помощью сервисного подключения из Yandex Virtual Private Cloud

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 7 мая 2025 г.
  • Создайте сервисное подключение VPC
  • Настройте политику доступа для бакета
  • Настройте ограничение для доступа только из сервисных подключений
    • Копирование объектов на стороне сервера (Server Side Copy)

Важно

Функциональность Сервисные подключения (VPC Private Endpoints) находится на стадии Preview. Чтобы запросить доступ, обратитесь к вашему аккаунт-менеджеру.

Вы можете организовать прямой доступ к бакетам Object Storage из облачных сетей VPC с помощью сервисного подключения VPC. При таком подключении сервис Object Storage будет доступен по внутренним IP-адресам VPC без использования доступа в интернет.

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

  1. Создайте сервисное подключение VPC.
  2. Настройте политику доступа для бакета.
  3. Настройте ограничение для доступа только из сервисных подключений.

Создайте сервисное подключение VPCСоздайте сервисное подключение VPC

Для создания сервисного подключения необходима одна из следующих ролей:

  • vpc.privateEndpoints.editor
  • vpc.privateEndpoints.admin
  • vpc.privateAdmin
  • vpc.admin
  • admin
CLI

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для создания сервисного подключения:

    yc vpc private-endpoint create --help
    
  2. Создайте сервисное подключение к Object Storage в каталоге по умолчанию:

    yc vpc private-endpoint create \
      --name <имя_сервисного_подключения> \
      --description "<описание_сервисного_подключения>" \
      --network-name <имя_сети> \
      --object-storage 
    

    Где:

    • --name — (опционально) имя сервисного подключения.
    • --description — (опционально) описание сервисного подключения.
    • --network-name — имя облачной сети, в которой будет создано сервисное подключение. Также вы можете использовать идентификатор сети в параметре --network-id.
    • --object-storage — сервисное подключение к Object Storage. Другие типы сервисных подключений пока не доступны.

    При создании сервисного подключения можно использовать дополнительные параметры:

    • --address-spec — (опционально) параметры в формате ключ=значение для внутреннего IP-адреса, который будет назначен сервисному подключению:

      • address — (опционально) внутренний IP-адрес для сервисного подключения. Если IP-адрес не указан, он будет назначен случайно из диапазона указанной подсети.

      • subnet-id — (опционально) идентификатор подсети, из которой будет взят IP-адрес для сервисного подключения. Если подсеть не указана, внутренний IP-адрес будет назначен случайно из диапазона одной из подсетей облачной сети.

        Примечание

        Чтобы создать сервисное подключение, в вашей сети должна быть хотя бы одна подсеть.

    • --private-dns-records-enabled — (опционально) параметр для создания дополнительных ресурсных записей в DNS для переопределения публичного FQDN сервиса, к которому создается подключение.

      В зависимости от того, применен ли параметр, будут автоматически созданы следующие ресурсные записи для доступа в Object Storage:

      • параметр не используется:

        Имя Тип Значение
        storage.pe.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
        *.storage.pe.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
      • параметр используется:

        Имя Тип Значение
        storage.pe.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
        *.storage.pe.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
        storage.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
        *.storage.yandexcloud.net A <внутренний_IP-адрес_сервисного_подключения>
  3. Проверьте, что сервисное подключение создалось:

    yc vpc private-endpoint list
    

    Результат выполнения команды:

    +----------------------+-------------+--------------------------------+
    |          ID          |    NAME     |          DESCRIPTION           |
    +----------------------+-------------+--------------------------------+
    | enpd7rq************* | s3-vpc-link | Private Endpoint to the Object |
    |                      |             | Storage                        |
    +----------------------+-------------+--------------------------------+
    

Сохраните идентификатор сервисного подключения.

Теперь бакеты Object Storage доступны по внутреннему IP-адресу VPC без использования доступа в интернет.

Настройте политику доступа для бакетаНастройте политику доступа для бакета

Чтобы разрешить доступ к бакету только по внутренним IP-адресам VPC, настройте для бакета политику доступа для сервисного подключения.

Примечание

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

Также при такой настройке остается возможность копирования объектов на стороне сервера (Server Side Copy) в такой бакет и из него.

Консоль управления
AWS CLI
  1. В консоли управления выберите каталог, в котором вы настроили сервисное подключение VPC.

  2. Выберите сервис Object Storage.

  3. Выберите бакет в списке.

  4. Перейдите на вкладку Безопасность в меню слева.

  5. В верхней части экрана перейдите на вкладку Политика доступа.

  6. Нажмите кнопку Настроить доступ.

  7. Введите идентификатор политики доступа, например private-endpoint-policy.

  8. Настройте правило:

    1. Введите идентификатор правила, например private-endpoint-rule.

    2. Настройте параметры правила:

      • Результат — разрешить.

      • Принцип выбора — включить пользователей.

      • Пользователь — все пользователи.

      • Действие — выберите опцию Все действия.

      • Ресурс — <имя_бакета>/*.

        Нажмите кнопку Добавить ресурс и введите <имя_бакета>.

        Примечание

        Ресурс бакета не включает в себя ресурсы всех его объектов. Чтобы правило в политике доступа относилось к бакету и всем объектам, их нужно указать как отдельные ресурсы: например, samplebucket и samplebucket/*.

    3. Добавьте условие для правила:

      • В поле Ключ выберите private-endpoint-id.
      • В поле Оператор выберите StringEquals.
      • В поле Значение укажите идентификатор сервисного подключения (Private Endpoint), например enpd7rq1s3f5********.
  9. Нажмите кнопку Сохранить.

Примечание

Для управления политикой доступа с помощью AWS CLI сервисному аккаунту должна быть назначена роль storage.admin.

Если у вас еще нет AWS CLI, установите и сконфигурируйте его.

  1. Опишите конфигурацию политики доступа в виде схемы данных формата JSON:

    {
      "Version": "2012-10-17",
      "Statement": {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "*",
        "Resource": [
          "arn:aws:s3:::<имя_бакета>/*",
          "arn:aws:s3:::<имя_бакета>"
        ],
        "Condition": {
          "StringEquals": {
            "yc:private-endpoint-id": "<идентификатор_подключения>"
          }
        }
      }
    }
    

    Где:

    • <имя_бакета> — имя бакета в Object Storage, к которому нужно применить политику доступа, например my-s3-bucket.
    • <идентификатор_подключения> — идентификатор сервисного подключения (Private Endpoint), например enpd7rq1s3f5********.
  2. Сохраните готовую конфигурацию в файле policy.json.

  3. Выполните команду:

    aws s3api put-bucket-policy \
      --endpoint https://storage.yandexcloud.net \
      --bucket <имя_бакета> \
      --policy file://policy.json
    

После успешного применения политики доступа подключение к бакету будет возможно только из облачной сети VPC, в которой было создано соответствующее сервисное подключение (Private Endpoint).

Подробная информация о работе с политикой доступа бакета изложена на странице Управление политикой доступа.

Настройте ограничение для доступа только из сервисных подключенийНастройте ограничение для доступа только из сервисных подключений

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

Важно

После включения данной опции доступ в бакет из публичной сети будет невозможен. В том числе при текущей реализации будет невозможен доступ в бакет с помощью консоли управления. См. также Особенности копирования объектов на стороне сервера (Server Side Copy).

Чтобы разрешить доступ в бакет только из сервисных подключений VPC на уровне сервиса:

CLI

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Создайте дополнительные ресурсные записи в DNS для переопределения публичного FQDN сервиса, к которому создается подключение. Для этого включите специальный параметр сервисного подключения VPC:

    yc vpc private-endpoint update \
      --id <идентификатор_сервисного_подключения> \
      --private-dns-records-enabled
    
  2. Измените настройки бакета, указав параметры для включения доступа только из сервисных подключений VPC:

    yc storage bucket update \
      --name <имя_бакета> \
      --enable-private-endpoints true \
      --private-endpoints <идентификатор_сервисного_подключения>
    

    Где:

    • --name — имя бакета.

    • --enable-private-endpoints — параметр для включения доступа к бакету только из сервисных подключений VPC. Если параметр не указан, доступ к бакету будет возможен как из публичной сети, так и из сервисных подключений VPC.

    • --private-endpoints — список идентификаторов сервисных подключений VPC, доступ из которых будет разрешен.

      Важно

      Если идентификаторы сервисных подключений VPC не указаны, доступ к бакету будет невозможен отовсюду. Однако останется возможность выключить ограничения на доступ только из сервисных подключений VPC.

Чтобы восстановить доступ к бакету из публичной сети:

CLI

Измените настройки бакета:

yc storage bucket update \
  --name <имя_бакета> \
  --enable-private-endpoints false

Где:

  • --name — имя бакета.

  • --enable-private-endpoints — параметр для включения доступа к бакету только из сервисных подключений VPC.

    Совет

    После того как ограничение на доступ только из сервисных подключений VPC снято, список сервисных подключений, переданный ранее в параметре --private-endpoints, сохраняется в настройках бакета. При повторном ограничении доступа нет необходимости передавать список еще раз.

Копирование объектов на стороне сервера (Server Side Copy)Копирование объектов на стороне сервера (Server Side Copy)

Особенности копирования объектов на стороне сервера (Server Side Copy) в бакетах с включенным доступом только из сервисных подключений VPC:

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

См. такжеСм. также

  • Сервисные подключения VPC
  • Работа с сервисными подключениями VPC
  • Политика доступа (bucket policy)
  • Подключение к Object Storage из Virtual Private Cloud
  • Обзор способов управления доступом в Object Storage

Была ли статья полезна?

Предыдущая
Доступ в бакет с помощью Security Token Service
Следующая
Управление версионированием бакета
Проект Яндекса
© 2025 ООО «Яндекс.Облако»