Настроить ограничение в Object Storage для доступа только из сервисных подключений
Вы можете ограничить доступ в бакет на уровне сервиса, тогда доступ к бакету будет возможен только из сервисных подключений VPC.
Важно
После включения данной опции доступ в бакет из публичной сети будет невозможен. В том числе при текущей реализации будет невозможен доступ в бакет с помощью консоли управления
Чтобы разрешить доступ в бакет только из сервисных подключений VPC на уровне сервиса:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
-
Создайте дополнительные ресурсные записи в DNS для переопределения публичного FQDN сервиса, к которому создается подключение. Для этого включите специальный параметр сервисного подключения VPC:
yc vpc private-endpoint update \ --id <идентификатор_сервисного_подключения> \ --private-dns-records-enabled
-
Измените настройки бакета, указав параметры для включения доступа только из сервисных подключений VPC:
yc storage bucket update \ --name <имя_бакета> \ --enable-private-endpoints true \ --private-endpoints <идентификатор_сервисного_подключения>
Где:
-
--name
— имя бакета. -
--enable-private-endpoints
— параметр для включения доступа к бакету только из сервисных подключений VPC. Если параметр не указан, доступ к бакету будет возможен как из публичной сети, так и из сервисных подключений VPC. -
--private-endpoints
— список идентификаторов сервисных подключений VPC, доступ из которых будет разрешен.Важно
Если идентификаторы сервисных подключений VPC не указаны, доступ к бакету будет невозможен отовсюду. Однако останется возможность выключить ограничения на доступ только из сервисных подключений VPC.
-
Чтобы восстановить доступ к бакету из публичной сети:
Измените настройки бакета:
yc storage bucket update \
--name <имя_бакета> \
--enable-private-endpoints false
Где:
-
--name
— имя бакета. -
--enable-private-endpoints
— параметр для включения доступа к бакету только из сервисных подключений VPC.Совет
После того как ограничение на доступ только из сервисных подключений VPC снято, список сервисных подключений, переданный ранее в параметре
--private-endpoints
, сохраняется в настройках бакета. При повторном ограничении доступа нет необходимости передавать список еще раз.
Копирование объектов на стороне сервера (Server Side Copy)
Особенности копирования объектов на стороне сервера (Server Side Copy) в бакетах с включенным доступом только из сервисных подключений VPC:
- Если в бакете-источнике и бакете-приемнике включены доступы только из сервисных подключений VPC, запустить копирование на стороне сервера можно только запросом из сервисного подключения, которое указано в списке разрешенных для обоих бакетов, и при наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник. Если запрос пришел не из сервисного подключения, он не будет выполнен.
- Если в бакете-источнике включен доступ только из сервисных подключений VPC, а бакет-приемник доступен из публичной сети, запустить копирование на стороне сервера можно только запросом из сервисного подключения, которое указано в списке разрешенных для бакета-источника, и при наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник.
- Если бакет-источник доступен из публичной сети, а в бакете-приемнике включен доступ только из сервисных подключений VPC, запустить копирование на стороне сервера можно только запросом из сервисного подключения, которое указано в списке разрешенных для бакета-приемника, и при наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник.
- Если бакет-источник и бакет-приемник доступны из публичной сети, запустить копирование на стороне сервера можно при наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник, в том числе если запрос пришел из сервисного подключения.