Fundamentos de Permissões do Docker
Compreendendo as Permissões dos Contêineres Docker
Os contêineres Docker executam com permissões específicas de utilizador e grupo, cruciais para a segurança do sistema e a gestão de recursos. Por defeito, os contêineres executam como utilizador root, mas esta prática não é recomendada devido a potenciais riscos de segurança.
Espaço de Nomes de Utilizador e Modelo de Permissões
O Docker utiliza um modelo de permissões único que mapeia utilizadores de contêiner para utilizadores do sistema hospedeiro:
graph TD
A[Utilizador do Contêiner] --> B[Mapeamento de Utilizador do Hospedeiro]
B --> C[Remapeamento do Espaço de Nomes de Utilizador]
C --> D[Controlo de Permissões]
Conceitos Chave de Permissões
| Conceito |
Descrição |
Comportamento Padrão |
| Utilizador Root |
Utilizador padrão do contêiner |
Acesso total ao sistema |
| Utilizador Não-Root |
Conta de utilizador restringida |
Permissões de sistema limitadas |
| Espaço de Nomes de Utilizador |
Mapeamento entre utilizadores do contêiner e do hospedeiro |
Fornece isolamento |
Comportamento Padrão do Utilizador do Contêiner
Quando cria um contêiner Docker sem especificar um utilizador, este executa como root:
## Contêiner padrão com utilizador root
docker run ubuntu:latest whoami
## Saída: root
Desafios de Permissões
- Vulnerabilidades de segurança
- Potencial acesso ao sistema hospedeiro
- Violação do princípio do privilégio mínimo
Boas Práticas
- Execute sempre os contêineres como utilizadores não-root
- Utilize especificações explícitas de utilizadores
- Implemente o remapeamento do espaço de nomes de utilizador
Exemplo: Criando um Contêiner com Utilizador Não-Root
## Criar um contêiner com um utilizador específico
docker run -u 1000:1000 ubuntu:latest whoami
## Saída: utilizador com UID 1000
Compreendendo estes fundamentos, os desenvolvedores podem implementar implantações de contêineres Docker mais seguras com as práticas de segurança recomendadas do LabEx.