Безопасный доступ к Kubernetes Dashboard

KubernetesKubernetesBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом задании вы повысите безопасность своего кластера Kubernetes, создав read-only (только для чтения) учетную запись службы для Kubernetes Dashboard, тем самым продемонстрировав понимание концепции Role-Based Access Control (RBAC, доступ на основе ролей). Вы создадите новую учетную запись службы, ClusterRole (кластерную роль) с разрешениями только для чтения и свяжете ClusterRole с учетной записью службы. В конце вы сгенерируете токен для учетной записи службы, который будет использоваться для входа в Dashboard.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") subgraph Lab Skills kubernetes/get -.-> lab-434106{{"Безопасный доступ к Kubernetes Dashboard"}} kubernetes/create -.-> lab-434106{{"Безопасный доступ к Kubernetes Dashboard"}} kubernetes/apply -.-> lab-434106{{"Безопасный доступ к Kubernetes Dashboard"}} end

Безопасный доступ к Kubernetes Dashboard

В качестве младшего DevOps-инженера вы повысите безопасность своего кластера Kubernetes, создав read-only (только для чтения) учетную запись службы для Kubernetes Dashboard, тем самым продемонстрируя понимание концепции Role-Based Access Control (RBAC, доступ на основе ролей).

Задачи

  • Создайте новую учетную запись службы с именем read-only-user в пространстве имен kubernetes-dashboard, используя предоставленный YAML-файл.
  • Создайте ClusterRole (кластерную роль) с разрешениями только для чтения для пространства имен по умолчанию, разрешив операции get, list и watch для pods, services, nodes, namespaces и deployments.
  • Свяжите ClusterRole с новой учетной записью службы с именем read-only-user.
  • Сгенерируйте токен для учетной записи службы, который будет использоваться для входа в Dashboard.

Требования

  • Работайте в директории ~/project.
  • Используйте пространство имен kubernetes-dashboard для учетной записи службы.
  • Создайте YAML-файл с именем read-only-dashboard-access.yaml.
  • Учетная запись службы должна иметь только разрешения на чтение.
  • Ограничьте область доступа до пространства имен default.

Предоставьте содержимое 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

Примеры

Пример вывода токена учетной записи службы:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...

Пример вида Dashboard после входа:

  • Видимые элементы: Ресурсы пространства имен, Deployments, Pods.
  • Невидимые элементы: Операции создания, редактирования и удаления.

Подсказки

  • Запустите Minikube и примените файл recommended.yaml из официального репозитория Kubernetes Dashboard для развертывания Dashboard.
  • Используйте команды kubectl create и kubectl apply.
  • Проверьте конфигурации ClusterRole и ClusterRoleBinding.
  • Используйте команду kubectl -n kubernetes-dashboard create token read-only-user для генерации токена.
✨ Проверить решение и практиковаться

Резюме

В целом, в этом задании требуется повысить безопасность вашего кластера Kubernetes, создав read-only (только для чтения) учетную запись службы для Kubernetes Dashboard. Вы должны создать новую учетную запись службы, ClusterRole (кластерную роль) с разрешениями только для чтения и связать ClusterRole с учетной записью службы. В конце вы должны сгенерировать токен для учетной записи службы, который будет использоваться для входа в Dashboard.