Proteger um mecanismo docker
requer prestar atenção a muitos aspectos diferentes e a defesa em profundidade é sempre sobre camadas de segurança.
Um dos requisitos listados, restringindo o que os usuários podem comandar o mecanismo docker
, provavelmente é um dos mais importantes, pois, a partir de agora, o mecanismo docker
não implementa um controle de autorização.
Suas alternativas incluem:
-
soluções de código fechado, como o Twistlock , um projeto que implementa o RBAC e o controle de diretivas para acessar a
docker
API -
OpenShift Origin , um projeto de código aberto que implementa controle de acesso baseado em função na forma de restrições de segurança e políticas de autorização refinadas . É bastante fácil de implantar e ajudaria muito a ter uma solução pronta para uso.
Também sugeriria examinar os diferentes sistemas operacionais nos quais um docker
engine pode ser implementado, e aconselharia a não usar um sistema operacional de finalidade geral, mas um sistema especializado, como Atomic . Ambos, Atomic e OpenShift juntos, garantirão que você também possa:
- Digitalize suas imagens regularmente.
- Use um registro confiável
- Defina perfis seccomp para seus contêineres. Melhorias nessa tecnologia e sua implementação é um trabalho em andamento no mundo
docker
como um todo. - Solte os recursos que não são necessários para o aplicativo no contêiner.
-
Use SELinux . Muitas das outras medidas de segurança listadas possuem limitações, mas o SELinux funciona muito bem no fornecimento de uma rede segura quando tudo o mais falha. Alguns exemplos: ele ajudará a limitar o acesso ao
docker
socket , controlará se Compartilhamento de descritores de arquivos entre contêineres é permitido, ele pode atribuir diferentes níveis de MCS para cada contêiner / grupo de contêineres para isolá-los do host e de outros contêineres.