Какие инструменты и сервисы используешь для управления доступом и безопасностью в Kubernetes-кластере?

«Какие инструменты и сервисы используешь для управления доступом и безопасностью в Kubernetes-кластере?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Использую многоуровневый подход:

1. RBAC (Role-Based Access Control) в Kubernetes

# ClusterRole для DevOps-инженеров
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: devops-engineer
rules:
- apiGroups: ["", "apps", "batch"]
  resources: ["pods", "deployments", "jobs", "services", "configmaps", "secrets"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: ["rbac.authorization.k8s.io"]
  resources: ["roles", "rolebindings"]
  verbs: ["get", "list", "create"]

# Привязка роли к пользователю через ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: devops-binding
subjects:
- kind: User
  name: "alex@company.com"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: devops-engineer
  apiGroup: rbac.authorization.k8s.io

2. Интеграция с облачными IAM:

  • AWS EKS: aws-auth ConfigMap + IAM Roles for Service Accounts (IRSA)
  • GCP GKE: Workload Identity для привязки Kubernetes Service Accounts к GCP IAM
  • Azure AKS: Azure AD integration + pod-managed identities

3. Дополнительные инструменты безопасности:

  • Open Policy Agent (OPA)/Gatekeeper для политик безопасности (например, запрет контейнеров с root)
  • Kyverno для политик Kubernetes-native
  • Vault через vault-agent-injector для динамических секретов
  • Falco для runtime-безопасности и обнаружения аномалий

4. Service Mesh для сетевой безопасности:

  • Istio с AuthorizationPolicies для mTLS и контроля доступа на уровне сервисов
  • Linkerd для автоматического mTLS между pod'ами

Практический пример: В последнем проекте настраивал GitOps-пайплайн, где разработчики получали доступ через GitHub Teams, которые маппились на Kubernetes RBAC роли через Pinniped или Dex + OIDC.