Acesso Seguro ao Kubernetes Dashboard
Como um engenheiro DevOps júnior, você aprimorará a segurança do seu cluster Kubernetes criando uma conta de serviço somente leitura para o Kubernetes Dashboard, demonstrando sua compreensão do Controle de Acesso Baseado em Funções (RBAC).
Tarefas
- Crie uma nova conta de serviço chamada
read-only-user
no namespace kubernetes-dashboard
, usando o arquivo YAML fornecido
- Crie um
ClusterRole
com permissões de somente leitura para o namespace padrão, permitindo operações get
, list
e watch
em pods
, services
, nodes
, namespaces
e deployments
- Vincule o
ClusterRole
à nova conta de serviço chamada read-only-user
- Gere um token para a conta de serviço usar no login do Dashboard
Requisitos
- Trabalhe no diretório
~/project
- Use 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 ter apenas permissões de leitura
- Limite o escopo de acesso ao namespace
default
Forneça o conteúdo do arquivo YAML:
---
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 de visualização do Dashboard após o login:
- Visível: Recursos do Namespace, Deployments, Pods
- Não Visível: Operações Criar, Editar, Excluir
Dicas
- Inicie o Minikube e aplique o arquivo
recommended.yaml
do repositório oficial do Kubernetes Dashboard para implantar o Dashboard
- Use os comandos
kubectl create
e kubectl apply
- Verifique as configurações do ClusterRole e ClusterRoleBinding
- Use
kubectl -n kubernetes-dashboard create token read-only-user
para gerar o token