kubernetes:безопасность_в_кластере
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| kubernetes:безопасность_в_кластере [2022/02/15 19:13] – [Парольная аутентфиикация] root | kubernetes:безопасность_в_кластере [2024/12/21 19:00] (текущий) – внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 50: | Строка 50: | ||
| spec: | spec: | ||
| groups: | groups: | ||
| - | - system: authenticated | + | |
| + | | ||
| usages: | usages: | ||
| - digital signature | - digital signature | ||
| - key encipherment | - key encipherment | ||
| - | - server | + | - client |
| request: | request: | ||
| LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1dUQ0NBVUVDQVFBd0ZERVNN | LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1dUQ0NBVUVDQVFBd0ZERVNN | ||
| Строка 78: | Строка 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/безопасность_в_кластере.1644941636.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)
