Kubernetes: Autenticacao Autorizacao e Controle de Admissao

Como todo sistema de TI, precisamos controlar o acesso ao ambiente


 * Autenticação: Login um usuário.
 * Autorização: Autoriza as solicitações da API adicionadas pelo usuário conectado.
 * Controle de admissão: Controla os requests com base em algumas verificações adicionais, como por exemplo, definir Cota para recursos.

= Detalhes =

Autenticação
Não existe um objeto Usuário no Kubernetes, mas mesmo assim existem os seguintes tipos de usuários:


 * Usuário Normal: provido por um serviço de terceiro. Com uma arquivo de usernames/passwords, User/Client Certificates.
 * Service Account: São usados para comunicação dentro do cluster através da API Server, afim de executar diferentes operações.

Para autenticar o K8s utiliza por exemplo: Client Certificates (--client-ca-file=SOMEFILE), Static Token File (--token-auth-file=SOMEFILE), Static Password File (--basic-auth-file=SOMEFILE), Service Account Tokens, OpenID Connect Token.

Autorização
Após uma autenticação bem-sucedida, os usuários podem enviar requests para a API afim de executar operações diferentes. Então, essas solicitações de API são autorizadas pelo Kubernetes usando vários módulos de autorização e políticas (polices).

Para autenticar o K8s utiliza por exemplo: Node Authorizer, Attribute-Based Access Control (ABAC) Authorizer, Webhook Authorizer, Role-Based Access Control (RBAC) Authorizer

Controle de Admissão
Admission Control é usado para especificar políticas de controle de acesso granular, que incluem a permissão de contêineres privilegiados, como a verificação da cota de recursos etc.

Para usar estes controle, é preciso iniciar Kubernetes API server com a opção admission-control, como abaixo:

--admission-control=NamespaceLifecycle,ResourceQuota,PodSecurityPolicy,DefaultStorageClass.

= Ver também =


 * Mais Artigos sobre Kubernetes
 * Docker: Trabalhando com Containers
 * Artigos sobre Cloud
 * Mais Artigos sobre Cloud / WebDev / Tecnologias