Ограничить сетевую активность в Google Cloud Run - PullRequest
1 голос
/ 23 апреля 2020

Я использую контейнеры Cloud Run для запуска ненадежного (предоставленного пользователем) кода. Контейнер получает запрос POST, выполняет код и отвечает результатом. По соображениям безопасности он развернут на заблокированной учетной записи службы, но я также хочу заблокировать всю другую сетевую активность. Как это можно сделать?

1 Ответ

1 голос
/ 24 апреля 2020

Cloud Run (управляемый) в настоящее время не предлагает ограничения брандмауэра для выборочной блокировки входящего или исходящего трафика c по IP / хосту. Я предполагаю, что вы пытаетесь заблокировать соединения, инициированные из контейнера наружу. В будущем Cloud Run планирует добавить поддержку функции управления сервисами Google Cloud VP C, что может помочь.

Однако, если у вас есть возможность использовать Cloud Run для Anthos (в GKE) который имеет аналогичный опыт разработчиков, но работает на кластерах Kubernetes, вы можете легко написать политики NetworkPolicy Kubernetes (у меня есть несколько рецептов здесь ), чтобы контролировать, какой трафик c может прийти / go из контейнеров работает. Вы также можете использовать правила брандмауэра GCE и VP C управления службами при использовании кластера Kubernetes.

Кроме этого, ваш единственный вариант в облачной среде ( полностью управляемая) среда должна использовать команду Linux iptables при запуске контейнера для блокировки определенных сетевых шаблонов. Важно отметить, что Cloud Run (полностью управляемый) работает в изолированной программной среде gVisor , которая эмулирует системные вызовы. И многие функции iptables в настоящее время не реализованы / не поддерживаются в gVisor. Глядя на исправление ошибок и патчи , я могу сказать, что он включен в план, и некоторые из них могут даже работать сегодня.

...