Полностью закрытый исходный док-контейнер

Мне было интересно, можно ли предлагать изображения Docker, но не разрешать какой-либо доступ к внутренним компонентам встроенных контейнеров. По сути, пользователь изображений контейнеров может использовать предоставляемые им сервисы, но не может копаться в каком-либо коде внутри контейнеров.
Назовите это способом запутывания исходного кода, но также предлагайте услугу (программное обеспечение) кому-то на основе контейнера, вместо того, чтобы предлагать само программное обеспечение. Что-то вроде "Контейнер как услуга", но с главным преимуществом, что разработчик может использовать эти контейнеры также для локальной разработки, но без доступа к базовому коду внутри контейнеров.

Сначала я думаю, что контроллер экземпляров Docker управляет всем, вплоть до корневого доступа. Так что нет, это невозможно. Но я новичок в Docker и не знаю всех его возможностей.

Эта идея в любом случае возможна?

1 ответ

Решение

Одного решения на основе запутывания будет недостаточно, как подробно описано в " Зашифрованных и защищенных контейнерах докеров".

Вам понадобится полный контроль над хостом, на котором работают ваши контейнеры, чтобы предотвратить любое "высовывание". И это не тот случай в вашем сценарии, когда разработчик имеет доступ к хосту (то есть к его / ее локальной машине разработки), на котором будет работать указанный контейнер.

Иногда делается так, чтобы некоторый фрагмент "основного" кода запускался в удаленном месте (удаленный сервер, USB-устройство) таким образом, чтобы внешний фрагмент кода, с одной стороны, мог выполнять некоторую аутентификацию клиента, но также и многое другое. Важно запустить некоторый основной бизнес-код, чтобы гарантировать, что внешний код "должен" быть выполнен, чтобы все было сделано. Если бы это была всего лишь некоторая проверка, которая на самом деле не является основным кодом, взломщик мог бы просто переопределить ее и избежать ее вызова на стороне клиента. Но если код действительно требуется запустить, а его нет, то программа не сможет завершить его обработку. Конечно, все это связано с накладными расходами, как по сложности, так и, вероятно, по времени вычислений, но это 'Это один из способов развертывания чего-то, что обязательно потребуется для связи с вашим сервером / внешним устройством.

С уважением, Эдуардо

Другие вопросы по тегам