Acesso Seguro ao Dashboard do Kubernetes
Como engenheiro DevOps júnior, sua missão é aumentar a segurança do cluster Kubernetes configurando um acesso restrito ao Dashboard, garantindo que usuários específicos possuam apenas permissões de visualização através de políticas de RBAC.
Tarefas
- Criar uma nova conta de serviço chamada
read-only-user no namespace kubernetes-dashboard, utilizando o arquivo YAML fornecido.
- Criar um
ClusterRole com permissões de apenas leitura para o namespace padrão, permitindo as operações get, list e watch nos recursos pods, services, nodes, namespaces e deployments.
- Vincular o
ClusterRole à nova conta de serviço read-only-user.
- Gerar um token para que a conta de serviço possa ser utilizada no login do Dashboard.
Requisitos
- Trabalhe no diretório
~/project.
- Utilize o namespace
kubernetes-dashboard para a conta de serviço.
- Crie um arquivo YAML chamado
read-only-dashboard-access.yaml.
- A conta de serviço deve possuir estritamente permissões de leitura.
- Limite o escopo de acesso ao namespace
default.
Conteúdo do arquivo YAML a ser utilizado:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: read-only-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-only-dashboard-role
rules:
- apiGroups: [""]
resources: ["pods", "services", "nodes", "namespaces", "deployments"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-only-dashboard-access
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-only-dashboard-role
subjects:
- kind: ServiceAccount
name: read-only-user
namespace: kubernetes-dashboard
Exemplos
Exemplo de saída do token da conta de serviço:
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
Exemplo da visualização do Dashboard após o login:
- Visível: Recursos do Namespace, Deployments, Pods.
- Não Visível: Operações de Criar (Create), Editar (Edit) ou Excluir (Delete).
Dicas
- Inicie o Minikube e aplique o arquivo
recommended.yaml do repositório oficial do Kubernetes Dashboard para implantar a interface.
- Utilize os comandos
kubectl create e kubectl apply.
- Verifique as configurações de ClusterRole e ClusterRoleBinding.
- Utilize o comando
kubectl -n kubernetes-dashboard create token read-only-user para gerar o token de acesso.