Gostaria de reduzir os recursos dos meus daemons Docker usados para executar contêineres de produção, a fim de reduzir sua superfície de ataque.
Eu quero:
- limitar pulls de um único registro
- proibir
push
- proibir
build
- provavelmente proibirá muitos outros recursos
Provavelmente se trata de bloquear algumas rotas da API REST do daemon.
eu li issoDocumentação do Docker sobre como reduzir a superfície de ataque do daemonmas não diz nada sobre a desativação dos recursos do daemon.
É possível? Como eu posso fazer isso?
Responder1
Primeiro, o acesso à API docker normalmente é equivalente ao acesso root no host. Não conceda aos usuários acesso a esta API que, de outra forma, você não confiaria como root. Há trabalho sobre suporte sem raiz que está entrando no GA com o mecanismo docker, então você pode querer investigar isso em vez de tentar bloquear a API.
A maioria das tentativas de limitar o mecanismo envolve agrupar a API do docker com uma API de nível superior, por exemplo, Kubernetes, Docker EE e outras abstrações de nível superior fornecem RBAC granular sem fornecer acesso direto à API do docker.
Dito isto, você pode limitar a API do docker conforme solicitado usando umplugin de autorização. Originalmente, a única implementação de código aberto que eu conhecia era fornecida portrava de torção. Mais recentemente,A OPA forneceu sua própria implementação. Apenas perceba que qualquer usuário com esse acesso à API pode potencialmente desabilitar ou contornar esse plug-in com o acesso de nível raiz que de outra forma teria com o docker.