[Документация Yandex Cloud](../../index.md) > [Yandex Virtual Private Cloud](../index.md) > [Пошаговые инструкции](index.md) > Сервисные подключения > Настроить ограничение в Object Storage для доступа только из сервисных подключений

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

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

{% note warning %}

После включения данной опции доступ в бакет из публичной сети будет невозможен. Доступ в бакет с помощью [консоли управления](https://console.yandex.cloud) можно включить отдельной опцией. Смотрите также [Особенности копирования объектов на стороне сервера (Server Side Copy)](#server-side-copy).

{% endnote %}

### Разрешить доступ в бакет только из сервисных подключений VPC на уровне сервиса {#enable-service-restriction}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) выберите каталог, в котором вы настроили сервисное подключение VPC.
  1. [Перейдите](https://console.yandex.cloud/link/storage) в сервис **Object Storage**.
  1. Выберите бакет в списке.
  1. На панели слева выберите ![image](../../_assets/console-icons/wrench.svg) **Настройки**.
  1. В блоке **Строгий режим** активируйте опцию **Доступ только через сервисные подключения VPC**.
  1. В поле **Сервисные подключения VPC** укажите идентификатор созданного сервисного подключения.
  1. (Опционально) Активируйте опцию **Доступ из консоли управления**. Опция позволяет при включенном доступе только через сервисные подключения VPC работать с бакетом с помощью консоли управления. При отключенной опции доступ к бакету остается только через API и CLI.
  1. Нажмите **Сохранить**.

- Yandex Cloud CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).
  
  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Создайте дополнительные [ресурсные записи](../../dns/concepts/resource-record.md) в DNS для переопределения публичного FQDN сервиса, к которому создается подключение. Для этого включите специальный параметр сервисного подключения VPC:
  
      ```bash
      yc vpc private-endpoint update \
        --id <идентификатор_сервисного_подключения> \
        --private-dns-records-enabled
      ```

  1. Измените настройки бакета, указав параметры для включения доступа только из сервисных подключений VPC:
  
      ```bash
      yc storage bucket update \
        --name <имя_бакета> \
        --enable-private-endpoints true \
        --private-endpoints <идентификатор_сервисного_подключения> \
        --private-endpoints-force-cloudconsole-access true
      ```

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

        {% note warning %}

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

        {% endnote %}

      * `--private-endpoints-force-cloudconsole-access` — (опционально) параметр для включения доступа к бакету с помощью консоли управления при включенном доступе только через сервисные подключения VPC. При отключенной опции доступ в бакет остается только через API и CLI.

- API {#api}

  Чтобы разрешить доступ в бакет только из сервисных подключений VPC на уровне сервиса, воспользуйтесь методом REST API [update](../../storage/api-ref/Bucket/update.md) для ресурса [Bucket](../../storage/api-ref/grpc/Bucket/index.md) или вызовом gRPC API [Bucket/Update](../../storage/api-ref/grpc/Bucket/update.md).

{% endlist %}

### Восстановить доступ к бакету из публичной сети {#disable}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) выберите каталог, в котором вы настроили сервисное подключение VPC.
  1. [Перейдите](https://console.yandex.cloud/link/storage) в сервис **Object Storage**.
  1. Выберите бакет в списке.
  1. На панели слева выберите ![image](../../_assets/console-icons/wrench.svg) **Настройки**.
  1. В блоке **Строгий режим** деактивируйте опцию **Доступ только через сервисные подключения VPC**.
  1. Нажмите **Сохранить**.

- Yandex Cloud CLI {#cli}

  Измените настройки бакета:
  
  ```bash
  yc storage bucket update \
    --name <имя_бакета> \
    --enable-private-endpoints false    
  ```

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

    {% note tip %}

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

    {% endnote %}

- API {#api}

  Чтобы разрешить доступ в бакет только из сервисных подключений VPC на уровне сервиса, воспользуйтесь методом REST API [update](../../storage/api-ref/Bucket/update.md) для ресурса [Bucket](../../storage/api-ref/grpc/Bucket/index.md) или вызовом gRPC API [Bucket/Update](../../storage/api-ref/grpc/Bucket/update.md).

{% endlist %}

### Копирование объектов на стороне сервера (Server Side Copy) {#server-side-copy}

Особенности [копирования объектов на стороне сервера (Server Side Copy)](../../storage/operations/objects/copy.md) в бакетах с включенным доступом только из сервисных подключений VPC приведены в таблице:

Бакет-источник | Бакет-приемник | Условие для запуска копирования на стороне сервера^1^
--- | --- | ---
Доступ только из сервисных подключений VPC | Доступ только из сервисных подключений VPC | Запрос из сервисного подключения, которое указано в списке разрешенных для обоих бакетов
Доступ только из сервисных подключений VPC | Доступ из публичной сети | Запрос из сервисного подключения, которое указано в списке разрешенных для бакета-источника
Доступ из публичной сети | Доступ только из сервисных подключений VPC | Запрос из сервисного подключения, которое указано в списке разрешенных для бакета-приемника
Доступ из публичной сети | Доступ из публичной сети | Запрос из публичной сети или из сервисного подключения

^1^ При наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник.