kubernetes:безопасность_в_кластере
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
kubernetes:безопасность_в_кластере [2022/02/17 17:04] – root | kubernetes:безопасность_в_кластере [2024/12/21 19:00] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 79: | Строка 79: | ||
kubectl get csr new_admin -o yaml | kubectl get csr new_admin -o yaml | ||
echo "coded certificate" | echo "coded certificate" | ||
+ | </ | ||
+ | |||
+ | ===== RBAC ===== | ||
+ | ==== Создание роли ==== | ||
+ | <code yaml pod-reader-role.yaml> | ||
+ | apiVersion: rbac.authorization.k8s.io/ | ||
+ | kind: Role | ||
+ | metadata: | ||
+ | namespace: default | ||
+ | name: pod-reader | ||
+ | rules: | ||
+ | - apiGroups: ["" | ||
+ | resources: [" | ||
+ | verbs: [" | ||
+ | - apiGroups: ["" | ||
+ | resources: [" | ||
+ | verbs: [" | ||
+ | </ | ||
+ | ==== Биндинг роли к конкретному пользователю ==== | ||
+ | |||
+ | <code yaml pod-reader-role.yaml> | ||
+ | apiVersion: rbac.authorization.k8s.io/ | ||
+ | kind: RoleBinding | ||
+ | metadata: | ||
+ | name: pod-reader-binding | ||
+ | namespace: default | ||
+ | subjects: | ||
+ | # You can specify more than one " | ||
+ | - kind: User | ||
+ | name: jane # " | ||
+ | apiGroup: rbac.authorization.k8s.io | ||
+ | roleRef: | ||
+ | # " | ||
+ | kind: Role #this must be Role or ClusterRole | ||
+ | name: pod-reader # this must match the name of the Role or ClusterRole you wish to bind to | ||
+ | apiGroup: rbac.authorization.k8s.io | ||
+ | </ | ||
+ | ==== Просмотр сведений RBAC ==== | ||
+ | <code bash> | ||
+ | kubectl get roles | ||
+ | kubectl get rolebindings | ||
+ | kubectl describe role developer | ||
+ | kubectl describe rolebinding dev-users-rolebinding | ||
+ | </ | ||
+ | ==== Проверка доступа ==== | ||
+ | <code bash> | ||
+ | kubectl auth can-i create deployments | ||
+ | kubectl auth can-i delete nodes | ||
+ | kubectl auth can-i create pods --as sample-user | ||
+ | </ | ||
+ | ===== Кластерные роли ===== | ||
+ | Кластерные роли, в отличие от обычных, | ||
+ | ==== Кластерная роль ==== | ||
+ | <code yaml cluster-role.yaml> | ||
+ | apiVersion: rbac.authorization.k8s.io/ | ||
+ | kind: ClusterRole | ||
+ | metadata: | ||
+ | name: cluster-administrator | ||
+ | rules: | ||
+ | - apiGroups: ["" | ||
+ | resources: [" | ||
+ | verbs: [" | ||
+ | </ | ||
+ | ==== Привязка кластерной роли к пользователю ==== | ||
+ | <code yaml cluster-role-binding.yaml> | ||
+ | apiVersion: rbac.authorization.k8s.io/ | ||
+ | # This cluster role binding allows anyone in the " | ||
+ | kind: ClusterRoleBinding | ||
+ | metadata: | ||
+ | name: cluster-admin-role-binding | ||
+ | subjects: | ||
+ | - kind: User | ||
+ | name: cluster-administrator # Name is case sensitive | ||
+ | apiGroup: rbac.authorization.k8s.io | ||
+ | - kind: Group | ||
+ | name: cluster-admins # Name is case sensitive | ||
+ | apiGroup: rbac.authorization.k8s.io | ||
+ | roleRef: | ||
+ | kind: ClusterRole | ||
+ | name: cluster-administrator | ||
+ | apiGroup: rbac.authorization.k8s.io | ||
+ | </ | ||
+ | |||
+ | ===== Service Accounts ===== | ||
+ | По умолчанию в каждом namespace уже существует ServiceAccount с именем <color # | ||
+ | |||
+ | Создать ServiceAccount | ||
+ | <code bash> | ||
+ | Получить список ServiceAccount' | ||
+ | <code bash> | ||
+ | Вывести полную информацию о ServiceAccount' | ||
+ | <code bash> | ||
+ | Получить токен безопасности определенного ServiceAccount' | ||
+ | <code bash> | ||
+ | |||
+ | Применить ServiceAccount к поду: | ||
+ | <code yaml pod.yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Pod | ||
+ | metadata: | ||
+ | name: simplePod | ||
+ | spec: | ||
+ | containers: | ||
+ | - name: simplePod | ||
+ | image: simplePod | ||
+ | serviceAccountName: | ||
</ | </ |
kubernetes/безопасность_в_кластере.1645106679.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)