Desejo entregar meu aplicativo aos clientes em forma de imagem do Docker. Mas é crucial garantir que o usuário final não altere nada dentro do contêiner. O usuário só deve poder executar / parar o contêiner e interagir com o contêiner via rede.
É possível proibir o acesso a partes internas do contêiner? É possível verificar a integridade da imagem que o contêiner fez?
Respostas:
Em resumo, você não pode impedir que seus clientes modifiquem contêineres executados em sua própria infraestrutura. Os contêineres não são como binários que podem ser ofuscados; eles são ambientes de tempo de execução. O código que você distribui dentro do contêiner, no entanto, pode ser ofuscado.
Sua pergunta alude a um problema de suporte de terceiros: clientes que modificam o software que executam em seus próprios ambientes. Se você fornecer ferramentas para operar os contêineres fornecidos (por exemplo, monitoramento e registro), os clientes deverão concordar (como parte de uma licença de software) em não fazer modificações não autorizadas. Isso se aplica a todos os tipos de software de terceiros, não apenas a contêineres.
Dependendo da sua situação, você também pode ter a opção de fornecer seu aplicativo como Software como Serviço (SaaS) em execução em uma infraestrutura de nuvem.
Se o seu cliente exige que seus contêineres sejam executados em sua infraestrutura e se recusa a respeitar as restrições de modificação, provavelmente você não deseja tentar oferecer suporte ao uso do software.
fonte
O Docker não fornece meios para impedir o acesso do usuário ao contêiner, no entanto, como desenvolvedor de imagens, você pode seguir algumas estratégias
Obviamente, eles sempre podem exportar o pacote e reembalá-lo, mas essas são medidas extremas ...
fonte
Você pode remover os usuários do grupo de janelas de encaixe e criar sudos para
docker start
edocker stop
.fonte
Se o seu cliente estiver pronto para investir dinheiro, você deve optar pelo Docker enterprise edition. No Docker EE, você tem uma ferramenta que é
UCP(Universal Control Plane)
UCP . Pelo UCP, você pode criar funções e direitos de acesso e restringir o usuário a alterar / modificar contêineres.Se você deseja testar o UCP do que o DDC (Docker Data Center), com uma licença de teste de um mês, o ajudará a elaborar as coisas conforme seus requisitos.
Espero que isso ajude!
Obrigado!
fonte
Entregue sua entrega via scripts ansible. Mantenha todos os tipos de restrições e verificações no script ansible.
fonte